高校数学 数学B 数値計算とコンピュータ
1. 数値計算とは
数値計算とは、数式の厳密解ではなく、近似値で答えを求める計算方法のこと。
コンピュータは有限の桁数しか扱えないため、近似計算が基本となる。
(1) 近似値と誤差
- 近似値:正しい値に近い値
-
絶対誤差:
\[
| \text{真値} - \text{近似値} |
\]
-
相対誤差:
\[
\frac{| \text{真値} - \text{近似値} |}{|\text{真値}|}
\]
(2) 切り捨て・四捨五入
- 表示桁数をそろえるときに使用。
- コンピュータ内部では丸め誤差が蓄積することがある。
2. 有効数字
測定や計算の結果を「どこまで信用できるか」を表す指標。
(1) 有効数字の数え方
- 0 で始まらない最初の数字から、有効とみなされる。
- 例:\(0.00452\) なら有効数字は 3 桁。
(2) 四則演算と有効数字
- 乗除:有効数字の少ない方に合わせる
- 加減:小数点以下の桁に合わせる
(3) 誤差伝播
有効桁が少ない数字を含むと、計算結果も精度が下がる。
3. 逐次計算(反復法)の基礎
反復計算(iteration)は、コンピュータ向きの計算手法で、近似値を徐々に更新して
真の値に近づける方法。
(1) 代表例:ニュートン法
方程式 \(f(x)=0\) の解を求めたいとき、初期値 \(x_0\) から
\[
x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}
\]
を繰り返して近似解を求める。
(2) 反復法がうまくいく条件
4. 補間と近似
(1) 補間の考え方
既知のデータ点の間を推測する手法。典型例は「線形補間」。
(2) 線形補間
点 \((x_1, y_1), (x_2, y_2)\) の間の点 \((x, y)\) は
\[
y = y_1 + \frac{y_2 - y_1}{x_2 - x_1}(x - x_1)
\]
(3) 近似計算(関数値の推定)
グラフや表から読み取るときなどに利用される。
5. 数値積分(数値的な面積の求め方)
曲線と x 軸に囲まれた面積を近似的に求める方法。
(1) 台形公式
関数 \(f(x)\) を区間 \([a, b]\) で計算するとき
\[
\int_a^b f(x)\,dx \approx
\frac{b-a}{2}\left(f(a)+f(b)\right)
\]
(2) 区分求積法
区間を細かく分割し、長方形の面積を足し合わせて近似:
\[
\int_a^b f(x)\,dx \approx
\sum_{k=1}^{n} f(x_k)\Delta x
\]
6. コンピュータと誤差
(1) 丸め誤差
計算途中の値が桁数制限で切り捨て/四捨五入される誤差。
(2) 打ち切り誤差
無限級数や反復計算を有限回で打ち切ることで発生する誤差。
(3) 誤差の蓄積
- 小さな誤差が計算を繰り返すほど増えていくことがある。
- 数値計算の安定性・精度に重要。
7. アルゴリズムの考え方
(1) アルゴリズムとは
問題を解くための手順のこと。
(2) 擬似コード(pseudocode)
アルゴリズムをコンピュータ語風に表したもの。
(3) 処理の流れ図(フローチャート)
代表的な図形:
- 開始・終了:楕円
- 処理:長方形
- 判断:ひし形
- 入力・出力:平行四辺形
8. コンピュータによる数値処理
(1) 表計算ソフトによる数値処理
- 関数の計算(例:SQRT、LOG)
- グラフ化
- 反復処理の自動計算
(2) プログラミングによる数値計算
Python などの言語で行列計算・数値積分・探索などを行える。
(3) ワークシート関数とアルゴリズムの関係
- 表計算ソフトは裏で反復・条件分岐を自動で行っている。
- 計算の仕組みを理解することで、誤差や動作を推測できる。
9. 数値計算とコンピュータでよく出る問題
- 四捨五入・有効数字の計算
- 誤差(絶対誤差・相対誤差)の問題
- 線形補間・表からの読み取り
- 台形公式による近似計算
- 反復法(特にニュートン法)の理解
- フローチャートの読み取り
- 簡単なアルゴリズムの理解(最大値検索など)