cg.asv

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

ASV
29
字号
%function y=CG(A,b,x0)
%developped by Plum
%this algorithm is to sovle the linear syAx=b
function [y,x]=CG(A,b,x0)
k=0;
r0=b-A*x0;
r1=r0;
err=1;
while err>0.00001
    k=k+1;
    if k<1000
      if k==1
          p=r0;
      else
          beta=r1'*r1/(r0'*r0);
          p=r1+beta*p;
      end
      alpha=r1'*r0/(p'*A*p);
      x1=x0+alpha*p;
      r0=r1;
      r1=r0-alpha*A*p;
      err=norm(r1,inf);
      x0=x1;
    else
        break;
    end
end
y=k;
x=x1;

⌨️ 快捷键说明

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