非線型方程式の数値的解法

学習内容
  1. 収束,逐次近似の考え方を理解する。
  2. 方程式をニュートン法によって数値的に解く。
  3. 方程式を二分法によって数値的に解く。
  4. VBAによって関数を定義する。
Excel の関数
IF・・・条件分岐
 2次方程式には解の公式という便利なものがあるが,3次以上の整方程式,分数方程式,無理方程式,さらに超越方程式では解析解が得られることは希である。一般に方程式 f(x)=0を解くには y=f(x) のグラフを描きX軸との交点を近似的に求めることになる。

例題1 x=e/2−1をNewton法で解け(p30 例題12)
 与えられた方程式をf(x)=0と変形し,微分して導関数f'(x)を求める。それら関数のグラフは上図のようになる。
y=f(x)上の点(x1,y1)における接線の方程式は
     y=f'(x1)(x−x1)+y1
である。y=0とおきX軸との交点(x2,0)を求めると
     x2=x1−f(x1)/f'(x1)
上式の右辺に初期値x1を入力する。ただし f'(x1)≠0でなければならないので|f'(x1)|<ε(すなわちf'(x1)≒0) の場合はx1として別の値に変更する。上式においてx2を求め,これを新たなx1として計算を繰り返す。通常数回で収束し |f(x1)|<εとなる。すなわち x1 は解である。ここでεは任意に小さい正数で収束判定定数といわれる。
  f(x)=x−e/2+1 とすると f'(x)=1−e/2 である。この2つの関数を定義して 初期値としてx1=−1とすると
表作成
x=−0.76804 と求まる。これは上図においてy=f(x) とX軸との交点のうち左側のものである。初期値としてx=2 とすると右側の解 x=1.67835 が得られる。 εは10-6としてある。
Newton法は収束は速いが,微分の知識が必要である。
例題2 x=e/2−1を2分法で解け(p29 例題11)
 与えられた方程式をf(x)=0と変形する。初期値a,bを選ぶ(a<b)。ただしf(a)とf(b)が異符号になるようにする。 y=f(x)とx軸との交点すなわち解がaとbとの間にあるように
aとbとの中点 c=(a+b)/2における値 f(c)が f(a)と同符号なら解はcとbとの間にあるから aとしてcを用いさらにaとbとの中点を求める f(a)と異符号なら解はaとcとの間にあるからbとしてcを用いさらにaとbとの中点を求める |f(c)|<ε となるまで これを繰り返す。通常収束まで20回を要する。 f(x)=x−e/2+1   a=−2,b=0とすると
x=−0.76804 と求まる。
2分法は収束は遅く,また初期値は2個必要であり,それらが適正な値かどうかを調べるためには予めグラフを描いておかねばならない。 なお,εは任意に小さい数で10−5程度にしておけばよい。
解くべき方程式が複数個あるときは 関数として定義しておくと便利。
問題1 例題1の解をいろいろな初期値で試してみよ。
問題2 例題1で f'(x)=0となるxを求めよ。
問題3 次の方程式を解け。

1) x2 =16
2) x5 =100
3) x3 +3 x2−4 x= 1
4) ex =1−x
5) x =sinx + 3
6) x cosx =1
7) 2x= x2
8) xx= 10

戻る