数値計算法:ステップごとの解答つき練習問題

図、ヒント、詳しい解答つきの無料の数値計算法練習問題。毎回新しい数値で、3 つのレベル:方程式の解法と補間, 台形公式とシンプソンの公式, オイラー法、ホイン法、ルンゲ–クッタ法。

無料の練習問題やさしい
xyx₀ = 0

f(x) = e−x − x に、初期値 x₀ = 0 でニュートン–ラフソン法を適用してください。x2 を求めてください。

f(x) = e−x − xf′(x) = −e−x − 1x₀ = 0
次の問題 →
数値計算法を無料で練習今すぐ数値計算法を練習毎日 5 問まで無料。カード登録は不要です。

練習する内容

  1. やさしい方程式の解法と補間
  2. ふつう台形公式とシンプソンの公式
  3. むずかしいオイラー法、ホイン法、ルンゲ–クッタ法

数値計算法の問題の解き方

  1. 方程式の解では:二分法なら符号の変化を確かめ、ニュートン法なら f と f′ を計算し、反復値の表では有効数字を 6 桁以上保ちましょう。
  2. 表の値では:隣り合う 2 点の間で線形補間しましょう。
  3. 積分では:h = (b − a)/n を求め、すべての節点で f を並べ、重み(台形公式は 1, 2, …, 2, 1、n が偶数のシンプソンの公式は 1, 4, 2, …, 4, 1)を適用して、h/2 または h/3 を掛けます。
  4. 常微分方程式では:t₀ から yₙ₊₁ = yₙ + h·f(tₙ, yₙ)(オイラー法)または平均した傾き(ホイン法)で進み、1 ステップにつき 1 行で、求められた t に達するまで続けます。

よくある間違い

  • 二分法で区間の誤った半分を残す、またはステップ数を数え間違える。
  • ニュートン–ラフソン法で、x − f/f′ の代わりに x − f′/f と書いてしまう。
  • 台形公式で内側の節点の重みを 1 にする、またはシンプソンの公式を奇数個の短冊で使ってしまう。
  • 反復値を早く丸めすぎる。
  • 最終時刻に達するまでのオイラー法のステップを、1 回多く、または少なくしてしまう。

重要な公式

二分法
c = (a + b)/2, width after n steps (b − a)/2ⁿ
ニュートン–ラフソン法
xn+1 = xₙ − f(xₙ)/f′(xₙ)
線形補間
y = y₁ + (y₂ − y₁)(x − x₁)/(x₂ − x₁)
台形公式
T = (h/2)[f₀ + 2f₁ + … + 2fn−1 + fₙ], h = (b − a)/n
シンプソンの公式(n は偶数)
S = (h/3)[f₀ + 4f₁ + 2f₂ + … + 4fn−1 + fₙ]
台形公式の誤差評価
|E| ≤ (b − a)h²M/12, M = max|f″|
オイラー
yn+1 = yₙ + h·f(tₙ, yₙ)
ホイン法
yn+1 = yₙ + (h/2)(k₁ + k₂), k₂ = f(tₙ + h, yₙ + hk₁)
RK4
yn+1 = yₙ + (h/6)(k₁ + 2k₂ + 2k₃ + k₄)

数値計算法をゼロから学ぶ

事前に学ぶこと: 微分, 積分, 微分方程式

1なぜ数値計算法か、そして二分法

多くの方程式や積分には、答えの公式がありません:x = cos x、∫e−x²dx、あるいはほとんどの微分方程式などです。数値計算法は、必要な精度の答えを、ステップごとに計算します。

二分法は、f の符号が変わる区間 [a, b] で f(x) = 0 の根を見つけます。中点 c = (a + b)/2 を取り、符号がなお変わる側の半分を残します。

例:[1, 2] 上の f(x) = x² − 2。c₁ = 1.5 では f = 0.25 > 0 なので [1, 1.5] を残します。c₂ = 1.25 では f = −0.4375 < 0 なので [1.25, 1.5] を残します。次に c₃ = 1.375 です。

各ステップで区間は半分になるので、n ステップ後の幅は (b − a)/2ⁿ です。二分法は遅いですが、符号の変化さえあれば必ず働きます。

セルフチェック 二分法が長さ 1 の区間から始まります。10 ステップ後の区間の幅はいくらですか?
  1. 1/100
  2. 1/1024
  3. 1/10
  4. 1/20

答え: 1/1024. 毎回半分になります:1/2¹⁰ = 1/1024 ≈ 0.001。10 や 20 で割るのは、半分にすることを足し算のように扱っています。

2ニュートン–ラフソン法

ニュートン–ラフソン法は、接線を x 軸まで辿り、その交点を次の推定値とします:

