conjgrad.m

来自「介绍了《MATLAB语言常用算法程序集》一书的源程序」· M 代码 · 共 19 行

M
19
字号
function [x,n]= conjgrad (A,b,x0)
r1  = b-A*x0;
p  = r1;
n  = 0;
for i=1:rank(A)                    %以下过程可参考算法流程
    if(dot(p,A*p) < 1.0e-50)     %循环结束条件
          break;
    end
    alpha  = dot(r1,r1)/dot(p,A*p);
    x  = x0+ alpha*p;
    r2 = r1- alpha*A*p;
    if(r2 < 1.0e-50)               %循环结束条件
          break;
    end
    belta  = dot(r2,r2)/dot(r1,r1);
    p  = r2+belta*p;
    n  = n + 1;
end

⌨️ 快捷键说明

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