Gauss-Seidel迭代矩阵求法的思考

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab代码:

%求Gauss-Seidel矩阵

function G_SB(A)

[m,n]=size(A);

if m~=n

disp('系数矩阵不是方阵')

return

end

%% 用矩阵运算求Gauss-Seidel迭代矩阵

D=diag(diag(A));

U=-triu(A,1);

L=tril(A,-1);

disp('矩阵运算求出的迭代矩阵')

B1=inv(D+L)*U,

%%

B=zeros(m,n);

for j=2:n

B(1,j)=-A(1,j)/A(1,1);

end

for i=2:m

for j=2:n

k=1:i-1;

if i>=j

B(i,j)=sum(-A(i,k)*B(k,j))/A(i,i);

continue

end

B(i,j)=(sum(-A(i,k)*B(k,j))-A(i,j))/A(i,i);

end

end

disp('直接法求出的迭代矩阵')

B,

end

给定系数矩阵,并得结果:

>> A=[5 1 -1 -2;2 8 1 3;1 -2 -4 1;-1 3 2 7];G_SB(A)矩阵运算求出的迭代矩阵

B1 =

0 -0.2000 0.2000 0.4000

0 0.0500 -0.1750 -0.4750

0 -0.0750 0.1375 0.5875

0 -0.0286 0.0643 0.0929

直接法求出的迭代矩阵

B =

0 -0.2000 0.2000 0.4000

0 0.0500 -0.1750 -0.4750

0 -0.0750 0.1375 0.5875

0 -0.0286 0.0643 0.0929

B与B1是两种方法得出的,但其结果完全相同。

相关文档
最新文档