IllConditioning
Last updated
Last updated
求解方程组时如果对数据进行较小的扰动,则得出的结果具有很大波动,这样的矩阵称为病态矩阵。 例如: 解为:x1=-100, x2=-200 而其中加入一点点的误差 则解变为:x1=40000, x2=79800 当解集 x 对 A 和 b 的系数高度敏感,那么这样的方程组就是病态的 (ill-conditioned).矩阵A为病态矩阵。
由于“ill condition”中的condition译为状态而不是条件,所以“condition number”应该译为“状态表征值”而不是“条件数”。 条件数容易让人误解为“条件的个数”。实际上它与个数没有状态,它是用来衡量这个矩阵有没有处于“病态”这个状态的一种指标。因此理解为“状态表征值”更合适。 既然所有的材料都把它称为条件数,我这里也就这么用了。但是一定不要被这个名字给误导了。它与“条件”和“个数”没有半毛钱关系。
条件数K(A):判定矩阵是否病态以及衡量矩阵的病态程度,计算公式为:
常用的公式:
其中||||表示对矩阵取某一种范数
deep learning book中定义的公式:
其中$\lambda$是A的特征值。
当K(A)很大时,称 A 为病态,否则称良态。K(A)越大,A的病态程度就越严重。 这两个计算公式表达的是一个意思,[?]但我不知道怎么把它们联系到一起。