线性方程数值分析中高斯迭代matlab实现

来源:互联网 发布:中兴云计算怎么样 编辑:程序博客网 时间:2024/05/16 10:43

%gauss迭代
%author:野渡无人
%create date:2007-11-23 

function res=mygauss(a,b,x0,eps)

%a为系数矩阵,b为方程组常数向量,x0为初值
if nargin==3
    eps=1.0e-6;
elseif nargin<3
    error
    return;
end

D=diag(diag(a))%求矩阵对角阵
L=tril(a,-1)%求严格下三角矩阵
U=triu(a,1)%求严格上三角矩阵
C=inv(D+L)
B=-C*U
if norm(B,inf)>=1
    fprintf('B范数>=1.');
    return;
end
f=C*b
res=B*x0+f
while norm(res-x0)>=eps
    x0=res
    res=B*x0+f
end

原创粉丝点击