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