2 非線型方程式の概要

ここでは、数値計算により方程式の解を求める方法を学習する。次の方程式

$\displaystyle f(x)=0$ (1)

の根$ x$を求める。方程式の右辺がゼロでない場合は、左辺へ移項して 式(1)の形にできる。

具体的な問題で、これを考える。たとえば、方程式

$\displaystyle x^3-3x^2+9x-8=0$ (2)

の根を求める。これの解析解を求めるのは、ほとんど不可能であろう。こらえ 性のない私なんかは、すぐにコンピューターで計算を始めます。ここでは、コ ンピューターでこれの根を求める方法を学習する。ちなみにこの方程式の根は、

  $\displaystyle x_1=1-2\left[\frac{2}{1+\sqrt{33}}\right]^{1/3}+
 \left[\frac{1}{2}\left(1+\sqrt{33}\right)\right]^{1/3}$ (3)
  $\displaystyle x_2=1+(1+\sqrt{3}i)\left[\frac{2}{1+\sqrt{33}}\right]^{1/3}-
 \frac{1}{2}(1-\sqrt{3}i)
 \left[\frac{1}{2}\left(1+\sqrt{33}\right)\right]^{1/3}$ (4)
  $\displaystyle x_2=1+(1-\sqrt{3}i)\left[\frac{2}{1+\sqrt{33}}\right]^{1/3}-
 \frac{1}{2}(1+\sqrt{3}i)
 \left[\frac{1}{2}\left(1+\sqrt{33}\right)\right]^{1/3}$ (5)

と分かっている2。それにしても、これらの根は良く似ている。不思議なものである。 複素平面で考えると、これらが似ているのも分かるような気がする。

ここでは数値計算法により、実数解、すなわち$ x_1$を求める。むろん、複素 数解を求めることも可能であるが、少し難しくなる。実際に、プログラムを作 成する前に、実数解の近似値を求めておく。それは、

$\displaystyle x_1\simeq 1.1659055841222127171\cdots$ (6)

となる。

式(2)は3次方程式であるが、ここで用いる数値計算の テクニックで解ける問題はべき乗の多項式とは限らない。計算に用いれる領域 が連続であれば、どんな方程式でも解ける。三角関数や指数関数、分数の形で も関係なく解ける。

実際には、次の4通りの計算テクニック示す。

  1. 2分法
  2. ニュートン-ラフソン法(ニュートン法)
  3. はさみうち法
  4. 割線法(セカント法)
いずれの方法も、$ y= f(x)$のx軸と交わる点、即ち$ f(x)=0$を反復(ループ)計 算を用いて探している。式(2)であれば、 $ f(x)=x^3-3x^2+9x-8$として計算する。この関数を図 1にしめす。先の4通りの方法で、図 1のx軸との交点を計算するのである。
図 1: $ f(x)=x^3-3x^2+9x-8$の関数。x軸との交点が解である。
\includegraphics[keepaspectratio, scale=0.7]{figure/function_solution/ShapeOfFunction.eps}

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年9月10日


no counter