1 数値安定性の基本概念

数値安定性とは、浮動小数点演算などの有限精度環境で行う計算において、入力誤差や丸め誤差が計算過程で過度に増幅されず、最終的な結果が信頼できる性質を指す。ここでいう「信頼できる」は、厳密解そのものへの一致を保証するというより、誤差がどの程度まで影響しうるかを評価可能である、という意味合いが強い。

数値安定性は、同じ数学的問題でも手法(アルゴリズム)が異なる場合に結果の質が変わることに着目する概念である。目的は、誤差伝播の仕組みを理論的に捉え、評価指標に基づいて選択・設計の指針を与えることにある。具体的には、条件数による問題の難しさと、アルゴリズムが誤差をどれだけ抑えるかを分けて考える枠組みが用いられる。

1.1 数値計算における誤差の種類

1.1.1 丸め誤差(浮動小数点誤差)

丸め誤差は、真値を有限ビットの表現に収める際に生じる量子化誤差である。加減算では相対誤差の観点で挙動が変わり、特に桁落ちが起きると有効桁が減って影響が目立つ。乗除算は桁落ちほど目立たない一方、繰り返し演算により誤差が体系的に蓄積することがある。

浮動小数点では「ある演算は誤差付きで実行される」とモデル化して解析できる。これにより、単発の丸めから最終結果への誤差の増幅度合いを見積もる土台が整う。

1.1.2 打ち切り誤差近似・打切り)

打ち切り誤差は、厳密な式の一部を有限回の計算で打ち切ったり、無限級数・無限次元の表現を有限次元に置き換えたりすることで生じる。テイラー展開反復の停止、離散化(格子の有限化)、多項式近似次数制限などが典型である。

この誤差は「丸め」ではなく「近似そのものの限界」由来であり、アルゴリズムの停止条件や近似次数、分割幅などの設計に依存する。安定性評価では、打ち切りが誤差としてどのように表れ、丸めとどう結合して出力へ影響するかも検討対象となる。

1.1.3 入力誤差とデータ不確かさ

入力誤差は観測・推定・離散化・変換に由来する不確実性である。計測機器の分解能前処理の近似、測定点の離散性、モデル化誤差などが含まれる。

数値安定性では、入力が完全な真値でない場合に計算がどれだけ頑健かを問題にする。難しさの源泉が「問題の条件(入力から解への感度)」にあるのか、「計算手順が誤差を増やす」ことにあるのかを切り分けることが重要になる。

1.2 安定性と関連する概念の整理

1.2.1 条件数と問題の難しさ

条件数は、入力の微小変化が解にどれほど大きく現れうるかを表す量であり、数学的問題そのものの難しさを反映する。大きい条件数は、同じ計算精度でも原理的に出力が揺れやすいことを意味する。

だし、条件数が大きいことは必ずしもアルゴリズムが悪いことを指さない。入力誤差が増幅されやすい問題を、できるだけ誤差増幅を抑える計算手法で扱う必要がある、というのが安定性の議論の入り口となる。

1.2.2 誤差伝播と感度

誤差伝播は、丸め・打ち切り・入力誤差が計算の各段階でどのような形で変換され、最終的に出力へ寄与するかを追跡する考え方である。感度は、その追跡結果の指標として解釈されることが多い。

誤差伝播は、単に「誤差が増える/減る」だけでなく、どの成分が支配的か、符号の相殺が起きるか、どの演算で支配項が発生するかといった構造的な性質も持つ。そのため、安定性評価では誤差の上界(あるいは期待値)を構成し、支配項の特定を行う。

