2.8 演習課題(2)
6.演習課題2-11 2分探索法
<課題>
2分探索法を用いて、区間で単調増加(減少)な関数 f(x)のf(x)=0なる根を求めるプログラムを作成しなさい。
<原理>
f(x)はx1≦x≦x2なる区間で単調増加する実関数であるとする。もし
f(x1) < 0 , f(x2) > 0
であるならばx1≦x0≦x2なるx0で、f(x)=0の解となるものが存在する。このとき
x3 = (x1+x2)/2
とすると、f(x3) > 0ならばx0は区間[x1,x3]に存在し、 f(x3) < 0ならばx0は区間[x3,x2]に存在することが分かる。
この関係を用いると、解x0の存在する範囲を徐々に限定していくことができる。
<仕様>
- f(x) = x * exp(x) - 3.0 = 0 の解を、区間[0.0, 2.0]の間で探すプログラムを作成せよ。
- プログラムで求める解の精度は、10^-4以下になるようにせよ。
(即ち、真の解x0とプログラムで求めた解pが|x0 - p|< 10^-4 )
- 数学関数 exp(x) を利用するためには数学ライブラリ math.h をインクルードせよ。
<ヒント>(見たら減点)