Type: concept
Confidence: 0.95
Created: 2026-04-15
Updated: 2026-04-15
Tags: 技术研究数值分析

条件数

概述

条件数(condition number)$\kappa(A) = |A| \cdot |A^{-1}|$ 是衡量线性方程组 $Ax = b$ 对输入扰动的固有敏感程度的核心量。由阿兰·图灵于 1948 年系统引入(记作 $N(A)$),约翰·冯·诺依曼与 Goldstine 于 1947 年独立提出类似概念。条件数大(病态问题)意味着输入的微小扰动会被极度放大到输出,与算法选择无关;条件数小(良态问题)则意味着结果对误差不敏感。结合后向误差分析,条件数提供了数值计算可靠性的完整理论框架。

关键内容

定义

$$\kappa(A) = |A| \cdot |A^{-1}|$$

其中 $|\cdot|$ 是任意相容矩阵范数(常用 2-范数:$\kappa_2(A) = \sigma_{\max}/\sigma_{\min}$,即最大与最小奇异值之比)。

正规矩阵(含对称正定矩阵):

$$\kappa_2(A) = |\lambda_{\max}| / |\lambda_{\min}|$$

物理意义

条件数是问题对输入扰动的"放大倍数"上界

$$\frac{|\delta x|}{|x|} \leq \kappa(A) \cdot \frac{|\delta b|}{|b|}$$

病态与良态

条件数 分类 含义
$\kappa(A) \approx 1$ 极良态 误差几乎不被放大
$\kappa(A) \sim 10^3$ 适中 单精度计算仍可靠
$\kappa(A) \sim 10^8$ 病态 双精度(16位)只剩约 8 位有效数字
$\kappa(A) \gtrsim 10^{16}$ 极病态 双精度结果几乎全是噪声

图灵引入"病态"(ill-conditioned)和"良态"(well-conditioned)这对术语,至今是数值分析最常用的专业词汇。

条件数与后向误差分析的结合

后向误差分析Wilkinson 1963–1965)将算法误差分解为:

$$\underbrace{\text{前向误差}}{\text{结果精度}} \approx \underbrace{\kappa(A)}{\text{问题固有难度}} \times \underbrace{\epsilon_{\text{backward}}}_{\text{算法稳定性}}$$

这一分解澄清了"结果不准"究竟是算法问题还是问题本身的问题——是图灵最重要的概念贡献之一。

图灵 vs 冯·诺依曼的定义对比

| 方面 | 图灵(1948) | 冯·诺依曼-Goldstine(1947) | |------|------------|--------------------------| | 定义形式 | $N(A) = |A|\cdot|A^{-1}|$(矩阵范数乘积)| $\lambda_{\max}/\lambda_{\min}$(特征值比)| | 误差模型 | 确定性最坏情况分析 | 统计模型(随机舍入假设)| | 主要对象 | 高斯消元法 | 矩阵求逆 | | 现代标准 | 更接近(便于推广)| 仅适用正规矩阵 |

条件数的推广

条件数概念已推广到几乎所有数值计算领域:

问题 条件数形式
特征值问题 $1/
非线性方程 $f(x)=0$ $
优化问题 Hessian 矩阵的谱条件数
神经网络训练 梯度条件数(影响训练稳定性和速度)

历史意义

图灵1948年论文否定了 Hotelling(1943)关于高斯消元法误差以 $4^n$ 指数增长的悲观预测:使用列主元选取(partial pivoting)后,误差界大致为 $\kappa(A) \cdot 2^{-t}$,不随 $n$ 指数增长。这对计算科学界是一个重要解脱,为使用大规模高斯消元法奠定了理论依据。

来源

相关