条件数計算機 - 行列の条件と安定性
2×2 または 3×3 行列の条件数を 1ノルム、∞ノルム、Frobenius ノルムで計算します。連立一次方程式の数値安定性をすばやく確認できます。
行列サイズとノルムを選び、成分を入力すると、計算機が κ(A) = ‖A‖ · ‖A⁻¹‖ を返し、行列がどれだけ条件良く定義されているかを示します。
条件数計算機 - 行列の条件と安定性
2×2 または 3×3 行列の条件数を 1ノルム、∞ノルム、Frobenius ノルムで計算します。連立一次方程式の数値安定性をすばやく確認できます。
条件数計算機について
可逆行列 A の条件数は κ(A) = ‖A‖ · ‖A⁻¹‖ と定義され、ここで ‖·‖ は任意の整合的な行列ノルムを表します。これは、連立一次方程式 A·x = b の解 x における相対誤差が、右辺 b の相対誤差によってどの程度増幅されるかを測る指標です。直感的には、条件数が小さい行列は条件が良く、入力の小さな誤差が出力の小さな誤差にとどまります。条件数が大きい行列は条件が悪く、データに含まれるごくわずかな丸め誤差でも、非常に不正確な解を生むことがあります。
この計算機は 2 × 2 と 3 × 3 の行列、および最も広く使われる 3 種類の行列ノルムに対応しています。1ノルムは絶対値の列和の最大値で、‖A‖₁ = max_j Σᵢ |aᵢⱼ| です。∞ノルムは絶対値の行和の最大値で、‖A‖∞ = max_i Σⱼ |aᵢⱼ| です。Frobenius ノルムは全成分の二乗和の平方根で、‖A‖_F = √(Σᵢⱼ |aᵢⱼ|²) となり、ユークリッドベクトルノルムの行列版に相当します。2 × 2 行列では、逆行列は解析的に A⁻¹ = (1/det A) · [[d, −b], [−c, a]] と計算されます。3 × 3 行列では、余因子(随伴行列)公式を用います。
条件数は数値線形代数の中心的な概念です。コンピュータで LU 分解やガウス消去法を用いて連立一次方程式を解くと、計算された解の相対誤差はおおむね κ(A) · ε で上から抑えられます。ここで ε は機械精度(IEEE-754 倍精度では約 10⁻¹⁶)です。したがって、条件数が 10⁶ であれば、丸め誤差だけで最大 6 桁の精度を失う可能性があります。目安として、κ < 100 の行列は条件が良い、100 から 1000 の間は中程度、10³ を超えるものは条件が悪く、注意が必要です。
重要な注意点もあります。条件数は選んだノルムに依存するため、異なるノルムで得た値は直接比較できませんが、通常は小さな定数倍の範囲に収まります。特異値に基づく 2 ノルム(スペクトルノルム)の条件数は理論的には最も自然ですが、計算コストが高いためここでは提供していません。特異行列は行列式が正確にゼロで逆行列を持たず、条件数は無限大です。計算機はこの場合を明示的に検出します。
小さな連立一次方程式が数値的に安全に反転できるか確認したいとき、初歩的な数値解析を教えるとき、あるいはより大きなシミュレーションや機械学習パイプラインで方程式を解く前の簡単な確認として、このツールを使ってください。
計算例
条件が良いものから悪いものまで、いくつかの代表的な行列を示します。
| 行列(2×2 または 3×3) | 条件数 | 備考 |
|---|---|---|
| [[1, 0], [0, 1]], 1-norm | κ = 1 | 単位行列は完全に条件良好です。どの標準ノルムでも条件数は 1 になります。 |
| [[2, 1], [1, 3]], Frobenius | κ ≈ 3.0 | 小さな条件数を持つ対称正定値行列です。これを含む連立方程式は正確に解きやすいです。 |
| [[1, 1], [1, 1.0001]], infinity-norm | κ ≈ 40004 | ほぼ特異な行列です。(2,2) 要素にわずかな摂動が入るだけで、解は大きく変わります。 |
| [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 1-norm | κ ≈ 380 | 中程度に条件付けられた 3×3 行列です。単精度浮動小数点では多少の精度低下が見込まれます。 |
条件数計算機の使い方
- 2 × 2 か 3 × 3 か、行列サイズを選びます。
- 使用する行列ノルムを 1ノルム、∞ノルム、Frobenius ノルムから選びます。
- 各成分を対応する入力欄に入力します。
- [条件数を計算]をクリックします。結果パネルには κ(A)、行列ノルム、逆行列ノルム、行列式、そして平易な解釈が表示されます。
- [リセット]をクリックすると、すべての入力を消去して新しい行列を始められます。
条件数 FAQ
条件数は何を教えてくれますか?
連立一次方程式 A·x = b において、右辺 b の相対誤差が解 x でどのくらい増幅されうるかの上限を示します。条件数が 10^k なら、丸め誤差だけで最大 k 桁の精度を失う可能性があります。
「良い」条件数とは何ですか?
一般に 100 未満は条件が良く、100〜1000 は中程度、1000 超は条件が悪いとされます。しきい値は、計算精度と最終結果に必要な精度によって変わります。
どのノルムを使えばよいですか?
1ノルムと∞ノルムは計算が安く、得られる情報もよく似ています。Frobenius ノルムも簡単に計算でき、ユークリッドベクトルノルムの行列版です。スペクトル(2ノルム)条件数は理論的には最も自然ですが、より高コストで、ここでは提供していません。
なぜ行列が特異と表示されるのですか?
行列式がゼロ(または数値的に区別できないほど小さく、10⁻¹⁰ 未満)なら、その行列は特異です。特異行列は逆行列を持たないため条件数は無限大となり、A·x = b は解がないか、無限個の解を持ちます。
条件数は右辺 b に依存しますか?
いいえ。条件数は行列 A のみに依存します。選んだ b とは無関係に、b の相対誤差が最悪の場合どれだけ増幅されるかの上限を与えます。
条件数は 1 未満になりますか?
なりません。任意の整合的な行列ノルムについて、κ(A) = ‖A‖ · ‖A⁻¹‖ ≥ ‖A · A⁻¹‖ = ‖I‖ ≥ 1 です。最小値 1 は直交行列(2ノルムではユニタリ行列)で達成されます。