1. 简介

数值分析中,函数的条件数衡量的是输入参数的微小变化可以使函数的输出值变化多少,用来测量函数输出对于输入的微小变化的敏感程度,或者说一个问题的条件数是该数量在数值计算中容易程度的衡量。一个低条件数的问题称为良置的,而高条件数的问题称为病态(非良置)的。

2. 定义

给定问题 ff,输入 xx 以及用于求解问题的算法 f~\tilde{f},则绝对误差定义为

E(f~(x))=f(x)f~(x)\begin{array}{c} E(\tilde{f}(x)) = |f(x) - \tilde{f}(x)| \end{array}

相对误差定义为

RE(f~(x))=E(f~(x))f(x)=f(x)f~(x)f(x)\begin{array}{c} RE(\tilde{f}(x)) = \frac{E(\tilde{f}(x))}{|f(x)|} = \frac{|f(x)-\tilde{f}(x)|}{|f(x)|} \end{array}

该问题的绝对条件数定义为

limε0supE(x~)εE(f~(x))E(x~)\begin{array}{c} \lim_{\varepsilon \rightarrow 0} \sup_{E(\tilde{x}) \leq \varepsilon } \frac{E(\tilde{f}(x))}{E(\tilde{x})} \end{array}

相对条件数定义为

limε0supE(x~)εRE(f~(x))RE(x~)f(x)f(x)x\begin{array}{c} \lim_{\varepsilon \rightarrow 0} \sup_{E(\tilde{x}) \leq \varepsilon } \frac{RE(\tilde{f}(x))}{RE(\tilde{x})} \approx \frac{|f^{'}(x)|}{|f(x)|} \cdot |x| \end{array}

【注】相对条件数更能准确地描述函数输出对输入微小变化的敏感程度,因此一般都采取相对条件数(简称条件数)刻画条件数。

3. 常见函数条件数

函数 条件数
x+ax + a xx+a|{x \over x+a}|
axax 11
1x\frac{1}{x} 11
xnx^n n|n|
exe^x x|x|
ln(x)\ln(x) 1ln(x)|\frac{1}{\ln(x)}|
sin(x)\sin(x) xcot(x)|x \cot(x)|
cos(x)\cos(x) xtan(x)|x \tan(x)|
tan(x)\tan(x) x(tan(x)+cot(x))|x(\tan(x)+\cot(x))|
arcsin(x)\arcsin(x) x1x2arcsin(x)\frac{x}{\sqrt{1-x^2}\arcsin(x)}
arccos(x)\arccos(x) x1x2arccos(x)\frac{|x|}{\sqrt{1-x^2}\arccos(x)}
arctan(x)\arctan(x) x(1+x2)arctan(x)\frac{x}{(1+x^2)\arctan(x)}

3.1 矩阵范数

矩阵 AA 的条件数定义为

κ(A)=A1A\begin{array}{c} \kappa(A) = |A^{-1}| \cdot |A| \end{array}

条件数的具体数值依赖于范数 | \cdot |的选取。

  • | \cdot |L2L_2 诱导出的矩阵范数,则

κ(A)=σmax(A)σmin(A)\begin{array}{c} \kappa(A) = \frac{\sigma_{\max}(A)}{\sigma_{\min}(A)} \end{array}

其中 σmax(A)\sigma_{\max}(A)σmin(A)\sigma_{\min}(A) 分别是 AA 的极大和极小奇异值。

  1. AA 是正规矩阵,则

κ(A)=λmax(A)λmin(A)\begin{array}{c} \kappa(A) = |\frac{\lambda_{\max}(A)}{\lambda_{\min}(A)} | \end{array}

其中 λmax(A)\lambda_{\max}(A)λmax(A)\lambda_{\max}(A) 分别是 AA 的极大和极小特征值。

  1. AA 是酋矩阵,则

κ(A)=1\begin{array}{c} \kappa(A) = 1 \end{array}