xn+1 = xₙ − f(xₙ)/f′(xₙ)
xx₀ = 2x₁ = 1.5√2f(x) = x² − 2

f(x) = x² − 2、f′(x) = 2x、x₀ = 2 のとき:x₁ = 2 − 2/4 = 1.5、x₂ = 1.5 − 0.25/3 = 1.416667、x₃ = 1.414216。根は √2 = 1.414214 です。

根の近くでは、ニュートン法は 1 ステップごとに正しい桁数がおよそ 2 倍になります。f′(xₙ) が 0 に近いときや、出発点が根から遠いときは、失敗することがあります。

各反復値で少なくとも 6 桁を保ちましょう。早く丸めると、方法が改善しなくなります。

セルフチェック x₀ = 2 から出発する f(x) = x² − 5 のニュートン法の 1 ステップは…
  1. 1.75
  2. 2.25
  3. 2.2
  4. 2.5

答え: 2.25. f(2) = −1、f′(2) = 4 なので、x₁ = 2 − (−1)/4 = 2.25 です。引く代わりに −1/4 を足すと 1.75 になってしまいます。

3線形補間

表には、決まった点での値しかありません。線形補間は、表の隣り合う 2 点の間に直線を引きます:

y = y₁ + (y₂ − y₁)·(x − x₁)/(x₂ − x₁)

例:表に f(1) = 2.0 と f(2) = 2.6 があります。x = 1.4 では割合が 0.4 なので、f(1.4) ≈ 2.0 + 0.6·0.4 = 2.24 です。

逆補間も同様に、向きを逆にして行います:y = 2.3 となる位置を求めるには、割合は (2.3 − 2.0)/0.6 = 0.5 なので、x ≈ 1.5 です。

4台形公式とシンプソンの公式

f を a から b まで積分するには、区間を幅 h = (b − a)/n、節点 x₀, x₁, …, xₙ の n 個の短冊に分けます。

台形公式は、各短冊の曲線を直線で置き換えます。内側の節点はどれも 2 つの短冊に属するので、2 回数えます:

T = (h/2)[f₀ + 2f₁ + 2f₂ + … + 2fn−1 + fₙ]
0.51y = x²x

シンプソンの公式は、3 つの節点ごとに放物線を当てはめます。n は偶数が必要です:

S = (h/3)[f₀ + 4f₁ + 2f₂ + 4f₃ + … + 4fn−1 + fₙ]

n = 2(h = 0.5)での ∫01 x² dx = 1/3 では:T = 0.25·(0 + 0.5 + 1) = 0.375、S = (0.5/3)·(0 + 1 + 1) = 0.3333 で、厳密な値と一致します。

台形公式の誤差は h² のように、シンプソンの公式の誤差は h⁴ のように小さくなります:h を半分にすると、シンプソンの公式は約 16 倍正確になります。

セルフチェック 台形公式は、節点 x₀, x₁, x₂, x₃ にどんな重みを与えますか?
  1. 1, 1, 1, 1
  2. 1, 2, 2, 1
  3. 1, 4, 2, 1
  4. 1, 4, 4, 1

答え: 1, 2, 2, 1. 両端の点は 1 つの短冊に、内側の点は 2 つの短冊に属するので、係数 h/2 とともに 1, 2, 2, 1 です。4 はシンプソンの公式の重みです。

5微分方程式のオイラー法とホイン法

y(t₀) = y₀ のもとでの y′ = f(t, y) を、刻み幅 h で時間を進めて解きます。オイラー法は、各ステップの開始点での傾きを使います:

yn+1 = yₙ + h·f(tₙ, yₙ)

ホイン法(改良オイラー法)は、オイラー法で予測し、両端での傾きを平均します:k₁ = f(tₙ, yₙ)、k₂ = f(tₙ + h, yₙ + h·k₁)、yn+1 = yₙ + (h/2)(k₁ + k₂)。

オイラー法の誤差は h に、ホイン法の誤差は h² に比例します。古典的ルンゲ–クッタ法(RK4)は 4 つの傾きを使い、h⁴ の精度をもちます。

例題

y′ = y、y(0) = 1 を、オイラー法で h = 0.1 として t = 0.3 まで解き、厳密解 eᵗ と比べてください。

1

ステップ 1

y₁ = 1 + 0.1·1 = 1.1
2

ステップ 2

y₂ = 1.1 + 0.1·1.1 = 1.21
3

ステップ 3

y₃ = 1.21 + 0.1·1.21 = 1.331
4

比べる

厳密な値は e0.3 = 1.349859 なので、大域誤差は 0.0189 です。y₀ からホイン法を 1 ステップ行うと、1 + 0.05·(1 + 1.1) = 1.105 となり、e0.1 = 1.105171 と比べられます。

