问题条件数(Conditioning of a problem)

文章讨论了在数值计算中,即使是使用稳定的算法,数据的微小变化可能导致大误差的问题,这类问题被称为病态问题。条件数是衡量问题对数据敏感性的指标,高条件数意味着问题对数据扰动更敏感。文章举例说明不同函数的条件数,指出矩阵条件数在判断矩阵是否病态中的作用,并提到了在MATLAB中计算条件数的不同方法。

Conditioning of a problem

该博客是学习《Numerical Linear Algebra with Applications Using MATLAB》的一些总结,仅供学习使用。

通常即使使用一个稳定的算法来解决一个问题,该问题对数据中小的改变或扰动仍然是敏感的。这些扰动可能来自舍入误差(roundoff error),收集实验数据时的小的测量误差,没有被信号过滤的噪音,近似无穷级数时的截断误差等。如果该问题落入此类,则称该问题为ill-conditioned(病态的)。

Def 1: 不管用什么算法来解决一个问题,如果它的数据中的一个小的相对变化会导致它的计算解的一个大的相对误差, 则称这个问题是病态的(ill-conditioned),如果问题数据中的小扰动导致计算解的小相对误差,则称问题是良态的(well-conditioned)。

需要搞清楚两个概念:stability 和 conditioning。

  1. Stable or unstable 是对于算法而言的;
  2. Well or ill-conditioned 是指特定的问题而非使用的算法。

显然,将不稳定的算法应用于病态的问题是在自找麻烦。(asking for disaster).

但是,对于求解某个问题而言,一个稳定的算法也会产生差的结果,如果输入数据时病态的。 我们假定f(x)f(x)f(x)表示一个算法,xxx表示数据。 我们可以利用f(x)f(x)f(x)来定义well 和ill-conditioning.

Def 2. 定义xxxxˉ\bar{x}xˉ分别是初始数据和扰动数据, f(x)f(x)f(x)f(xˉ)f(\bar{x})f(xˉ)是对应的解,则有
如果∣x−xˉ∣|x-\bar{x}|xxˉ很小,∣f(x)−f(xˉ)∣|f(x)-f(\bar{x})|f(x)f(xˉ)也很小,则该问题关于数据xxx是well-conditioned.
如果∣x−xˉ∣|x-\bar{x}|xxˉ很小,∣f(x)−f(xˉ)∣|f(x)-f(\bar{x})|f(x)f(xˉ)很大,则该问题关于数据xxx是ill-conditioned. 如下图*

该图片来自Numerical Linear Algebra with Applications Using MATLAB一书

问题对数据的敏感性可以通过定义条件数(condition number)来测量。 条件数越大,则该问题对数据的改变的敏感性越高。

对于一个特定的数据xx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大浪淘沙_scc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值