数值稳定性
编辑在数值分析的数学子领域中,数值稳定性是数值算法的一个普遍的理想属性。稳定性的准确定义取决于背景。一个是数值线性代数,另一个是通过离散逼近解决常数和偏微分方程的算法。在数值线性代数中,主要关注的是由接近各种奇异点引起的不稳定,如非常小的或几乎碰撞的特征值。另一方面,在微分方程的数值算法中,关注的是舍入误差的增长和/或初始数据的小波动,这可能导致最终答案与精确解之间的巨大偏差。一些数值算法可能会抑制输入数据中的小波动(错误);另一些算法可能会放大这种错误。可以证明不放大近似误差的计算被称为数值稳定。数值分析的常见任务之一是试图选择稳健的算法--也就是说,不会因为输入数据的极小变化而产生截然不同的结果。一个相反的现象是不稳定性。通常情况下,一个算法涉及一种近似方法,在某些情况下,人们可以证明该算法将在某些极限中接近正确的解决方案(当使用实际的实数,而不是浮点数时)。即使在这种情况下,也不能保证它能收敛到正确的解,因为浮点舍入或截断误差会被放大,而不是被阻尼,导致与精确解的偏差呈指数级增长。
数值线性代数中的稳定性
编辑稳定性的概念有不同的形式化方式。以下是数值线性代数中经常使用的前向、后向和混合稳定性的定义。将数字算法要解决的问题看作是一个将数据x映射到解决方案y的函数f。算法的结果,通常会偏离真正的解y。误差的主要原因是舍入误差和截断误差。算法的前向误差是结果和解决方案之间的差异;前向和后向误差通过条件数联系在一起:前向误差的大小最多与条件数乘以后向误差的大小一样大。在许多情况下,更自然的是考虑相对误差如果对于所有的输入x来说,后向误差都很小,那么这个算法就被称为后向稳定。当然,小是一个相对术语,其定义取决于上下文。通常情况下,我们希望误差与单位舍入相同,或者只比单位舍入大几个数量级。
数值稳定性的通常定义使用了一个更普遍的概念,叫做混合稳定性,它结合了前向误差和后向误差。在这个意义上,如果一个算法近似地解决了一个附近的问题,即如果存在一个Δx,使得Δx很小,并且f(x+Δx)-y*很小,那么这个算法就是稳定的。因此,一个后向稳定的算法总是稳定的。如果一个算法的前向误差除以问题的条件数是小的,那么这个算法就是前向稳定的。这意味着,如果一个算法的前向误差的大小与某个后向稳定算法相似,那么这个算法就是前向稳定的。
数值微分方程中的稳定性
编辑上述定义在截断误差不重要的情况下尤为重要。在其他情况下,例如在解决微分方程时,会使用不同的数值稳定性定义。在数值常微分方程中,存在各种数值稳定性的概念,例如A-稳定性。它们与动态系统意义上的一些稳定性概念有关,通常是Lyapunov稳定性。在解决一个刚性方程时,使用一个稳定的方法是很重要的。然而,另一个定义被用于数值偏微分方程。如果在固定的时间内,数值解的总变化随着步长归零而保持有界,那么解决线性演化偏微分方程的算法就是稳定的。拉克斯等价定理指出,如果一个算法是一致的和稳定的(在这个意义上),它就会收敛。稳定性有时是通过包括数值扩散来实现的。数值扩散是一个数学术语,它确保计算中的舍入和其他错误得到分散,不会加起来导致计算爆炸。冯-诺伊曼稳定性分析是一个常用的稳定程序。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/168510/