In the field of numerical analysis, the condition number of a function with respect to an argument measures how much the output value of the function can change for a small change in the input argument. This is used to measure how sensitive a function is to changes or errors in the input, and how much error in the output results from an error in the input. Very frequently, one is solving the inverse problem – given  one is solving for x, and thus the condition number of the (local) inverse must be used. In linear regression the condition number can be used as a diagnostic for multicollinearity.

在数值分析领域,一个函数关于一个参数的条件数(Condition Number)测量了函数的输出值相对于输入参数的变化强度。这用来测量一个函数相对于输入变化或误差有多敏感,以及输出结果相对于输入中的误差的误差变化。非常频繁地,一个是解决逆问题f(x)=y,一个是解决x,因此必须使用逆的条件数。在线性拟合中,条件数可以用来做多重共线性的诊断。

The condition number is an application of the derivative, and is formally defined as the value of the asymptotic worst-case relative change in output for a relative change in input. The "function" is the solution of a problem and the "arguments" are the data in the problem. The condition number is frequently applied to questions in linear algebra, in which case the derivative is straightforward but the error could be in many different directions, and is thus computed from the geometry of the matrix. More generally, condition numbers can be defined for non-linear functions in several variables.

条件数是导数的一个应用,而且定义为相对于输入值的改变而输出值相对渐进最坏的改变。“函数”是一个问题的解决方法,而“参数”是问题的数据。条件数频繁地被应用于线性代数问题,其中导数是前向的,但是误差可以是多种不同方向的,因此通过矩阵的几何而计算。更一般地,条件数可以定义在带有多个变量的非线性函数中。

A problem with a low condition number is said to be well-conditioned, while a problem with a high condition number is said to be ill-conditioned. The condition number is a property of the problem. Paired with the problem are any number of algorithms that can be used to solve the problem, that is, to calculate the solution. Some algorithms have a property called backward stability. In general, a backward stable algorithm can be expected to accurately solve well-conditioned problems. Numerical analysis textbooks give formulas for the condition numbers of problems and identify known backward stable algorithms.

带有低条件数的问题被称为良好-条件的,而带有高的条件数的问题则被称为病态-条件的。条件数是一个问题的属性。跟一个问题匹配的是任何可以用来解决该问题的算法数量,那就是,计算该解决方案。一些算法有一个属性称为反向稳定。一般来说,反向稳定的算法可以用来精确地解决良好-条件的问题。数值分析书给出了问题的条件数公式,并且命名为反向稳定算法。

As a rule of thumb, if the condition number , then you may lose up to  digits of accuracy on top of what would be lost to the numerical method due to loss of precision from arithmetic methods.[3] However, the condition number does not give the exact value of the maximum inaccuracy that may occur in the algorithm. It generally just bounds it with an estimate (whose computed value depends on the choice of the norm to measure the inaccuracy).

凭经验法估计,如果条件数,那么由于数学算法的精度缺失你可能失去在数值方法上k点的精度。但是,条件数并不给出算法中可能出现的精确的最大失真值。它通常只是给出一个估计值(它的计算值取决于测量失真的norm(范数)的选择)。

Matrices矩阵

For example, the condition number associated with the linear equation Ax = b gives a bound on how inaccurate the solution x will be after approximation. Note that this is before the effects of round-off error are taken into account; conditioning is a property of the matrix, not the algorithm or floating point accuracy of the computer used to solve the corresponding system. In particular, one should think of the condition number as being (very roughly) the rate at which the solution, x, will change with respect to a change in b. Thus, if the condition number is large, even a small error in b may cause a large error in x. On the other hand, if the condition number is small then the error in x will not be much bigger than the error in b.

例如,与线性等式Ax=b相关的条件数给出解决方案x在近似之后的不精确的边界。注意这在考虑四舍五入取整化零的影响之前;条件是该矩阵的属性,不是算法或浮点数准确性。尤其是,应该把条件数想象成解决方案x将跟随b的变化的变化率。因此,如果条件数大,那么哪怕是b中很小的误差也可能会引起x中特别大的误差。另一方面,如果条件数小,那么x重的误差将不会比b中的误差大多少。

