矩阵对变化的敏感程度评价指标 Condition Number

矩阵对变化的敏感程度可以用Condition Number来评估,本文对其进行简略介绍。

定义

  • 数值分析中,一个问题的条件数是该数量在数值计算中的容易程度的衡量,也就是该问题的适定性。一个低条件数的问题称为良置的,而高条件数的问题称为病态(或者说非良置)的。 —— 维基百科

直白来说就是描述一个矩阵是否变化率在可控范围内,下方这个示例程序可以看到,当调整a, b, c的值使得条件数很大时,二次型描述的曲面在某个方向上会拉的很长;在这种情况下,曲面上的点沿着某个方向会得到巨大的变化率,而沿着某些方向变化率又很小,当条件数为无穷大时甚至这个比值甚至会变得无穷大。

  • 在我的个人站点上有一个动态演示,有兴趣的同学可以移步去感受一下。

以优化二次型为例,我们的目的时找到矩阵的极值,然而在摸索过程中,沿着有些方向走一小步结果就产生了巨大的变化,如果往另一个方向还走这么大步子又可能对结果没什么影响,这样的二次型矩阵相对那些各个方向变化率差异小的二次型就更加难以优化。

  • 矩阵 A ( n × n ) {\bf{A} } (n\times n) A(n×n)条件数,用 C o n d ( A ) Cond(\bf{A}) Cond(A)表示,数学上的定义为矩阵绝对值最大的奇异值(用 λ \lambda λ表示)与绝对值最小的奇异值的商:

C o n d ( A ) = λ 1 λ n Cond({\bf{A} }) = \frac{ { {\lambda _1} } } { { {\lambda _n} } } Cond(A)=λnλ1

这个定义的解释是直观的,最大的奇异值表示矩阵的能量主轴,表示可能产生的最大变化率:

max ⁡ ∥ A x ∥ ∥ x ∥ = λ 1 \max \frac{ {\left\| { {\bf{A}}x} \right\|} }{ {\left\| x \right\|} } = {\lambda _1} maxxAx=λ1

然后最小奇异值 λ n \lambda _n λn对应最小的变化率:

min ⁡ ∥ A x ∥ ∥ x ∥ = λ n \min \frac{ {\left\| { {\bf{A}}x} \right\|} }{ {\left\| x \right\|} } = {\lambda _n} minxAx=λn

二者的商就是矩阵的条件数

另一种推导思路

  • 在衡量某个函数敏感度与稳定性时,常使用的一种方法是求导。即观察导数 d f ( x ) / d x df(x)/dx df(x)/dx 的大小。

  • 考虑线性系统 A x = b \bf{A}x=b Ax=b,其中矩阵 A \bf{A} A n n n阶可逆方阵

  • x \bf{x} x上加入一个小扰动 δ \delta δ,系统变为:

A ( x + δ ) = b + A δ {\bf{A} }( {\bf{x}} + {\bf{\delta } }) = b + {\bf{A\delta } } A(x+δ)=b+Aδ

  • 用在 b \bf{b} b上的变化率与 x \bf{x} x上的变化率的比值表示线性系统的稳定程度,这个稳定程度我们用字母 C C C表示:

