cgnr.asv

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

ASV
26
字号
%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;rr1=p'*p;
while err>0.000001
    k=k+1;
    if k<100
        w=A*p;
        alpha=rr1/w'*w;
        x=x+alpha*p;
        r=r-alpha*w;
        err=norm(r,inf);
        x0=x1;
        beta=((A'*r)'*(A'*r))/((A'*r0)'*(A'*r0));
        p=A'*r+beta*p;
    else
        break;
    end
end
y=k;
x=x1;

⌨️ 快捷键说明

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