2021-01-07 Matlab numerical analysis linear equations iterative method Gauss-Seidel iteration method

Matlab numerical analysis linear equations iterative solution Gauss-Seidel iterative method

 

Function [x,iter]=gs(A,b,tol)
D=diag(diag(A));
L=D-tril(A);
U=D-triu(A);
x=zeros(size(b));      %从x=[0;0…]T开始
for iter=1:500
    x=(D-L)\(b+U*x);       %此句换为x=(D)\(b+L*x+U*x);即为Jacobi迭代
    error=norm(b-A*x)/norm(b);
    if(error<tol)
        break;
    end
end

Main function (calling program)

A=[2,-1,0;-1,3,-1;0,-1,2];b=[1;8;-5];tol=1e-4;[x,iter]=gs(A,b,tol)

 

 

Guess you like

Origin blog.csdn.net/qingfengxd1/article/details/112321706