如何解决返回空图的函数
该函数应该使用高斯赛德尔方法返回线性方程组的答案,并返回迭代差异图。到目前为止,我已经能够获得返回正确答案的函数,并且图表是空白的。任何提示表示赞赏。
function[x] = Gauss_Seidel(A,b)
[m,n] = size(A);
[g,v] = size(b);
x= zeros(m,1);
error = zeros(m,1);
for iterations = 1:300
for k = 1:m
value = 0;
for j = 1:m
if j~=k
value = value + A(k,j)*x(j);
end
end
x(k) = (b(k)-value)/A(k,k);
end
end
tdiff = 0;
for j = 1:m
LHS=0;
for k=1:m
LHS=LHS+A(j,k)*x(k);
end
difference(j) = abs(b(j)-LHS);
tdiff = tdiff+difference(j);
end
if tdiff<=error
iterations
plot(tdiff,j)
return
end
end
解决方法
当你调用 plot 时,tdiff 和 j 看起来不是数组。
循环之前
tdiff = zeros(1,m+1);
steps = zeros(1,m+1); % you need some increment array for your plot
在循环中
tdiff(j+1) = tdiff(j)+difference(j);
steps(j+1)
只需注意步骤和 tdiff 从 0 开始
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。