SOR迭代法求解线性方程组.docx
SOR迭代法求解线性方程组实验三:用SOR迭代法求解线性方程组 æ0.76-0.01-0.14-0.16öæx1öæ0.68öç÷ç÷ç÷ç-0.010.88-0.030.06÷çx2÷ç1.18÷ç-0.14-0.031.01-0.12÷çx÷=ç0.12÷ ç÷ç3÷ç÷ç-0.160.06-0.120.72÷çx÷ç0.74÷èøè4øèø 取初始点x(0)=(0,0,0,0)T,松弛因子w=1.05,精度要求e=10-6。 1,建立SOR.m函数文件,此函数文件可调用,程序源码如下: function x,n=SOR(A,b,x0,w,eps,M) if nargin=4 eps= 1.0e-6;%精度要求 M = 200; elseif nargin<4 error; return elseif nargin =5 M = 200; end if(w<=0 | w>=2) error; return; end D=diag(diag(A); %求A的对角矩阵 L=-tril(A,-1); %求A的下三角阵 U=-triu(A,1); %求A的上三角阵 B=inv(D-L*w)*(1-w)*D+w*U); f=w*inv(D-L*w)*b; x=B*x0+f; n=1; %迭代次数 while norm(x-x0)>=eps x0=x; x =B*x0+f; n=n+1; if(n>=M) disp('Warning: 迭代次数太多,可能不收敛!'); return; end end 2,输入矩阵。并根据要求调用函数,运行结果如下图所示: 即经过7次迭代算出结果,且求得: æ1.2715öç÷1.2844÷ x=çç0.4858÷ç÷1.2843èø