要求:
下面分别使用雅克比迭代法和高斯-赛德尔迭代法求一个方程组的近似解
用的线性方程组是按实验要求给的:
7*x1+x2+2*x3=10
x1+8*x2+2*x3=8
2*x1+2*x2+9*x3=6
雅克比迭代法的 matlab 代码:(老师写的)
A=[7,1,2;1,8,2;2,2,9];
b=[10;8;6];
if(any(diag(A))==0)
error('error,pause')
end
eps=input('误差限 eps=');
N=input('迭代次数 N=');
D=diag(diag(A));
B=inv(D)*(D-A);
f=inv(D)*b;
K=0;
x0=zeros(size(b));
while1
x1=B*x0+f
K=K+1;
fprintf('第-次迭代的近似解为',K)
disp(x1');
ifnorm(x1-x0,inf)<eps
fprintf('满足精度要求的解为')
disp(x1');
break
end
ifK>N
fprintf('迭代超限')
end
x0=x1;
end
高斯-赛德尔迭代法 matlab 代码:(自己改的)