《【m】线性方程组的迭代解法.doc》由会员分享,可在线阅读,更多相关《【m】线性方程组的迭代解法.doc(3页珍藏版)》请在金锄头文库上搜索。
1、%GS.m%高斯-塞德尔GS迭代法求解Ax=b%r为精度要求,用(x(k+1)-x(k)的2范数衡量精度%iter_max为迭最大代次数function x=GS(A,b,r,iter_max)if nargin4 iter_max=100000; if nargin3 r=10(-10); end;end;n=length(b);x=zeros(size(b);for iter=1:iter_max xx=x; for i=1:n x(i)=(b(i)-A(i,:)*x+x(i)*A(i,i)/A(i,i); end; error=norm(xx-x); if(errorr) break;
2、end;end;fprintf(迭代次数为%dn,iter);%Jacobi.m%雅可比Jacobi迭代法求解Ax=b%r为精度要求,用(x(k+1)-x(k)的2范数衡量精度%iter_max为迭最大代次数function x=Jacobi(A,b,r,iter_max)if nargin4 iter_max=100000; if nargin3 r=10(-10); end;end;n=length(b);x=zeros(size(b);for iter=1:iter_max xx=x; for i=1:n x(i)=(b(i)-A(i,:)*xx+xx(i)*A(i,i)/A(i,i);
3、 end; error=norm(x-xx); if(errorr) break; end;end;fprintf(迭代次数为%dn,iter);%SOR.m%超松弛SOR迭代法求解Ax=b%r为精度要求,用(x(k+1)-x(k)的2范数衡量精度%w是松弛因子%iter_max为迭最大代次数function x=SOR(A,b,w,r,iter_max);if nargin5 iter_max=100000; if nargin4 r=10(-10); end;end;n=length(b);x=zeros(size(b);for iter=1:iter_max xx=x; for i=1:n x(i)=x(i)+w*(b(i)-A(i,:)*x)/A(i,i); end; error=norm(x-xx); if(errorr) break; end;end;fprintf(迭代次数为%dn,iter);