文档

MINRES法

最小剩余法

句法

X = MINRES法(A,B)
minres (A, b, tol)
MINRES法(A,B,TOL,麦克斯特)
minres (A, b,托尔,麦克斯特米)
麦克斯特minres (A, b,托尔,M1, M2)
麦克斯特minres (A, b,托尔,M1, M2, x0)
[X,旗] = MINRES法(A,B,...)
[x,国旗,relres] = minres (A, b,…)
[X,旗,relres,ITER] = MINRES法(A,B,...)
[x,国旗,relres, iter resvec] = minres (A, b,…)
[X,旗,relres,ITER,resvec,resveccg] = MINRES法(A,B,...)

描述

X = MINRES法(A,B)试图找到一个最低标准残留的溶液X线性方程组A * X = B。的ñ——- - - - - -ñ系数矩阵一个必须是对称的,但不一定是正定的。它应该是大而稀疏。列向量b必须有长度ñ。您可以指定一个作为一个功能手柄,afun,这样afun (x)回报* x

参数化功能介绍了如何给函数提供额外的参数afun,以及预调节功能mfun如下所述,如果需要的话。

如果MINRES法收敛,则显示一条消息到该效果。如果MINRES法未能迭代或暂停出于任何原因的最大数目后收敛,则输出警告消息显示所述相对残余规范(b * x) /规范(b)和迭代号,在该方法停止或失败。

minres (A, b, tol)指定方法的容忍度。如果托尔[], 然后MINRES法使用默认的,1E-6

MINRES法(A,B,TOL,麦克斯特)指定最大迭代次数。如果麦克斯特[], 然后MINRES法使用默认的,分(N,20)

minres (A, b,托尔,麦克斯特米)麦克斯特minres (A, b,托尔,M1, M2)使用对称正定预调节器中号M = M1 * M2有效地解决了系统INV(SQRT(M))* A * INV(SQRT(M))* Y = INV(SQRT(M))* B对于ÿ然后返回x =发票(sqrt (M)) * y。如果中号[]然后MINRES法适用于无预条件。中号可以是函数句柄吗mfun,这样MFUN(x)的回报中号\ X

麦克斯特minres (A, b,托尔,M1, M2, x0)指定初始猜测。如果X0[], 然后MINRES法使用默认的全零向量。

[X,旗] = MINRES法(A,B,...)也返回一个收敛标志。

国旗

收敛

0

MINRES法收敛到所需的公差托尔麦克斯特迭代。

1

MINRES法迭代麦克斯特次,但没有收敛。

2

预调节器中号是病态。

3

MINRES法停滞不前。(两个连续迭代是一样的。)

4

在一个计算的标量的MINRES法变得过小或过大,继续计算。

每当国旗不是0,解决方案X返回的是与上计算所有的迭代极小范残留。不显示任何消息,如果国旗输出指定。

[x,国旗,relres] = minres (A, b,…)还返回相对剩余值规范(b * x) /规范(b)。如果国旗0relres < =托尔

[X,旗,relres,ITER] = MINRES法(A,B,...)也返回迭代次数在该X被计算,其中0 <= ITER <=麦克斯特

[x,国旗,relres, iter resvec] = minres (A, b,…)也返回的估计向量MINRES法在每次迭代的剩余规范,包括范数(B-A * X0)

[X,旗,relres,ITER,resvec,resveccg] = MINRES法(A,B,...)还返回在每一次迭代的共轭梯​​度残余规范估计向量。

例子

使用MINRES法与矩阵输入

n = 100;= 1 (n, 1);A = spdiags([-2*on 4*on -2*on],-1:1,n,n);b =和(2);托尔= 1平台以及;麦克斯特= 50;M1 = spdiags (4 * 0 n, n);x = minres (A, b,托尔,麦克斯特,M1);MINRES法收敛在迭代49与相对残余4.7E-014的溶液中

使用MINRES法与功能处理

这个例子替换了矩阵一个在具有手柄的矩阵矢量乘积函数前面的例子afun。示例包含在一个文件中run_minres

  • 呼叫MINRES法与功能手柄@好玩儿作为第一个参数。

  • 包含afun作为一个嵌套函数,这样在所有变量run_minres可用于afun

下面显示的代码run_minres

函数X1 = run_minres N = 100;= 1 (n, 1);A = spdiags([-2*on 4*on -2*on],-1:1,n,n);b =和(2);托尔= 1平台以及;麦克斯特= 50;M = spdiags(4 *上,0,N,N);X1 = MINRES法(@ afun,B,TOL,麦克斯特,M);函数y = afun(X)Y = 4 * X;Y(2:N)= Y(2:N) -  2 *×(1:N-1); y(1:n-1) = y(1:n-1) - 2 * x(2:n); end end

当你进入

X1 = run_minres;

MATLAB®软件显示消息

MINRES法收敛在迭代49与相对残余4.7E-014的溶液中

使用MINRES法代替PCG

使用一个不对称不定矩阵PCG

A = DIAG([20:-1:1,-1:-1:-20]);b =和(2);%真正的解决办法是所有的人的载体。X = PCG(A,B);%从错误在第一次迭代。

显示以下消息:

PCG停在迭代1而未收敛到所需的公差1E-006,因为标量变得过小或过大,继续计算。所述迭代返回(编号0)具有相对残余1

然而,MINRES法可以处理不定矩阵一个

x = minres (A, b, 1 e-6, 40);minres在39次迭代时收敛到相对残差为1.3e-007的解

参考文献

[1]巴雷特,R.,M。莓果,T.F。陈等人,用于线性方程组的求解模板:构建块的迭代方法,SIAM,费城,1994年。

[2]佩奇,C. C.和M. A.桑德斯,“线性方程组的稀疏不定系统解决方案”。SIAM J. NUMER。肛门,第12卷,1975年,第617-629。

之前介绍过的R2006a

这个话题有用吗?