主程序如下:
function X=gsdddy(A,b,X0,P,wucha,max1)
D=diag(diag(A));U=-triu(A,1);
L=-tril(A, -1);dD=det(D);
if dD==0
disp('请注意:因为对角阵D奇异,所以此方程无解')
else
disp('请注意:因为对角阵距D非奇异,所以此方程有解')
iD=inv(D -L);B2=iD*U;f2=iD*b;jX=A\\b;
X=X0;[n m]=size(A);
for k=1:max1
X1=B2*X+f2;djwcX=norm(X1 -X,P);
xdwcX=djwcX/(norm(X,P)+eps);
if(djwcX else k;X1';k=k+1;X=X1; end end if(djwcX else diso('请注意:高斯-赛德尔迭代的结果没有达到给定的精度,并且迭代次数已经超过最大迭代次数max1,方程组的精确解jx和迭代X如下:') X=X';jX=kX'; end end X=X';D;U;L;jX=jX'; 在主窗口框中输入以下例子 >> A=[10 3 1;2 -10 3;1 3 10]; >> b=[14;11;20];X0=[0 0 0]'; >> X=gsdddy(A,b,X0,inf,0.001,100) 请注意:因为对角矩阵D非奇异,所以此方程组有解。 X =