发布网友 发布时间:2022-04-24 03:55
共1个回答
热心网友 时间:2022-05-03 09:14
function x=j(e)
% 运用Jacobi迭代求解H(n)x=b,其中H(n)为n阶Hibert矩阵,b=h(n)*x,其中x=(1,...,1)'
% n表示n阶Hibret矩阵,e表示要求的误差
% 计算结果中,x表示方程组的解,m表示所用迭代的步数
h=[4 -1 1;4 -8 1;-2 1 5];%系数矩阵
x0=ones(3,1);%赋1
x=zeros(3,1);%赋0
y=x;%赋0
b=[7;-21;15];%列矢量
s=norm(x-x0,inf);%计算初始误差
while s>=e %while循环开始
for i=1:3 %for循环开始
y(i)=(b(i)-h(i,:)*x+h(i,i)*x(i))/h(i,i);
end %for循环结束
s=norm(x-y,inf);%计算结束时的误差
x=y;%得出结果x
end % s<e,while循环结束追问前面的赋1 赋0是赋什么的能说一下吗 还有原理可以说一下吗。。。。。谢谢啦
追答赋1就是把矩阵或数组的所有元素置1,赋0同前。一般在for循环前先把矩阵赋1或0,在循环中修改矩阵或数组的元素值。