1.2.3 安定性(アルゴリズム特性)と正確さ(結果の品質

安定性はアルゴリズムの特性であり、「どの程度誤差が増幅されやすいか」を手続きに紐づけて評価する。正確さは、実際の計算出力がどれほど真の解に近いか、あるいは観測誤差を含めた意味で妥当か、といった結果品質に関する概念である。

一般に正確さは安定性と条件性の双方に依存する。条件が悪い問題では、安定な手法でも限界が生じる一方、条件が良い問題でも不安定な手法を選ぶと出力が大きく崩れることがある。両者を分離して議論することが、誤った判断を避ける鍵となる。

2 安定性の定義と評価方法

数値安定性は、誤差の解析枠組みと結びつけて定義・評価される。前向き誤差解析は「求めた近似の誤差」を直接上界評価し、後向き誤差解析は「得られた近似が、わずかに擾乱した原問題の厳密解に相当する」という形で評価する。どちらも有用だが、適用する状況や解釈の焦点が異なる。

評価では、スケーリング、演算順序、反復の停止、行列の性質といった要因を通じて誤差が支配項を形成する様子を把握する。実務では、理論評価と計算実験を併用して判定する手順が一般的である。

2.1 前向き誤差解析(誤差の見積もり)

前向き誤差解析は、計算で得られた近似解と真の解の差を評価する方法である。目標は出力の相対誤差または絶対誤差に関する上界(あるいはおおよその大きさ)の提示である。

2.1.1 準最良近似としての評価

「準最良近似」という観点では、真の解に近い範囲で誤差が抑えられているかを評価する。これは最良近似が持つ誤差の限界と比べ、アルゴリズムがその近くまで到達しているかを観る発想である。

実装上は、誤差の形がどのノルム(尺度)で評価されるかが重要になる。適切な測度を選ばないと、理論上は小さな誤差でも実用上は扱いにくい形で現れることがある。

1.相対誤差と絶対誤差の使い分け

相対誤差は真値の大きさに対するズレを測り、絶対誤差は値そのものの差を測る。真値が小さい場合には相対誤差が大きく見えやすく、逆に値が極端に大きいと絶対誤差が相対的に意味を失うことがある。

数値安定性の議論では、どちらが目的に合うかを決める必要がある。たとえば制御や物理量の誤差許容が絶対値で与えられるなら絶対誤差が自然で、相対精度が要求される設定では相対誤差の評価が中心になる。

2.1.2 後向き誤差解析(原問題への戻し)

後向き誤差解析では、得られた近似が「わずかに変更された入力」に対する真の解に一致する、という形で考える。すると、アルゴリズムが「入力に対してどれだけ控えめに影響を与えたか」を評価できる。

この枠組みは安定性と特に相性が良い。近似の誤差が、入力改変の大きさとして解釈できる場合、結果品質は条件数と組み合わさって理解しやすくなる。

2.1.3 近似誤差の上界・下界

誤差の解析では、理論的な上界(これより大きくならない)を示すことが多い。上界は保守的になりがちだが、設計の安全側の指針として有用である。

下界は「これ以上改善できない目安」として役立つ。特に丸めのモデル化や問題の条件を踏まえると、誤差がどの規模で避けがたいかを把握できる。上界・下界を組み合わせると、安定な手法の「改善余地」が明確になる。

2.2 安定性指標と支配項

2.2.1 スケーリングによる誤差影響の変化

スケーリングは、変数や行列を適切な単位系・倍率に変換して数値の振る舞いを整える操作である。目的は、丸め誤差が特定の演算で過大に増えないようにすることにある。

たとえば行列の行や列の大きさに偏りがあると、演算中に大きな数と小さな数が同時に現れ、桁落ちや差のキャンセルが起きやすい。適切なスケール調整は、その状況を緩和する方向に働く。

2.2.2 反復回数と誤差増幅

反復法では、各ステップの誤差が次の更新で再び利用される。したがって、反復回数が増えるほど丸めの蓄積や、条件の悪化による増幅が無視できなくなることがある。

一方で、反復は打ち切り誤差を減らす手段でもあるため、停止条件はトレードオフになる。増幅が支配的になる前に止める設計が重要であり、安定性評価では「どこで支配項が切り替わるか」も見積もり対象となる。

2.2.3 行列や演算の性質(例:直交性)

行列や演算の性質は安定性を大きく左右する。特に直交性や直交に近い性質を持つ変換は、ノルムをあまり増やさず誤差が抑えられる傾向がある。

これは、誤差が「増幅の方向に投影されにくい」ことに対応して解釈できる。直交変換を含む分解は、丸めの影響が出にくい構造を提供し、安定な計算を実現しやすい。

2.3 実務での判定手順

実務では、理論式だけでなく経験的な指標や検証手段を組み合わせて安定性を判断する。理論評価はどの条件で問題が起きやすいかを示し、計算実験はその影響の大きさを確かめる役割を果たす。

2.3.1 アルゴリズム選択の指針

アルゴリズム選択では、同じ結果を得る複数手段のうち、誤差増幅のメカニズムが弱いものを優先する。典型例として、直交変換を含む手法、安定な分解(適切なピボット選択や直交性の維持)、誤差が蓄積しにくい更新則が挙げられる。

また、入力が満たす性質(行列が対称か、正定値か、疎かなど)に応じて最適な手法が変わる。条件の良い特殊構造を活かせる場合は、安定性と計算量の両面で利点が生じる。

2.3.2 典型的な危険パターンの回避

危険パターンには、桁落ちを招く式変形、差のキャンセル、不要な高次近似、停止条件の不適切さなどがある。特に「見かけ上きれいな」数式でも、計算機では差の扱いが不利になる場合があるため注意が必要である。

もう一つの典型は、前処理なしでスケールの異なる量を混ぜてしまう状況である。これにより誤差が局所的に大きくなり、以降の演算に伝播して結果が崩れることがある。

2.3.3 計算機実験による確認

計算機実験は、理論の仮定がどこまで現実に近いかを確かめる手段である。たとえば同じ問題を異なる精度設定や異なる実装方針で解き、出力の揺れの大きさを観察する。

さらに、入力に小さな摂動を加えるテストや、複数規模での挙動を見るスケールテストが有効である。安定な手法は、摂動に対する出力の変化が制御可能な範囲に収まることが多い。

3 代表的な安定な数値手法

この節では、数値安定性の観点から評価されやすい代表的手法を概観する。安定性の要点は、誤差増幅を抑える構造(直交性の保持、適切な分解の採用、スケール管理)を持っているかどうかである。

3.1 線形代数における安定性

3.1.1 QR分解と直交変換の利点

QR分解は、行列を直交行列と上三角行列の積に分ける手法である。直交成分はノルムを保つ性質を持つため、丸め誤差が大きく増幅されにくい。

連立一次方程式の解法や最小二乗問題では、残差の意味がはっきりし、誤差評価とも整合しやすい。加えて、数値的な安定性の観点で選好されることが多い。

3.1.2 LU分解とピボット選択

LU分解は行列を下三角と上三角の積に分解するが、単純な実装では小さいピボットによって誤差が急増することがある。そこでピボット選択を導入し、割り算に現れる倍率の暴走を抑える。

ピボットが適切に選ばれると、誤差の増幅度合いを抑えたまま効率的に計算できる。特に行列が一般の場合には、ピボット規則の設計が安定性の中心になる。

3.部分ピボットの考え方

部分ピボットは、各段階で注目列の範囲における要素の中から、適切に大きいものをピボットとして選ぶ方針である。完全ピボットは自由度が高いが計算コストが増えやすい。

部分ピボットは計算量と安定性のバランスが良いことが多く、実務で広く用いられる。理論的には、どの程度誤差が抑えられるかがピボット戦略に依存して評価される。

3.1.3 線形方程式の解法と誤差

線形方程式 \(Ax=b\) の解法では、誤差は主に分解段階と解の後半(代入)で生じる。さらに、解の安定性は \(A\) の条件性にも左右されるため、安定な分解を使っても限界がある。

誤差の評価では、入力誤差を含めた残差の大きさと、解の変動の大きさの双方を調べることが多い。特に「残差が小さいのに解が大きく変わる」ケースは条件性の影響を示唆するため、解釈が重要になる。

3.2 固有値・特異値計算の安定性

3.2.1 反復法と収束条件

固有値やスペクトル量は一般に反復法で求めることが多く、収束の仕方が誤差の蓄積に直結する。収束が遅い場合や、固有値が近接している場合には、有限精度の下で分離が困難になり、推定の揺れが増える。

安定性の観点では、更新が過度に不安定な方向へ伸びないこと、停止基準が妥当であることが重要となる。誤差推定の指標(残差や内積の変化)を用いて、収束度を慎重に判断する必要がある。

3.2.2 シフト付き手法と安定性

シフト付き手法は、狙う固有値の近傍に計算の焦点を合わせることで収束を改善する。シフトにより反復の性質が変わり、条件が良くなる方向に働くことがある。

ただしシフトが不適切だと、分解過程で数値的な不利が生じる可能性がある。したがって、シフトの選定や、その計算に必要な内部処理(線形方程式の解法など)の安定性もセットで考える必要がある。

3.2.3 特異値分解の頑健性

特異値分解は、固有値問題と比べて頑健になりやすい。これは特異値が行列の直交構造に基づく量であり、数値誤差に対する挙動が比較的扱いやすいことに起因する。

特異値の大小は行列の情報量や低ランク性を反映するため、近似や圧縮の基盤になる。丸め誤差があっても、支配的な特異成分が保たれやすいという意味で安定性が評価されることが多い。

3.3 補間・近似における安定性

3.3.1 多項式補間の誤差と暴れ

多項式補間は、理論上は点を通る関数を一意に定められるが、実装によっては補間値が小さな誤差に対して大きく変わることがある。特に高次数で等間隔点を使うと、端点付近で評価が不利になりやすい。

この「暴れ」は係数の巨大化やキャンセルの増加に関連して現れる。安定性の観点では、点選びや基底の選択、評価方法(どう計算するか)が重要になる。

3.3.2 スプライン補間の安定性

スプライン補間は、区分的に低次数の多項式を連結し、滑らかさ(連続性)を条件として課す手法である。区分化により、単一の高次数多項式に比べて係数の暴走が抑えられやすい。

さらに、局所的な摂動の影響が全体へ広がりにくい性質があり、実務での安定性が評価されやすい。計算も系統的な線形代数処理に落とせるため、安定性の設計がしやすい。

3.3.3 適切な基底選択(数値的に良い形)

同じ補間でも、基底(モノミアル基底、ラグランジュ基底、直交基底など)により数値特性が大きく変わる。直交性に近い基底は、誤差が混ざりにくく評価しやすい。

基底を工夫することで、係数推定の条件が改善される場合がある。数値安定性の観点では、「どの計算形に変換しているか」が結果品質を左右する中心要因となる。

4 安定性を損なう要因と対策

数値安定性は自動的に保証されない。演算順序、式変形、スケーリング不足、停止条件の不適切さなどが、理論上の良さを実装で失わせる原因になる。この節では典型的な要因と対処を整理する。

4.1 演算順序とスケジューリング

4.1.1 異なる評価順による誤差

浮動小数点では結合則が厳密に成り立たないため、同じ数学式でも評価順で誤差が異なる。例えば和の計算で大きい項を先に加えるか小さい項を先に加えるかで、有効桁の消失が変わる。

式変形により見た目が同じでも計算の実体が変わり、誤差支配項が切り替わることがある。そのため、実装では評価順を設計する意識が必要になる。

4.1.2 可能なら再配置・再計算

誤差が蓄積しやすい領域では、途中結果を再正規化したり、別の等価な計算経路へ切り替えたりする戦略がある。これにより、悪化した桁の状態から回復することを狙う。

再計算はコスト増を伴うが、安定性の観点では有効になることがある。特に反復の各段階で量の尺度が崩れている場合、適切な再配置が効く。

4.2 スケーリング・正規化

4.2.1 入力のスケール調整

入力を適切な範囲に収めると、丸め誤差の相対的な影響が均され、キャンセルやオーバーフロー・アンダーフローのリスクが減る。単純な倍率調整でも効果が出る場合が多い。

調整の設計では、計算後に元の物理・意味へ戻せる形で行うことが重要になる。そうしないと、安定性改善の副作用として解の解釈が崩れる可能性がある。

4.2.2 中間量の暴れを抑える工夫

中間量が極端な大きさをとると、その段階での丸めが以降の更新へ強く影響する。そこで、分解の形を変える、正規化を挿入する、あるいは中間量を安全な尺度へ変換する工夫が用いられる。

この方針は、誤差が「増幅される場所」を先に見つけ、その周辺の数値挙動を管理することに相当する。

4.3 具体的対策のパターン

4.3.1 直交化の活用

直交化は、基底や更新方向の相互相関を抑え、数値的な暴走を抑える代表策である。誤差は相関により特定方向へ強く混ざるため、それを抑える効果がある。

具体的には、直交変換を用いる分解、直交性を保つ反復設計、正規化の継続などが挙げられる。安定性が高いアルゴリズムは、多くの場合この種の構造を含む。

4.3.2 安定な分解の選択

問題を解く際、線形方程式でも固有値でも、どの分解を選ぶかが実装の安定性を左右する。一般に、直交に近い変換を含む分解や、ピボット戦略が組み込まれた分解は誤差増幅を抑えやすい。

選択の際は、計算量だけでなく、誤差解析に基づく支配項の見通し、条件性との整合も確認する必要がある。

4.3.3 再正規化・再初期化の考え方

反復や学習的手続きでは、時間とともに数値状態が崩れ、丸め誤差が支配的になることがある。再正規化は尺度の回復であり、再初期化は状態の再構成によって不利な条件を避ける意図がある。

いずれも理論と実装の間を埋める工夫であり、安定性を長期にわたって維持するための実務的手段といえる。

4.4 よくある誤解と注意点

4.4.1 「計算機の精度が高ければ十分」ではない理由

精度の向上は丸め誤差を減らすが、問題の条件が悪い場合や、不安定な計算式を採用している場合には、誤差増幅の仕組みが残る。結果として、桁数を増やしても改善が頭打ちになることがある。

また、停止基準やスケーリングの不備は丸めと独立に誤差を作りうる。単に計算精度を上げるだけでは根本の原因が解消されない場合がある。

4.4.2 条件数と安定性を混同しないために

条件数は問題の感度であり、安定性はアルゴリズムの誤差増幅度合いである。どちらか一方だけ見て判断すると、誤った改善策に進む可能性がある。

例えば条件数が悪いと、安定な手法でも出力の揺れは避けにくい。逆に条件が良いのに不安定な手法を使うと、揺れは手続き由来で拡大する。この切り分けが、適切な選択につながる。

4.4.3 ベンチマーク設計の落とし穴

ベンチマークでは、入力生成の偏りや評価指標の選び方が結果を歪めうる。特に、たまたま都合の良い入力では不安定手法が見かけ上うまく動くことがある。

また、評価が「典型例」だけに偏ると、極端ケースでの破綻を見落とす。安定性の比較では、問題の条件が幅広く変わる状況、摂動の大きさが変わる状況を含めた設計が望ましい。