答え

オイラー法で y(0.3) ≈ 1.331。誤差 0.019 は、h にほぼ比例して小さくなります。

6よくある間違いと試験問題

  • 二分法の最初の中点をステップ 0 と数える、または区間の誤った半分を残してしまう。
  • ニュートン法で、x − f/f′ の代わりに x − f′/f と書いてしまう。
  • 台形公式で、内側の節点の係数 2 を忘れる、または h/2 の代わりに h を使ってしまう。
  • シンプソンの公式を奇数個の短冊で使ってしまう。
  • オイラー法で、ステップの終わりの傾きを使う、またはステップを 1 回少なくしてしまう。

やさしい:二分法、ニュートン法の反復、表の補間。ふつう:台形公式とシンプソンの公式、その誤差、必要な短冊の数。むずかしい:微分方程式のオイラー法、ホイン法、ルンゲ–クッタ法のステップ。

セルフチェック y′ = 2y、y(0) = 1 です。h = 0.2 でのオイラー法の 1 ステップは何を与えますか?
  1. 1.2
  2. 1.49
  3. 1.4
  4. 2.4

答え: 1.4. y₁ = 1 + 0.2·(2·1) = 1.4 です。傾きの係数 2 を忘れると 1.2 になります。1.49 は厳密な値 e0.4 です。

アプリでステップごとに学ぶアプリでステップごとに学ぶ

解答例

例題 1やさしい

二分法は、長さ 4 の区間から始まります。各ステップで区間は半分になります。区間が 0.0001 より短くなるまでに、少なくとも何ステップ n 必要ですか?

b − a = 4ε = 0.0001

求めるもの: n

ヒントを表示
  1. n ステップ後の区間の長さは (b − a)/2ⁿ です。
  2. 4/2ⁿ < 0.0001 を解くと、2ⁿ > 40000 です。
  3. n > log₂(40000) = 15.29
答えとステップごとの解答を表示

方程式の解法と補間:二分法は、f の符号が変わる区間 [a, b] を保ちます。各ステップで中点 c = (a + b)/2 を取り、符号がなお変わる側の半分を残すので、n ステップ後の区間の幅は (b − a)/2ⁿ です。ニュートン–ラフソン法は、接線を軸まで辿ります:xn+1 = xn − f(xn)/f′(xn)。単根の近くでは、1 ステップごとに正しい桁数がおよそ 2 倍になります。表の 2 点の間の線形補間:y = y₁ + (y₂ − y₁)(x − x₁)/(x₂ − x₁)。

条件

4/2ⁿ < 0.0001 → 2ⁿ > 40000

対数

n > ln(40000)/ln 2 = 15.29
n = 16

確認

2¹⁵ = 32768 < 40000 < 2¹⁶ = 65536

答え

n = 16
例題 2ふつう
xy00.511.5

台形公式を n = 3 個の短冊で使って、∫01.5 √(1 + x³) dx を近似してください。T を答えてください。

f(x) = √(1 + x³)[a, b] = [0, 1.5]n = 3

求めるもの: T

ヒントを表示
  1. h = (1.5 − 0)/3 = 0.5。節点は 0, 0.5, 1, 1.5 です。
  2. 重み:1, 2, 2, …, 2, 1。T = (h/2)·Σ wᵢfᵢ。
  3. 重み付きの和は Σ wᵢfᵢ = 8.041398 です。
答えとステップごとの解答を表示

数値積分:[a, b] を、幅 h = (b − a)/n、節点 x₀ … xₙ の n 個の短冊に分けます。台形公式:T = (h/2)[f₀ + 2f₁ + 2f₂ + … + 2fn−1 + fₙ]。シンプソンの公式(n は偶数):S = (h/3)[f₀ + 4f₁ + 2f₂ + 4f₃ + … + 4fn−1 + fₙ]。台形公式の誤差は h² のように小さくなり(M = max|f″| として評価式 (b − a)h²·M/12)、シンプソンの公式は h⁴ のように小さくなるので、同じ節点ならシンプソンの公式のほうが通常はずっと正確です。

ixᵢf(xᵢ)体重001110.51.060662211.414214231.52.091651

節点と値

h = 0.5
Σ wᵢfᵢ = 1 + 2·1.06066 + 2·1.414214 + 2.09165 = 8.041398

台形公式

T = (0.5/2)·8.041398 = 2.01

答え

T = 2.01

この積分には初等的な原始関数がなく、まさにそのようなときに数値的な公式が必要になります。

例題 3むずかしい
00.10.20.30.40.40.60.81ty(0, 0.5)

