《SOR迭代matlab程序.ppt》由会员分享,可在线阅读,更多相关《SOR迭代matlab程序.ppt(7页珍藏版)》请在三一办公上搜索。
1、逐次超松弛迭代(SOR迭代),Step 1 用Gauss-Seidel 迭代求得,Step 2 计算 与第k-1次迭代值 的加权平均作为 第k 次迭代值:,其中 称为松弛因子,.,SOR迭代法的矩阵表示,SOR 迭代的Matlab函数文件(求解线性方程组Axb),function y,k,v=sor(A,b,x,w,tol,M)%x为迭代初值,w为松弛因子(0w2),tol为允许误差,%v为标志变量,M为最大迭代次数D=diag(diag(A);L=tril(A,-1);U=triu(A,1);L1=D+w*L;G1=(1-w)*D-w*U);d=w*b;v=0;k=0;,while 1 b=
2、G1*x+d;y=inv(L1)*b;e=norm(y-x,inf);x=y;if eM break endend,function y=fSOR(A,b,x,h,eps,M)w=0:h:2;n=2/h+1;%松弛因子w的个数K=zeros(1,n);for i=1:n x,K(i),index=sor(A,b,x,w(i),eps,M);endK;,scatter(w,K,filled,r)%绘制迭代次数与松弛因子关系的曲线 K0=find(K=0);K(K0)=;K1=min(K);I=find(K=K1);w=w(I(1);x,c,index=sor(A,b,x,w,eps,M);y=x;,