数値解析という数学分野において、数値安定性は数値アルゴリズムにとって一般的に望ましい特性である。安定性の正確な定義は文脈によって異なり、重要な文脈の一つは数値線形代数であり、もう一つは離散近似による常微分方程式および偏微分方程式の解法アルゴリズムである。
数値線形代数においては、非常に小さい固有値やほぼ衝突する固有値など、様々な種類の特異点への近接によって引き起こされる不安定性が主な懸念事項となる。一方、微分方程式の数値アルゴリズムにおいては、丸め誤差の増大や初期データの小さな変動が、最終解と厳密解との大きな乖離を引き起こす可能性があることが懸念事項となる。
数値アルゴリズムの中には、入力データの小さな変動(誤差)を抑制するものもあれば、そのような誤差を増幅させるものもある。近似誤差を増幅させないことが証明できる計算は、数値的に安定していると言われる。数値解析における一般的な課題の一つは、ロバストな アルゴリズム、つまり入力データのわずかな変化に対して大きく異なる結果を生み出さないアルゴリズムを選択することである。
反対の現象は不安定性です。通常、アルゴリズムは近似法を含み、場合によっては、アルゴリズムがある極限で正しい解に近づくことを証明できます(浮動小数点数ではなく実際の実数を使用する場合)。この場合でも、浮動小数点数の丸め誤差や切り捨て誤差が減衰する代わりに拡大する可能性があるため、正しい解に収束するという保証はありません。これにより、正確な解からのずれが指数関数的に増大します。[ 1 ]
安定性の概念を形式化する方法はいくつかあります。数値線形代数では、前方安定性、後方安定性、混合安定性について、以下の定義がよく用いられます。

数値アルゴリズムで解決すべき問題を、データx を解yにマッピングする関数fとして考えます。アルゴリズムの結果、例えばy * は、通常、「真の」解yからずれます。主な誤差の原因は、丸め誤差と切り捨て誤差です。アルゴリズムの順方向誤差は、結果と「真の」解との差です。この場合、 Δ y = y * − yとなります。逆方向誤差は、 f ( x + Δ x ) = y *となる最小のΔ xです。言い換えれば、逆方向誤差は、アルゴリズムが実際に解決した問題を示します。順方向誤差と逆方向誤差は条件数によって関連付けられています。順方向誤差の大きさは、条件数に逆方向誤差の大きさを掛けた値以下です。
多くの場合、相対誤差を考慮する方が自然である。絶対誤差Δ xの代わりに。
アルゴリズムは、すべての入力xに対して後方誤差が小さい場合に後方安定であると言われます。もちろん、「小さい」というのは相対的な用語であり、その定義は文脈によって異なります。多くの場合、誤差は単位丸め誤差と同じオーダー、あるいは数桁大きい程度であることが望まれます。

数値安定性の一般的な定義では、前方誤差と後方誤差を組み合わせた混合安定性と呼ばれるより一般的な概念が用いられます。アルゴリズムがこの意味で安定であるのは、近傍の問題を近似的に解く場合、すなわち、 Δxが小さく、f ( x + Δx ) - y *も小さいようなΔxが存在する場合です。したがって、後方安定なアルゴリズムは常に安定です。
アルゴリズムの前方誤差を問題の条件数で割った値が小さい場合、そのアルゴリズムは前方安定である。つまり、後方安定なアルゴリズムと同程度の前方誤差を持つアルゴリズムは、前方安定であると言える。
上記の定義は、打ち切り誤差が重要でない状況において特に有効です。その他の状況、例えば微分方程式を解く場合などでは、数値安定性の異なる定義が用いられます。
数値常微分方程式においては、 A安定性など、様々な数値安定性の概念が存在する。これらは、力学系における安定性の概念、特にリアプノフ安定性と関連していることが多い。硬い方程式を解く際には、安定した解法を用いることが重要である。
数値偏微分方程式では、別の定義が用いられます。線形発展型偏微分方程式を解くアルゴリズムは、ステップサイズがゼロに近づくにつれて、固定時間における数値解の総変動が有界である場合に安定です。Lax等価定理は、アルゴリズムが一貫性があり安定している場合(この意味で)に収束すると述べています。安定性は、数値拡散を導入することによって達成されることがあります。数値拡散とは、計算における丸め誤差やその他の誤差が分散され、加算されて計算が「爆発」しないようにする数学用語です。フォン・ノイマン安定性解析は、線形偏微分方程式に適用される有限差分スキームの安定性解析によく用いられる手法です。これらの結果は、線形方程式には存在しない多くの特性によって安定性の一般的で一貫性のある定義が複雑になる非線形偏微分方程式には当てはまりません。
2の平方根(約1.41421)を計算することは、適切に定式化された問題です。多くのアルゴリズムは、初期近似値x 0から始めてこの問題を解決します。例えば、x 0 = 1.4 としてから、改良された推定値x 1、x 2などを計算します。そのような方法の 1 つは有名なバビロニア法で、x k +1 = ( x k + 2/ x k )/2 で与えられます。別の方法、「方法 X」は、 x k +1 = ( x k 2 − 2) 2 + x kで与えられます。[注 1 ]各スキームのいくつかの反復が、初期推定値x 0 = 1.4 およびx 0 = 1.42 で、以下の表の形式で計算されています。
バビロニア法は初期推定値に関わらず速やかに収束するのに対し、方法Xは初期推定値x₀ = 1.4では極めてゆっくりと収束し、初期推定値x₀ =1.42では発散することがわかります。したがって、バビロニア法は数値的に安定しているのに対し、方法Xは数値的に不安定です。
数値の安定性は、機械が保持する有効桁数によって影響を受けます。上位4桁の10進数のみを保持する機械を使用する場合、有効桁数の減少の良い例として、次の2つの等価関数が挙げられます。
上記の2つの結果を比較すると、有意性の喪失(ここでは、近傍の数への近似値の減算による壊滅的な相殺によって引き起こされる)が明らかである。そして(減算は正確に計算されるにもかかわらず)は、以下に示すように、両方の関数が等価であるにもかかわらず、結果に大きな影響を与えます。
無限精度で計算された目的の値は 11.174755... [注 2 ]です。