これは上級者向の選択課題で,無理にプログラムを作成しなくても良い.もし,このプロ
グラムができたならば,他の課題は実施しなくても良い.これだけできれば十分である.
ここでは,コンピューターを用いた方程式の解をもとめるプログラムを作成する.二分法
と言う方法を示す.このプログラムが作れるようになると,コンピューターは便利なもの
であると分かるだろう.
まずは,単純な方程式を考えよう.次の3次方程式
の解を求めることを考える.
一般に,方程式は次の形に書き表すことができる.
この方程式の解

をコンピューターで求める.もし,方程式の右辺がゼロでない場合は,
左辺へ移項して式(
2)の形にできる.方程式
(
2)を解くことは,関数

の値がゼロになる

の値を捜す--
と言い換えることができる.実際コンピューターを使った数値計算では,

の値がゼ
ロとなる

を捜すことになる.コンピューターでは,関数

がx軸と交わる点,
即ち

を反復(ループ)計算を用いて捜す.この点

を捜す方法には,いくつかあ
るが,ここでは最も単純な二分法を示す.
解くべき方程式(1)をグラフにすると,図
2のようになる.もちろん,グラフにした関数は,
 |
(3) |
である.

軸との交点の値は,

である.これが,元の
方程式(
1)の解になっている.
図 2:
の関数.x軸との交点が解である.
|
二分法の原理は非常に単純であるが,場合によっては非常に強力な方法である.これ
は,区間

で連続な関数

の値が,
ならば,

となる

があるということを使う.
実際の数値計算は,
であるような2点
から出発する.
そして,区間
を2分する点
に対して,
を計算を行う.
ならば
を
と置き換え,
ならば
を
と置き換
える.絶えず,区間
の間に解があるようにするのである.この操作を繰り返して,
区間の幅
が与えられた値
2よりも小さくなったならば,計算を終了する.例えば,
を
とすると,その精度で計算できる.
実際にこの方法で式(1)を計算した結果を図
3に示す.この図より,
と
の関係の式
(4)を満たす区間
が1/2ずつ縮小していく様子がわかる.
計算の終了は,
 |
(5) |
の条件を満たした場合とするのが一般的である.ここで,

は解の精度
である.これを変えることにより,任意の精度で近似解を求めることができる.
図 3:
の実数解を二分法で解散し,その解の収束の
様子を示している.初期値は
として,最初の解
が求
まり,順次より精度の良い
が求まる.それが,解析解
(x軸との交点)に収束していく様子が分かる.
|
図
4のような二分法のフローチャートの通りにすれば,目的の
動作をするプログラムができる.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成18年7月19日