function x=Agui_GS(A,b)%方程Ax=b,x0为初始向量
%e为精度,N为最大迭代次数
n=length(b);
N=100;
e=1e-4;
x0=zeros(n,1);
x=x0;
x0=x+2*e;
k=0;
A1=tril(A);
A2=inv(A1);whilenorm(x0-x,inf)>e&&k<N
k=k+1;
x0=x;
x=-A2*(A-A1)*x0+A2*b;
format long
k
disp(x');
end
if k==N
wArning('已达到最大迭代次数');
end
例1
>> A=[10-1-2;-110-2;-1-15]
A =10-1-2-110-2-1-15>> b=[72;83;42]
b =728342>> x=agui_GS(A,b)
k =17.2000000000000009.02000000000000111.644000000000000
k =210.43080000000000111.67188000000000212.820536000000001......
k =810.99999781713155011.99999866227841312.999999295881992
x =10.99999781713155011.99999866227841312.999999295881992
例2
>> A=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]
A =4-10-100-14-10-100-14-10-1-10-14-100-10-14-100-10-14>> b=[0;5;-2;5;-2;6]
b =05-25-26>> x=agui_GS(A,b)
k =11 至 3 列
01.250000000000000-0.1875000000000004 至 6 列
1.2031250000000000.1132812500000001.481445312500000......
k =141 至 3 列
0.9999170670329881.9999100291334250.9999240678704644 至 6 列
1.9999305461092090.9999428344044531.999966725568729
x =0.9999170670329881.9999100291334250.9999240678704641.9999305461092090.9999428344044531.999966725568729