gradient.m

来自「various matlab programs to slove various」· M 代码 · 共 14 行

M
14
字号
function [x, error, niter, flag] = gradient(A, x, b, M, maxit, tol)flag = 0;    niter = 0;   bnrm2 = norm( b );if  ( bnrm2 == 0.0 ), bnrm2 = 1.0; endr = b - A*x;  error = norm( r ) / bnrm2;if ( error < tol ) return, endfor niter = 1:maxit    z  = M \ r;  rho = (r'*z);    q = A*z;               alpha = rho / (z'*q );    x = x + alpha * z;     r = r - alpha*q;    error = norm( r ) / bnrm2;      if ( error <= tol ), break, endendif ( error > tol ) flag = 1; endreturn

⌨️ 快捷键说明

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