The condition number is defined more precisely to be the maximum ratio of the relative error in x to the relative error in b.

条件数更精确地定义为x中的相对误差与b中的相对误差的最大比值。

Let e be the error in b. Assuming that A is a nonsingular matrix, the error in the solution A−1b is A−1e. The ratio of the relative error in the solution to the relative error in b is

当e表示b中的误差。假设A是一个非奇异矩阵,解决方案A−1b中的误差为A−1e。解决方案中的相对误差相对于b中的相对误差的比率为

This is easily transformed to

这很容易转换成

The maximum value (for nonzero b and e) is then seen to be the product of the two operator norms as follows:

最大值(对于非零b和e)因此可以看作是这两个操作范数的积如下所示:

The same definition is used for any consistent norm, i.e. one that satisfies

When the condition number is exactly one (which can only happen if A is a scalar multiple of a linear isometry), then a solution algorithm can find (in principle, meaning if the algorithm introduces no errors of its own) an approximation of the solution whose precision is no worse than that of the data.

However, it does not mean that the algorithm will converge rapidly to this solution, just that it won't diverge arbitrarily because of inaccuracy on the source data (backward error), provided that the forward error introduced by the algorithm does not diverge as well because of accumulating intermediate rounding errors.[clarification needed]

The condition number may also be infinite, but this implies that the problem is ill-posed (does not possess a unique, well-defined solution for each choice of data -- that is, the matrix is not invertible), and no algorithm can be expected to reliably find a solution.

The definition of the condition number depends on the choice of norm, as can be illustrated by two examples.

If   is the norm (usually noted as ) defined in the square-summable sequence space 2 (which matches the usual distance in a standard Euclidean space), then

where  and  are maximal and minimal singular values of  respectively. Hence

where  and  are maximal and minimal (by moduli) eigenvalues of  respectively.

The condition number with respect to L2 arises so often in numerical linear algebra that it is given a name, the condition number of a matrix.

If   is the norm (usually denoted by ) defined in the sequence space  of all bounded sequences (which matches the maximum of distances measured on projections into the base subspaces), and  is lower triangular non-singular (i.e., ) then

The condition number computed with this norm is generally larger than the condition number computed with square-summable sequences, but it can be evaluated more easily (and this is often the only practicably computable condition number, when the problem to solve involves a non-linear algebra[clarification needed], for example when approximating irrational and transcendental functions or numbers with numerical methods).

If the condition number is not too much larger than one (but it can still be a multiple of one), the matrix is well conditioned which means its inverse can be computed with good accuracy. If the condition number is very large, then the matrix is said to be ill-conditioned. Practically, such a matrix is almost singular, and the computation of its inverse, or solution of a linear system of equations is prone to large numerical errors. A matrix that is not invertible has condition number equal to infinity.

>>补充知识:

矩阵 A 的条件数等于 A 的范数与 A 的逆的范数的乘积,即 cond(A)=‖A‖·‖A^(-1)‖,对应矩阵
的 3 种范数,相应地可以定义 3 种条件数。(矩阵的范数有哪几种?)

函数 cond(A,1)、cond(A)戒 cond(A inf) 是判断矩阵病态与否的一种度量,条件数越大矩阵越病态。条件数事实上表示了矩阵计算对于误差的敏感性。对于线性方程组 Ax=b,如果 A 的条件数大,b 的微小改变就能引起解 x 较大的改变,数值稳定性差。如果 A 的条件数小,b 有微小的改变,x 的改变也很微小,数值稳定性好。它也可以表示 b 不变,而 A 有微小改变时,x 的变化情况。比如线性方程组。

的解是(x,y)=(0.0,0.1),

的解是(x,y)=(-0.17,0.22),可见 b 很小的扰动就引起了 x 很大的变化,这就是 A 矩阵条件数大的表现。

一个极端的例子,当 A 奇异时,条件数为无穷,这时即使不改变 b,x 也可以改变。奇异的本质原因在于矩阵有 0 特征值,x 在对应特征向量的方向上运动不改变 Ax 的值。如果一个特征值比其它特征值在数量级上小很多,x 在对应特征向量方向上很大的移动才能产生 b 微小的变化,这就解释了为什么这个矩阵为什么会有大的条件数,事实上,正则阵在二范数下的条件数就可以表示成 abs(最大特征值/最小特征值)。

