preconjgrad.m

来自「为求解大规模TSP 问题,提出了并行人工免疫系统的塔式主从模型( Towerli」· M 代码 · 共 24 行

M
24
字号
function [x,n]= preconjgrad (A,b,x0,M,eps)
if nargin == 4
    eps = 1.0e-6;
end
r1 = b-A*x0;
iM = inv(M);
z1 = iM*r1; 
p  = z1;
n  = 0;
tol= 1;
while tol>=eps
    alpha  = dot(r1,z1)/dot(p,A*p);     
    x  = x0 + alpha*p;
    r2 = r1 - alpha*A*p;
    z2 = iM*r2;
    belta  = dot(r2,z2)/dot(r1,z1);
    p  = z2+belta*p;
    n  = n + 1;
    tol = norm(x-x0);
    x0 = x;                       %更新迭代值
    r1 = r2;
    z1 = z2;
end

⌨️ 快捷键说明

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