複素数に進む前に実数のニュートン法の復習を行う。以前配布(7月1日)したプ
リントでは、図によるニュートン法の説明を行い、漸化式を示した。ここでは、
別のアプローチを行う。別のアプローチであるが、その根本精神は同じで、
ということである。
では、異なったアプローチで漸化式を求める。いつものように、
の方
程式の解を
とする。即ち、
である。そして、
番目
の近似解を
とする。ここから、
だけ移動したところの値は、
となる。もし、
![$ f(x_i+\Delta x)=0$](img8.png)
、即ち、
![$ \alpha=x_i+\Delta x$](img9.png)
となるよ
うに、
![$ \Delta x$](img6.png)
を選ぶことができたら、解の計算は簡単である。この場合、
式(
2)の最後の式から、
![$\displaystyle \Delta x \simeq -\frac{f(x_i)}{f^\prime(x_i)}$](img10.png) |
(2) |
となる。したがって、
![$ \alpha=x_i+\Delta x$](img9.png)
から、次の近似解は
![$\displaystyle x_{i+1}=x_i-\frac{f(x_i)}{f^\prime(x_i)}$](img11.png) |
(3) |
となる。前回、図により求めた漸化式と同じである。異なる説明であったが、
内容はまったく同じであることを理解して欲しい。
実数とまったく同じ議論が、複素数でも成り立つ。ただし、複素関数で重要な
特異点付近では、この方法は使えない。テイラー級数ではなく、ローラン級数
の
![$ -1$](img12.png)
乗よりも小さい項が重要となるからである。実数の場合も、特異点はだ
めなのと同じである。
実数とまったく同じ議論より、方程式
![$\displaystyle w(z)=0$](img13.png) |
(4) |
の近似解は、漸化式
![$\displaystyle z_{i+1}=z_i-\frac{w(z_i)}{w^\prime(z_i)}$](img14.png) |
(5) |
より求めることができる。この式の算出は、先ほどの実数の場合と全く同じで
ある。
前回とは異なり、実数の場合の漸化式をグラフを用いないで説明したのは、複
素数に拡張するためである。複素数のグラフは大変である。
FORTRANと違って、C言語では複素数をそのまま扱うことができない。FORTRAN
は複素数をそのまま扱えるのである。これは非常に便利で、いまだに科学技術
計算でFORTRANが現役である大きな理由となっている。一方、C言語の場合、2
つの実数を用いて、複素数を取り扱う。実数部と虚数部である。これは、数学
で学習したように
![$\displaystyle z=x+iy$](img15.png) |
(6) |
とすればよい。
![$ x$](img16.png)
と
![$ y$](img17.png)
を用いるわけである。C言語では、構造体で定義する
のが美しいと思われるが、学習していないので、ここではどうでも良い。
同様に関数も
![$\displaystyle w(z)=u(z)+iv(z)$](img18.png) |
(7) |
と実数部と虚数部に分けて計算する。
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成16年9月12日