⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cg.m

📁 求解线性系统的Krylov方法的工具箱
💻 M
字号:
%function y=CG(A,b,x0)
%developped by Plum_Liliang
%this algorithm is to sovle the linear system Ax=b
%where A is a n-by-n matrix
function [y,x]=CG(A,b,x0)
k=0;n=length(A);
if nargin<3
    x0=zeros(n,1);
end
r0=b-A*x0;
r1=r0;
err=1;
while err>0.00001
    k=k+1;
    if k<100
      if k==1
          p=r0;
      else
%           beta=-p'*A*r0/(p'*A*p);
%           p=r0+beta*p;
          beta=r1'*r1/(r0'*r0);
          p=r0+beta*p;
      end  
%       alpha=p'*r0/(p'*A*p);
%       x1=x0+alpha*p;
                alpha=p'*r1/(p'*A*p);
                x1=x0+alpha*p;
      r0=r1;
      r1=r1-alpha*A*p;
      err=norm(r1,inf);
      x0=x1;
    else
        break;
    end
end
y=k;
x=x1;

⌨️ 快捷键说明

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