《jacobi迭代和G-S迭代》由会员分享,可在线阅读,更多相关《jacobi迭代和G-S迭代(3页珍藏版)》请在金锄头文库上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除function x,k,index = Jacobi(A,b,ep,Nmax )% 求解线性方程组的Jacobi迭代法,其中% A - 方程组的系数矩阵% b - 方程组的右端项% ep - 精度要求。省缺为1e-5% Nmax - 最大迭代次数,省缺为100% x - 方程组的解% k - 迭代次数% index=1表示迭代收敛到指定要求;% index=0表示迭代失败if nargin 4 Nmax=100; end %设置默认值if nargin 3 ep=1e-5; end %设置默认值n=length(A); k=0;x=zeros(
2、n,1); y=zeros(n,1); index=1;while 1 for i=1:n y(i)=b(i); for j=1:n if j=i y(i)=y(i)-A(i,j)*x(j); end end if abs(A(i,i)1e-10 | k=Nmax index=0; return; end y(i)=y(i)/A(i,i); end if norm(y-x,inf)ep break; end x=y; k=k+1;endendfunction x,k,index = Gausseidel(A,b,ep,Nmax )% 求解线性方程组的Jacobi迭代法,其中% A - 方程组的
3、系数矩阵% b - 方程组的右端项% ep - 精度要求。省缺为1e-5% Nmax - 最大迭代次数,省缺为100% x - 方程组的解% k - 迭代次数% index=1表示迭代收敛到指定要求;% index=0表示迭代失败if nargin 4 Nmax=100; end %设置默认值if nargin 3 ep=1e-5; end %设置默认值n=length(A); k=0;x=zeros(n,1);z=zeros(n,1);index=1;while 1 y=x; for i=1:n z(i)=b(i); for j=1:n if j=i%不等于 z(i)=z(i)-A(i,j)*x(j); end end if abs(A(i,i)1e-10|k=Nmax index=0; return; end z(i)=z(i)/A(i,i); x(i)=z(i); end if norm(y-x,inf)=eps invDL = inv(DB-LB); x = invDLUB*x0+invDLb; N = N+1; tol = norm(x-x0); x0 = x; if(N=M) index=0 return; endendend【精品文档】第 页