cgnr.m

来自「求解线性系统的Krylov方法的工具箱」· M 代码 · 共 25 行

M
25
字号
%function [y,x]=CGNR(A,b,x0)
%developped by Plum
%this algorithm is to sovle the linear system Ax=b
%where A is a n-by-n matrix
function [y,x]=CGNR(A,b,x0)
k=0;
x0=zeros(length(A),1);
r=b-A*x0;x=x0;
err=1;p=A'*r;rr=p'*p;
while err>0.000001
    k=k+1;
    if k<100
        w=A*p;
        alpha=rr/(w'*w);
        x=x+alpha*p;
        r=r-alpha*w;
        err=norm(r,inf);
        z=A'*r;zz=z'*z;
        beta=zz/rr;rr=zz;
        p=z+beta*p;
    else
        break;
    end
end
y=k;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?