全文预览

北理工数值分析大作业

上传者:upcfxx |  格式:doc  |  页数:27 |  大小:804KB

文档介绍
auss-Seidel迭代法:Р程序:Р>> A=[10 1 2 3 4;Р 1 9 -1 2 -3;Р 2 -1 7 3 -5;Р 3 2 3 12 -1;Р 4 -3 -5 -1 15];Рb=[12;-27;14;-17;12];Рx0=[0;0;0;0;0];Р РD=diag(diag(A));РU=-triu(A,1);РL=-tril(A,-1);РM=(D-L)\U;Рg=(D-L)\b;Рy=M*x0+g;Рn=1;Рwhile norm(y-x0)>=1.0e-6Р x0=y;Р y=M*x0+g;Р n=n+1;РendРfprintf('%8.6f\n',y);Р结果截图及分析:РGauss-Seidel迭代法只需要迭代38次即可满足精度要求。Р设A=,取x(0)=(1,1,1)T,先用幂法迭代3次,得到A的按模最大特征值的近似值,取λ*为其整数部分,再用反幂法计算A的按模最大特征值的更精确的近似值,要求误差小于10-10.Р程序:РA=[12 6 -6;Р 6 16 2;Р -6 2 16];Рx0=[1;1;1];Рy=x0;b=max(abs(x0));k=1;Рwhile ( k<4 )Рx=A*y;b=max(abs(x));y=x./b;Рk=k+1;Рfprintf('eig1 equals %6.4f\n',b);РendР>> bb0=fix(b);РI=eye(3,3);Рx0=[1;1;1];Рy=x0;l=0;bb=max(abs(x0));k=1;Рwhile ( abs(bb-l)>=1.0e-10 )Рl=bb;Рx=(A-bb0*I)\y;bb=max(abs(x));y=x./bb;Рeig=l+b;Р>> fprintf('eig2(%d) equals %12.10f\n',k, eig);Рk=k+1;Рend

收藏

分享

举报
下载此文档