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

矩阵条件数是衡量数值计算中矩阵问题稳定性的关键指标,它描述了矩阵对输入变化的敏感程度。高条件数的矩阵在计算时可能导致大的误差,尤其是在优化问题和线性系统解决中。条件数可以通过最大奇异值与最小奇异值的比值计算,它反映了矩阵能量主轴的变化范围。低条件数的矩阵问题更容易求解,而高条件数的问题则可能呈现病态,优化过程可能极其困难。
摘要由CSDN通过智能技术生成

矩阵对变化的敏感程度可以用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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值