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

2026/4/25 20:00:24

解(1):

采用Jacobi迭代法时,Matlab计算程序为: clear

clc i=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-4 x0=x; x=B*x0+f; i=i+1; end x

i

采用Gauss-Seidel迭代法计算时,Matlab计算程序为: clear

clc i=1;

a=[5 2 1;-1 4 2;2 -3 10]; d=diag(diag(a)); 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-4 x0=x; x=B*x0+f; i=i+1; end x i

习题6.7

function [n,x]=sor22(A,b,X,x1,nm,w,ww) %用超松弛迭代法求解方程组Ax=b

%输入:A为方程组的系数矩阵,b为方程组右端的列向量,X为迭代初值构成的列向量,x1为方程的精确解,nm为最大迭代次数,w为误差精度,ww为松弛因子

%输出:x为求得的方程组的解构成的列向量,n为迭代次数 n=1;

m=length(A);

D=diag(diag(A)); %令A=D-L-U,计算矩阵D L=tril(-A)+D; %令A=D-L-U,计算矩阵L U=triu(-A)+D; %令A=D-L-U,计算矩阵U M=inv(D-ww*L)*((1-ww)*D+ww*U); %计算迭代矩阵

g=ww*inv(D-ww*L)*b; %计算迭代格式中的常数项 %下面是迭代过程 while n<=nm

x=M*X+g; %用迭代格式进行迭代 if norm(x1-X,'inf')

%上面:达到精度要求就结束程序,输出迭代次数和方程组的解 end

X=x;n=n+1; end

%下面:如果达到最大迭代次数仍不收敛,输出警告语句及迭代的最终结果(并


Jacobi迭代法和Gauss-Seidel迭代法Matlab程序.doc 将本文的Word文档下载到电脑
搜索更多关于: Jacobi迭代法和Gauss-Seidel迭代法Matla 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219