演習
次方程式の近似解を二分法で求めるプログラムを作成せよ。このプログラムを用いて
の近似解と繰り返しの回数を求めよ。近似解の有効桁数が3桁以上になるように誤差の限界 を選ぶこと。与えた初期範囲と誤差の限界より、必要な繰り返し回数を理論的に考察し、実験 結果と比較検討せよ。
【コメント】
資料ではつの方程式について解くように指示しているが、一部分しか解いていないレポー トに実行結果を載せていないケースが見受けられる。つの方程式全てについて実行結果 を載せるべきである。
誤差の限界とは?
誤差の限界をとする。また、方程式の真の根をとする。この時、作成したプログ ラムが出力する答えが、を満たす時、このプログラムは誤差の限界で正しい 答えを出力していると言う。即ち、誤差の限界で正しいプログラムが、を答えとして出 力するならば、真の根はを満たすことが保証される。
誤差の限界として大きな値を与えている人がいる。で確認すると、これらの方程 式の根の中で、その絶対値が最も小さい場合は程度であるので、有効桁数が3桁以上の 根を求めるためには、として、 程度にするのが妥当である例えば、プログラムが
を根として出力する場合、の部分の誤差は許されないが、の部分の誤差は多少 許される。 とすると、の部分の誤差が 未満に抑えられる。
「初期値異常」と出力され近似解が求まらない:
二分法で方程式の近似解を求める場合、最初に指定する区間 に対してで ないと解が求まる保証はない(演習資料 頁図参照)。このため、演習資料では、関数
の機能として、「さらに、ならば、初期値異常としてエラー終了する」と している。関数 が正しくプログラムされていれば、 かつ の場合 や かつ の場合は「初期値異常」と出力されるが、これはプログラムと しては正常な動作である。したがって、 のグラフを見るなどして、かつ
またはかつとなるような を指定する必要がある。
求まった近似解に対する関数値を出力していないプログラムが見受けられたが、答えの正し さを推測する上でも資料通りに近似解に対する関数値も出力するのが良い。
二分法で答えを求めて返す関数について:
演習資料の !頁に
の間以下を繰り返す 範囲の幅が誤差の限界より大きい
繰り返し回数 を増やす
は範囲の中点
なら が答え
なら とし なら とする。
範囲の幅が誤差の限界より小さくなったので が答え
のような疑似コードを与えているが、「‥‥の間以下を繰り返す‥‥‥」の部分のプログ ラムが書けていない人が見受けられる。
この部分は、「"条件‥‥‥」の形でプログラムすれば良い(「条件」が成立する間
「‥‥‥」の部分を繰り返し実行)。ここで、「条件」は「」となる。これより
!" 範囲の幅が誤差の限界より大きい間
以下を繰り返す
繰り返し回数 を増やす
は範囲の中点
が答え
の間に解があるのでとする
# の間に解があるので
とする
範囲の幅が誤差の限界より小さくなったので
または が答え
方程式が複数個の実根を持つ場合でも、二分法で求めることが出来るのはそのうちの 個の 近似解だけである。
与えた初期範囲と誤差の限界より、必要な繰り返し回数を理論的に考察
この考察を行っていないレポートが多い。繰り返しを1回行うと、範囲の幅は半分になる。
したがって、繰り返し回数が回であるとすると、
が成立するので、こ れをについて解けばよい。
各方程式の近似解は次のようになる。各方程式に対して、有効数字3桁で1個近似解が求まっ ていれば良い。
# ! # #
# ! !
! # # #