線形代数 · 第4回 · 動画3 · インタラクティブ教材
| 公式 | 名称 | 説明 |
|---|---|---|
| 二乗の和 | 消去法の総コストを与える正確な公式 | |
| ガウスの消去法の計算量 | 前進消去のおおよそのフロップ数 | |
| 三角行列の求解の計算量 | 前進代入()+ 後退代入() | |
| 右辺が 個のときの LU 分解 | 分解は一度、解くのは 回 |
各ステップのコスト を積み重ねると の下の面積になるので、合計はおよそ です。
消去の各ステップは、縮んでいく作業中のブロックだけを扱うので、そのコストは のように減っていきます。
をかけて一度だけ分解すれば、 回の求解はそれぞれ で済みます。毎回消去をやり直す場合と比べて、どれだけ得になるでしょうか。
💡 では二つの方針のコストはほぼ同じです(分解することが、そのまま消去法だからです)。しかし右辺が一つ増えるごとに LU 分解が有利になり、その効果は に向かって大きくなっていきます。だからこそ数値計算ライブラリは、分解を一度だけ行い、どの右辺にも と を使い回すのです。
問1
の行列があります。ガウスの消去法(前進消去のみ)のフロップ数はおよそいくつですか。
✅ 正解です! ガウスの消去法にはおよそ ⅓n³ フロップかかります。これは二乗の和 n² + (n−1)² + ⋯ + 1² から来ています。
❌ 惜しい! 思い出しましょう:総コストは二乗の和 1² + 2² + ⋯ + n² で、これはおよそ ⅓n³ に等しくなります。
解答:
ガウスの消去法のコストは、およそ フロップです。
のとき:
正確な和は で、近似値 との差は 2% 以内です。
問2
正しいか誤りか:LU 分解を保存してあれば、右辺が1つ増えるごとに、解くのにおよそ フロップかかる。
✅ 正解です! 右辺が1つ増えるごとのコストは ⅓n³ ではなく、およそ n²(三角行列の求解2回)にすぎません。これこそが LU 分解の利点です!
❌ 惜しい! L と U がすでに計算済みなら、残る仕事は何かを考えましょう。必要なのは前進代入と後退代入だけです。
解答:誤り
と を保存してあれば、どの右辺も三角行列の求解2回だけで解けます。
右辺ひとつあたりの合計コスト です。 ではありません。
これこそが LU 分解の要点です。高くつく の仕事は、分解のときに一度だけ行います。そのあとの求解は、どれも だけで済み、はるかに安上がりです。
問3
の連立方程式に、異なる右辺が100個あります。素朴なガウスの消去法を100回別々に実行する場合と比べて、LU 分解ではおよそ何倍速くなりますか。
ヒント: 素朴なやり方のコスト 。LU 分解のコスト 。
✅ 正解です! LU 分解は、99回の余分な消去を省くことで、約77倍の節約になります。右辺を増やしていくと、速度向上は n/3 = 333 に近づきます。
❌ 惜しい! 両方のコストを実際に計算してみましょう:素朴なやり方 = 100 × ⅓ × 10⁹、LU 分解 = ⅓ × 10⁹ + 100 × 10⁶ を求めてから、割り算します。
解答:
、 のとき:
素朴なやり方:
LU 分解を使うやり方:
速度向上:
答えは同じで、仕事量は 1/77 です!
なぜ333倍ではないのでしょうか。LU 分解を使うやり方でも、最初の分解に ⅓n³ かかるからです。速度向上が に近づくのは、 のときだけです。
問4
行列では、消去法はステップ と進みます。ステップ で、まだ作業が残っている小行列のサイズは です。2番目の消去のステップ()のコストはいくつですか。
✅ 正解です! ステップ k=0 で1行目と1列目の消去が終わると、作業する領域は 4×4 になり、コストは (5−1)² = 16 フロップです。
❌ 惜しい! ステップ k=1 では、すでに1行と1列の消去が終わっています。まだ作業が残っている小行列のサイズは (n−k) = (5−1) = 4 です。
解答:
行列()の各ステップのコスト:
| ステップ | 作業中のサイズ | コスト |
|---|---|---|
| (1番目) | ||
| (2番目) | ||
| (3番目) | ||
| (4番目) | ||
| (5番目) |
ステップ では1行目と1列目の消去が終わっていて、まだ作業が残っている小行列は です。コストは フロップです。
検算:合計 ✓
正解数:0 / 4