C = ∣ ∣ A δ ∣ ∣ / ∣ ∣ b ∣ ∣ ∣ ∣ δ ∣ ∣ / ∣ ∣ x ∣ ∣ = ∣ ∣ A δ ∣ ∣ ∣ ∣ δ ∣ ∣ ⋅ ∣ ∣ x ∣ ∣ ∣ ∣ b ∣ ∣ = ∣ ∣ A δ ∣ ∣ ∣ ∣ δ ∣ ∣ ⋅ ∣ ∣ A − 1 b ∣ ∣ ∣ ∣ b ∣ ∣ \begin{array}{l} C &= \frac{ {\left| {\left| { {\bf{A\delta }}} \right|} \right|/\left| {\left| {\bf{b}} \right|} \right|}}{ {\left| {\left| {\bf{\delta }} \right|} \right|/\left| {\left| {\bf{x}} \right|} \right|}}\\ &= \frac{ {\left| {\left| { {\bf{A\delta }}} \right|} \right|}}{ {\left| {\left| {\bf{\delta }} \right|} \right|}} \cdot \frac{ {\left| {\left| {\bf{x}} \right|} \right|}}{ {\left| {\left| {\bf{b}} \right|} \right|}}\\ &= \frac{ {\left| {\left| { {\bf{A\delta }}} \right|} \right|}}{ {\left| {\left| {\bf{\delta }} \right|} \right|}} \cdot \frac{ {\left| {\left| { { {\bf{A}}^{ - 1}}{\bf{b}}} \right|} \right|}}{ {\left| {\left| {\bf{b}} \right|} \right|}} \end{array} C=δ/xAδ/b=δAδbx=δAδbA1b

  • 其中模长为范数操作,根据范数的相容性,有:

C = ∣ ∣ A δ ∣ ∣ ∣ ∣ δ ∣ ∣ ⋅ ∣ ∣ A − 1 b ∣ ∣ ∣ ∣ b ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ∣ ∣ δ ∣ ∣ ∣ ∣ δ ∣ ∣ ⋅ ∣ ∣ A − 1 ∣ ∣ ∣ ∣ b ∣ ∣ ∣ ∣ b ∣ ∣ = ∣ ∣ A ∣ ∣ ∣ ∣ A − 1 ∣ ∣ \begin{array}{l} C &= \frac{ {\left| {\left| { {\bf{A\delta }}} \right|} \right|}}{ {\left| {\left| {\bf{\delta }} \right|} \right|}} \cdot \frac{ {\left| {\left| { { {\bf{A}}^{ - 1}}{\bf{b}}} \right|} \right|}}{ {\left| {\left| {\bf{b}} \right|} \right|}}\\ &\le \frac{ {\left| {\left| {\bf{A}} \right|} \right|\left| {\left| {\bf{\delta }} \right|} \right|}}{ {\left| {\left| {\bf{\delta }} \right|} \right|}} \cdot \frac{ {\left| {\left| { { {\bf{A}}^{ - 1}}} \right|} \right|\left| {\left| {\bf{b}} \right|} \right|}}{ {\left| {\left| {\bf{b}} \right|} \right|}}\\ &= \left| {\left| {\bf{A}} \right|} \right|\left| {\left| { { {\bf{A}}^{ - 1}}} \right|} \right| \end{array} C=δAδbA1bδAδbA1b=AA1

条件数的性质

  • 对任何非零矩阵 A \bf{A} A, C o n d ( A ) ≥ 1 Cond{\rm{ } }\left( A \right){\rm{ } } \ge {\rm{ } }1 Cond(A)1

  • C o n d ( I ) = 1 Cond\left( \bf{I} \right){\rm{ } } = {\rm{ } }1 Cond(I)=1, I \bf{I} I 是单位矩阵

  • C o n d ( s A ) = C o n d ( A ) Cond\left( {s{\bf{A} } } \right){\rm{ } } = {\rm{ } }Cond\left( {\bf{A} } \right) Cond(sA)=Cond(A), 其中 s s s是一个标量

  • 对于任何对角矩阵 A = d i a g ( d ) {\bf{A} }{\rm{ } } = {\rm{ } }diag\left( {\bf{d} } \right) A=diag(d) C o n d ( A ) = m a x ( d ) / m i n ( d ) Cond\left( {\bf{A} } \right){\rm{ } } = {\rm{ } }max({\bf{d} }){\rm{ } }/{\rm{ }}min({\bf{d} }) Cond(A)=max(d)/min(d)

参考资料

  • https://blog.csdn.net/bitcarmanlee/article/details/51945271
  • https://blog.csdn.net/adminabcd/article/details/46619627
  • https://zhuanlan.zhihu.com/p/81053589

猜你喜欢

转载自blog.csdn.net/zywvvd/article/details/113753410
今日推荐