Jacobi迭代法和Gauss-Seidel迭代法Matlab程序

上传人:野鹰 文档编号:15387380 上传时间:2017-11-04 格式:DOCX 页数:7 大小:13.83KB
返回 下载 相关 举报
Jacobi迭代法和Gauss-Seidel迭代法Matlab程序_第1页
第1页 / 共7页
Jacobi迭代法和Gauss-Seidel迭代法Matlab程序_第2页
第2页 / 共7页
Jacobi迭代法和Gauss-Seidel迭代法Matlab程序_第3页
第3页 / 共7页
Jacobi迭代法和Gauss-Seidel迭代法Matlab程序_第4页
第4页 / 共7页
Jacobi迭代法和Gauss-Seidel迭代法Matlab程序_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Jacobi迭代法和Gauss-Seidel迭代法Matlab程序》由会员分享,可在线阅读,更多相关《Jacobi迭代法和Gauss-Seidel迭代法Matlab程序(7页珍藏版)》请在金锄头文库上搜索。

1、 解(1):采用 Jacobi 迭代法时,Matlab 计算程序为:clearclci=1;a=5 2 1;-1 4 2;2 -3 10;d=diag(diag(a);l=d-tril(a);u=d-triu(a);d0=inv(d);b=-12;20;3;x0=1;1;1;B=d0*(l+u);f=d0*b;x=B*x0+f;while norm(x-x0,inf)=1e-4x0=x;x=B*x0+f;i=i+1;endxi采用 Gauss-Seidel 迭代法计算时,Matlab 计算程序为:clearclci=1;a=5 2 1;-1 4 2;2 -3 10;d=diag(diag(a)

2、;l=d-tril(a);u=d-triu(a);b=-12;20;3;x0=zeros(3,1);B=inv(d-l)*u;f=inv(d-l)*b;x=B*x0+f;while norm(x-x0,inf)=1e-4x0=x;x=B*x0+f; i=i+1;endxi习题6.7function n,x=sor22(A,b,X,x1,nm,w,ww)%用超松弛迭代法求解方程组Ax=b%输入:A为方程组的系数矩 阵,b为方程组右端的列向量,X为迭代初值构成的列向量,x1为方程的精确解, nm为最大迭代次数, w为误差精度,ww为松弛因子%输出:x为求得的方程组 的解构成的列向量,n为迭代次数n

3、=1;m=length(A);D=diag(diag(A); %令A=D-L-U, 计算矩阵DL=tril(-A)+D; %令A=D-L-U, 计算矩阵LU=triu(-A)+D; %令A=D-L-U, 计算矩阵UM=inv(D-ww*L)*(1-ww)*D+ww*U); %计算迭代矩阵g=ww*inv(D-ww*L)*b; %计算迭代格式中的常数项%下面是迭代 过程while n=nmx=M*X+g; %用迭代格式进行迭代if norm(x1-X,inf)wdisp(迭代次数为);ndisp(方程组的解为);xreturn;%上面:达到精度要求就结束程序,输出迭代次数和方程组的解endX=x

4、;n=n+1;end%下面:如果达到最大迭代次数仍不收敛,输出警告语句及迭代的最终结果(并不是方程组的解)disp(在最大迭代次数内不收敛! );disp(最大迭代次数后的结果为);xa=4 -1 0;-1 4 -1;0 -1 4;b=1;4;-3;c=200;d=5e-3;f=1.03;k=0 ;0; 0;x1=1/2;1;-1/2;g=sor22(a,b,k,x1,c,d,f)习题 6.8function n,x=sor(A,b,X,nm,w,ww)%用超松弛迭代法求解方程组Ax=b%输入:A为方程组的系数矩 阵,b为方程组右端的列向量,X为迭代初值构成的列向量,nm为最大迭代次数, w为

5、误差精度,ww为松弛因子%输出:x为求得的方程组 的解构成的列向量,n为迭代次数n=1;m=length(A);D=diag(diag(A); %令A=D-L-U, 计算矩阵DL=tril(-A)+D; %令A=D-L-U, 计算矩阵LU=triu(-A)+D; %令A=D-L-U, 计算矩阵UM=inv(D-ww*L)*(1-ww)*D+ww*U); %计算迭代矩阵g=ww*inv(D-ww*L)*b; %计算迭代格式中的常数项%下面是迭代 过程while n=nmx=M*X+g; %用迭代格式进行迭代if norm(x-X,inf)wdisp(迭代次数为);ndisp(方程组的解为);xreturn;%上面:达到精度要求就结束程序,输出迭代次数和方程组的解endX=x;n=n+1;end%下面:如果达到最大迭代次数仍不收敛,输出警告语句及迭代的最终结果(并不是方程组的解)disp(在最大迭代次数内不收敛! );disp(最大迭代次数后的结果为);xa=5 2 1;-1 4 2;2 -3 10;b=-12;20;3;c=200;d=5e-6;f=0.9;k=0;0;0;g=sor(a,b,k,c,d,f)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号