参考:https://en.wikipedia.org/wiki/Condition_number

https://www.cnblogs.com/hxsyl/p/5071434.html

https://blog.csdn.net/lanchunhui/article/details/51372831

什么是Condition Number(条件数)?的更多相关文章

  1. 条件数(condition number)

    首先引入维基上的解释 In the field of numerical analysis, the condition number of a function with respect to an ...

  2. 【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...

  3. 开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

    原文:[原创]开源Math.NET基础数学类库使用(17)C#计算矩阵条件数                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...

  4. Maths | 病态问题和条件数

    目录 1. 概念定义 1.1. 病态/ 良态问题 1.2. 适定/ 非适定问题 1.3. 良态/ 病态矩阵和条件数 2. 病态的根源 3. 计算条件数的方法 3.1. 与特征值的关系 3.2. 与奇异 ...

  5. <<Numerical Analysis>>笔记

    2ed,  by Timothy Sauer DEFINITION 1.3A solution is correct within p decimal places if the error is l ...

  6. 最优化方法:范数和规则化regularization

    http://blog.csdn.net/pipisorry/article/details/52108040 范数规则化 机器学习中出现的非常频繁的问题有:过拟合与规则化.先简单的来理解下常用的L0 ...

  7. <Numerical Analysis>(by Timothy Sauer) Notes

    2ed,  by Timothy Sauer DEFINITION 1.3A solution is correct within p decimal places if the error is l ...

  8. Eigen使用矩阵作为函数参数

    1 使用矩阵作为函数参数介绍 文章来源Writing Functions Taking %Eigen Types as Parameters Eigen为了在函数中传递不同的类型使用了表达式模板技术. ...

  9. zzL1和L2正则化regularization

    最优化方法:L1和L2正则化regularization http://blog.csdn.net/pipisorry/article/details/52108040 机器学习和深度学习常用的规则化 ...

随机推荐

  1. Oracle Database 12.2新特性详解

    在2015年旧金山的Oracle OpenWorld大会上,Oracle发布了Database 12.2的Beta版本,虽然Beta版本只对部分用户开放,但是大会上已经公布了12.2的很多重要的新特性 ...

  2. ecmall允许上传的图片大小

    $uploader->allowed_type($type); $uploader->allowed_size($size);  ecmall上传类型大小是这样定义,你可以去文件中搜索相关 ...

  3. codeforces 985E Pencils and Boxes(dp+思维)

    E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  4. 杂项-公司:联邦快递百科-un

    ylbtech-杂项-公司:联邦快递百科 联邦快递( FedEx)是一家国际性速递集团,提供隔夜快递.地面快递.重型货物运送.文件复印及物流服务,总部设于美国田纳西州,隶属于美国联邦快递集团(FedE ...

  5. print 函数用法总结

    1. 字符串和数值类型 >>> print(1) 1 >>> print("Hello World") Hello World 2.变量无论什么 ...

  6. 实战MvcPager(PagerOptions自定义样式&同、异步)

    ASP.NET MVC下的分页控件MvcPager用起来简直太嗨呸了,两句代码实现一个分页,而且需要改变样式的时候直接构造PagerOptions类 实战无需多说,拿来用之即可.个人觉得对性能影响不大 ...

  7. python爬西刺代理

    爬IP代码 import requests import re import dauk from bs4 import BeautifulSoup import time def daili(): p ...

  8. Elasticsearch之kopf插件安装之后的浏览详解

    前提, Elasticsearch之插件介绍及安装 https://i.cnblogs.com/posts?categoryid=950999&page=2  (强烈建议,从头开始看) 比如, ...

  9. for in 循环的输出顺序问题

    var data = { '4': 'first', '3': 'second', '2': 'third', '1': 'fourth' }; for (var i in data) { conso ...

  10. ZooKeeper集群搭建过程

    ZooKeeper集群搭建过程 提纲 1.ZooKeeper简介 2.ZooKeeper的下载和安装 3.部署3个节点的ZK伪分布式集群 3.1.解压ZooKeeper安装包 3.2.为每个节点建立d ...