.分别Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组
?6??2??2??121?2??x1??4??????50?2??x2??7??, ?????085x3?1?????327??x4??0?(k?1)xj迭代法计算停止的条件为:max1?j?3?x(jk)?10?6.
解(1):
采用Jacobi迭代法时,Matlab计算程序为:
clear clc i=1;
a=[6 2 1 -2;2 5 0 -2;-2 0 8 5;1 3 2 7]; d=diag(diag(a)); l=d-tril(a); u=d-triu(a); d0=inv(d); b=[4;7;-1;0]; x0=zeros(4,1); B=d0*(l+u); f=d0*b; x=B*x0+f;
while norm(x-x0,inf)>=1e-6
x0=x; x=B*x0+f; i=i+1; end x i
计算结果为:x =(0.0520;0.5706)迭代次数i =15
;;1.15090.2446?
采用Gauss-Seidel迭代法计算时,Matlab计算程序为:
clear clc i=1;
a=[6 2 1 -2;2 5 0 -2;-2 0 8 5;1 3 2 7];d=diag(diag(a)); l=d-tril(a); u=d-triu(a); b=[4;7;-1;0]; x0=zeros(4,1); B=inv(d-l)*u; f=inv(d-l)*b; x=B*x0+f;
while norm(x-x0,inf)>=1e-6 x0=x; x=B*x0+f; i=i+1; end x i
计算结果为:x =(0.0520;1.1509;0.2446;-0.5706)迭代次数i =8
相关推荐: