条件数

提供: testwiki
ナビゲーションに移動 検索に移動

条件数(じょうけんすう、テンプレート:Lang-en-short)は、問題のコンピュータでの数値解析しやすさの尺度であり、その問題がどれだけ数値解析に適しているかを表す。条件数が小さい問題は「良条件 (well-conditioned)」であり、条件数が大きい問題は「悪条件 (ill-conditioned)」である。

行列の条件数

たとえば Ax=b という方程式の条件数は、x を近似的に求める際の不正確さの上限を与える。なお、これには丸め誤差の影響は考慮しない。条件数は行列の属性であって、計算に使うシステムの浮動小数点数の精度やアルゴリズムとは無関係である。この場合(非常に大まかに言って)、b の変化によって解である x が変化する率が条件数である。従って、条件数が大きければ b の小さな誤差も x の大きな誤差となって現れる。一方、条件数が小さければ、x における誤差は b における誤差より大きくなることはない。

より正確に条件数を定義すると、x の相対誤差を b の相対誤差で割った最大比率である。

b の誤差を e とする。すると解 A1b の誤差は A1e となる。解の相対誤差と b の相対誤差の比率は、次のようになる。

テンプレート:Indent

これは容易に次のように書き換えられる。

テンプレート:Indent

be がゼロでないとき)その最大値は明らかに2つの作用素ノルムの積となる。

テンプレート:Indent

同様の定義は、任意の行列ノルムに当てはまる。この数は数値線型代数学にはよく使われるので、行列の条件数 (condition number of a matrix) と名づけられている。

もちろん、この定義はノルムの選択に依存している。

  • l2 ノルムなら、
    κ(A)=σmax(A)σmin(A) であり、ここで σmax(A)A の最大特異値σmin(A) は最小特異値である。したがって、
    • A正規なら
      κ(A)=|λmax(A)λmin(A)|λmax(A), λmin(A) はそれぞれ A の最大および最小固有値
    • Aユニタリなら
      κ(A)=1
  • l ノルムで、A三角行列で特異値を持たない(すなわち、aii0i)なら
    κ(A)maxi(|aii|)mini(|aii|)

それ以外の条件数

特異値分解の条件数、多項式の解を求める際の条件数、固有値の条件数など、様々な問題について条件数を定義できる。

一般に数値問題が良設定なら、それを関数 f で表すことができ、m-タプルの実数 x から n-タプルの実数 f(x) への写像となる。

するとその条件数は、問題の定義域における解の相対誤差とデータの相対誤差の比の最大値と定義される。

テンプレート:Indent

ここで ϵ は問題のデータの変化における何らかの適度に小さい値である。

f が可微分であれば、次のように近似できる。

テンプレート:Indent

関連項目

外部リンク

テンプレート:Linear algebra