ホイン法(改良オイラー法)を h = 0.2 で y′ = 1 + sin(ty)、y(0) = 0.5 に使い、y2 ≈ y(0.4) を推定してください。

y′ = 1 + sin(ty)y(0) = 0.5h = 0.2

求めるもの: y2

ヒントを表示
  1. 各ステップ:k₁ = f(tₙ, yₙ)、k₂ = f(tₙ + h, yₙ + h·k₁)、yn+1 = yₙ + (h/2)(k₁ + k₂)。
  2. ステップ 1:k₁ = 1、k₂ = 1.139543、y₁ = 0.713954。
  3. t = 0.4 に到達するには、2 ステップが必要です。
答えとステップごとの解答を表示

y′ = f(t, y) の数値解法:オイラー法は、各ステップの開始点での傾きに沿って進みます:yn+1 = yₙ + h·f(tₙ, yₙ)。ホイン法(改良オイラー法)は、開始点での傾きと、オイラー法による予測点での傾きを平均します:k₁ = f(tₙ, yₙ)、k₂ = f(tₙ + h, yₙ + h·k₁)、yn+1 = yₙ + (h/2)(k₁ + k₂)。古典的ルンゲ–クッタ法(RK4)は 4 つの傾きを組み合わせます:yn+1 = yₙ + (h/6)(k₁ + 2k₂ + 2k₃ + k₄)。大域誤差は、オイラー法では h に、ホイン法では h² に、RK4 では h⁴ に比例します。

ntₙyₙk₁k₂yₙ₊₁000.511.1395430.71395410.20.7139541.1423061.3681010.964995

ホイン法のステップ

y₁ = 0.5 + (0.2/2)(1 + 1.139543) = 0.713954
y₂ = 0.713954 + (0.2/2)(1.142306 + 1.368101) = 0.964995
00.10.20.30.40.40.60.81ty

グラフ

y2 = 0.965

答え

y2 = 0.965

質問と回答

数値計算法とは?

多くの方程式や積分には、答えの公式がありません:x = cos x、∫e−x²dx、あるいはほとんどの微分方程式などです。数値計算法は、必要な精度の答えを、ステップごとに計算します。

例:[1, 2] 上の f(x) = x² − 2。c₁ = 1.5 では f = 0.25 > 0 なので [1, 1.5] を残します。c₂ = 1.25 では f = −0.4375 < 0 なので [1.25, 1.5] を残します。次に c₃ = 1.375 です。

数値計算法の問題の解き方は?(手順)
  1. 方程式の解では:二分法なら符号の変化を確かめ、ニュートン法なら f と f′ を計算し、反復値の表では有効数字を 6 桁以上保ちましょう。
  2. 表の値では:隣り合う 2 点の間で線形補間しましょう。
  3. 積分では:h = (b − a)/n を求め、すべての節点で f を並べ、重み(台形公式は 1, 2, …, 2, 1、n が偶数のシンプソンの公式は 1, 4, 2, …, 4, 1)を適用して、h/2 または h/3 を掛けます。
  4. 常微分方程式では:t₀ から yₙ₊₁ = yₙ + h·f(tₙ, yₙ)(オイラー法)または平均した傾き(ホイン法)で進み、1 ステップにつき 1 行で、求められた t に達するまで続けます。
数値計算法でよくある間違いは?
  • 二分法で区間の誤った半分を残す、またはステップ数を数え間違える。
  • ニュートン–ラフソン法で、x − f/f′ の代わりに x − f′/f と書いてしまう。
  • 台形公式で内側の節点の重みを 1 にする、またはシンプソンの公式を奇数個の短冊で使ってしまう。
  • 反復値を早く丸めすぎる。
  • 最終時刻に達するまでのオイラー法のステップを、1 回多く、または少なくしてしまう。
数値計算法の練習では何を学ぶ?
  • やさしい: 方程式の解法と補間
  • ふつう: 台形公式とシンプソンの公式
  • むずかしい: オイラー法、ホイン法、ルンゲ–クッタ法

問題ごとに数値が変わるので、答えではなく解き方が身につきます。 行き詰まったら、まず小さなヒントを開き、必要なときだけ詳しい解説を見ましょう。

練習のしかた

  • 問題ごとに数値が変わるので、答えではなく解き方が身につきます。
  • 行き詰まったら、まず小さなヒントを開き、必要なときだけ詳しい解説を見ましょう。
  • 進捗、間違えた問題、保存した問題は記録されるので、試験前に復習できます。

このトピックの前後のトピック

先に学ぶ

このトピックを含む科目

数学・統計学のほかのトピック

印刷用ワークシート

数値計算法を無料で練習今すぐ数値計算法を練習毎日 5 問まで無料。カード登録は不要です。