第1章: 数値計算とは
What is Numerical Computation?
数値計算とは何か
数値計算(numerical computation)とは、数学的な問題をコンピュータを使って数値的に解く方法です。
数学では、方程式の解を公式で表したり、積分を記号的に計算したりすることがあります。しかし、現実の多くの問題では、そのような「きれいな答え」が得られないことがほとんどです。数値計算は、このような問題に対して「近似的な数値の答え」を求める方法を提供します。
例:2次方程式 vs 5次方程式
2次方程式 $ax^2 + bx + c = 0$ の解は、解の公式で求められます:
$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$しかし、5次以上の方程式には一般的な解の公式が存在しません(アーベル・ルフィニの定理)。このような方程式を解くには、数値計算が必要です。
解析解と数値解
例:$x^2 = 2$ を解く
解析解(厳密解):$x = \sqrt{2}$ ← 数式で表された正確な解
数値解(近似解):$x \approx 1.41421356237...$ ← 具体的な数値
解析解は正確ですが、実際の計算では具体的な数値が必要な場面が多くあります。数値解析とは、このような数値解を効率よく求めるための学問です。
| 比較項目 | 解析解 | 数値解 |
|---|---|---|
| 形式 | 数式・記号 | 具体的な数値 |
| 精度 | 厳密 | 近似(誤差あり) |
| 適用範囲 | 限定的 | 広い |
| 利点 | 一般的な性質がわかる | 実用的な値が得られる |
近似の考え方
数値計算の核心は「近似」です。完璧な答えを求めるのではなく、「十分に良い答え」を効率的に求めます。
近似が必要な理由
- 解析的に解けない問題が多い
- コンピュータは有限の桁数しか扱えない
- 実用上は一定の精度があれば十分
例:円周率の近似
円周率 $\pi = 3.14159265358979...$ は無限に続く数です。しかし、実用的には:
- 小学校:$\pi \approx 3.14$
- 工学計算:$\pi \approx 3.14159$
- 精密計算:$\pi \approx 3.141592653589793$(倍精度)
用途に応じた精度で近似値を使います。
数値計算の応用例
方程式の求解
$f(x) = 0$ となる $x$ を求める。例:$x^5 - x - 1 = 0$ の解
数値積分
$\displaystyle\int_a^b f(x)\,dx$ の値を求める。例:$\displaystyle\int_0^1 e^{-x^2}\,dx$
微分方程式
天気予報、流体シミュレーションなど
行列計算
連立方程式、データ分析、機械学習
アルゴリズムの重要性
数値計算では、「どのような手順で計算するか」が非常に重要です。同じ問題でも、アルゴリズムによって:
- 速度が大きく変わる
- 精度が異なる
- 安定性(誤差の蓄積)が違う
例:$\sqrt{2}$ を2つのアルゴリズムで求める
$x^2 = 2$ の正の解($\sqrt{2} = 1.41421356237...$)を、遅いアルゴリズムと速いアルゴリズムで求めて比較します。
方法1:二分法(遅い)
$1^2 = 1 < 2$、$2^2 = 4 > 2$ なので、解は区間 $[1, 2]$ の中にあります。区間の中点を調べて、解がある側の半分に絞り込む操作を繰り返します。
| ステップ | 近似値 | 誤差 |
|---|---|---|
| 1 | 1.5 | $8.6 \times 10^{-2}$ |
| 5 | 1.40625 | $8.0 \times 10^{-3}$ |
| 10 | 1.4150390625 | $8.3 \times 10^{-4}$ |
10ステップでも誤差は $10^{-4}$ 程度。1ステップごとに精度が約1ビットずつ向上する。
方法2:ニュートン法(速い)
初期値 $x_0 = 1$ として、以下の式を繰り返します:
$$x_{n+1} = \frac{1}{2}\left(x_n + \frac{2}{x_n}\right)$$| ステップ | 近似値 | 誤差 |
|---|---|---|
| 1 | 1.5 | $8.6 \times 10^{-2}$ |
| 2 | 1.41666... | $2.5 \times 10^{-3}$ |
| 3 | 1.41421568... | $2.1 \times 10^{-6}$ |
| 4 | 1.41421356237... | $1.6 \times 10^{-12}$ |
わずか4ステップで誤差 $10^{-12}$。1ステップごとに正しい桁数が約2倍に増える。
同じ問題でも、アルゴリズムの選び方で収束速度がまったく異なります。
まとめ
- 数値計算は、数学的問題を数値的に解く方法
- 解析解は数式、数値解は具体的な数値
- 多くの問題は解析的に解けないため、近似が必要
- アルゴリズムの選択が精度と速度に影響する
- 数値計算は科学・工学の様々な分野で活用されている