差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| articles:newton_raphson [2021/07/13 21:25] – 作成 Takashi Suehiro | articles:newton_raphson [2021/07/14 22:32] (現在) – [注意点] Takashi Suehiro | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== ニュートン・ラフソン法 ====== | ====== ニュートン・ラフソン法 ====== | ||
| + | 非線形多変数方程式の数値解法 | ||
| ===== テーラー展開による一次近似 ===== | ===== テーラー展開による一次近似 ===== | ||
| $$ | $$ | ||
| 行 19: | 行 20: | ||
| $\boldsymbol{f}(\boldsymbol{x}) = \boldsymbol{0}$となる$\boldsymbol{x}$を求める | $\boldsymbol{f}(\boldsymbol{x}) = \boldsymbol{0}$となる$\boldsymbol{x}$を求める | ||
| + | |||
| + | (1) まず$\boldsymbol{f}(\boldsymbol{x}_0)$が十分に小さい$\boldsymbol{x}_0$を初期解として選ぶ. | ||
| + | |||
| + | (2) 近似的に | ||
| + | $$ | ||
| + | \boldsymbol{f}(\boldsymbol{x}) = \boldsymbol{f}(\boldsymbol{x}_i) + J(\boldsymbol{x}-\boldsymbol{x}_i) = \boldsymbol{0} | ||
| + | $$ | ||
| + | として,これを解いて | ||
| + | $$ | ||
| + | | ||
| + | $$ | ||
| + | とする. | ||
| + | |||
| + | (3) $\boldsymbol{f}(\boldsymbol{x}_{i+1})$が,十分に$\boldsymbol{0}$に近ければ終了. | ||
| + | $\boldsymbol{x}_{i+1}$を解とする. | ||
| + | |||
| + | そうでなければ$\boldsymbol{x}_{i+1}$を新たな初期解として(2)を繰り返す. | ||
| + | |||
| + | ===== 注意点 ===== | ||
| + | ニュートン・ラフソン法は,良い初期解が与えられれば多くの場合非常に高速に解に収束する(2次収束). | ||
| + | |||
| + | しかし,初期解が適切でない場合や関数の性質が良くない場合は思ったように解に到達しない. | ||
| + | |||
| + | 具体的には, | ||
| + | * 初期解が狙っていた解から遠い場合に異なる解に収束してしまう | ||
| + | * 初期解がそれほど遠く出ないと思っていても,関数の性質によっては狙っていた解の区間を飛び出してしまう | ||
| + | * 関数の性質によっては解の周りで振動的に振る舞うことがある | ||
| + | * 解が極値にある場合(重根)は解の周りで不安定になる | ||
| + | などである | ||
| + | (( | ||
| + | したがってプログラムで実装する際には解が得られたかどうかだけでなく,収束状況のチェックを行い, | ||
| + | 解が得られない場合にもエラーとして終了させる必要がある. | ||
| + | )). | ||
| + | |||
| + | また当然ではあるが,$J^{-1}$が存在すること,すなわち$J$が正則である必要がある. | ||
| + | |||
| + | 大抵の場合はこれらの問題点を深く考えなくてもうまく行くことが多い. | ||
| + | しかし,これらが問題となりそれを避けなくてはならない場合には対象に対する十分な理解が必要となる. | ||
| + | |||
| + | |||