2021-01-07 matlab数值分析 线性方程组的迭代解法 高斯-赛德尔迭代法

matlab数值分析 线性方程组的迭代解法 高斯-赛德尔迭代法

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

主函数(调用程序)

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

猜你喜欢

转载自blog.csdn.net/qingfengxd1/article/details/112321706