第一段階は導関数 f'(x) と x - f(x)/f'(x) を計算することです。
(この定義は長いので、最後にまとめたものを付けておきます。 学習者はそれを M-# m で読込むことができます。 マクロ中で本体を Z ` Z ' で囲んで入力している限り、 Calc はそのキーストロークを実行せず単に学習するだけなのですが、 ここでは説明のため Calc があたかも実行したかのように図示します。)
2: sin(cos(x)) - 0.5 3: 4.5 1: 4.5 2: sin(cos(x)) - 0.5 . 1: -(sin(x) cos(cos(x))) . ' sin(cos(x))-0.5 RET 4.5 m r C-x ( Z ` TAB RET a d x RET
2: 4.5 1: x + (sin(cos(x)) - 0.5) / sin(x) cos(cos(x)) . / ' x RET TAB - t 1
さあ、ループを入力します。 何らかの理由で収束に失敗したときのために、 繰返しループを上限 20回に制限して使います。 (普通は 20回繰返す前に、 Z / コマンドがループを止めます。)
1: 4.5 3: 4.5 2: 4.5 . 2: x + (sin(cos(x)) ... 1: 5.24196456928 1: 4.5 . . 20 Z < RET r 1 TAB s l x RET
これが x の新しい推定値です。 ここでこれを旧推定値と比較して、 収束したかどうか調べます。
3: 5.24196 2: 5.24196 1: 5.24196 1: 5.26345856348 2: 5.24196 1: 0 . . 1: 4.5 . . RET M-TAB a = Z / Z > Z ' C-x ) (ESC TAB)
ほんの数ステップでループはこの値まで収束します。 この結果を確かめるには、 単に元の方程式に代入します。
2: 5.26345856348 1: 0.499999999997 . RET ' sin(cos($)) RET
新定義をもう一度試してみましょう。
2: x^2 - 9 1: 3. 1: 1 . . ' x^2-9 RET 1 X
もう一度、 これがニュートン法のフル定義です。
C-x ( Z ` TAB RET a d x RET / ' x RET TAB - t 1 20 Z < RET r 1 TAB s l x RET RET M-TAB a = Z / Z > Z ' C-x )
Calc は組込みコマンドを持っていて、 式を収束するまで繰返し適用します。 その使い方は、Nesting and Fixed Points 参照 .
それからもちろん、 a R は(他にもあるが中でも)ニュートン法を使って 任意の方程式の数値解を探す組込みコマンドです。 根の探索(Root Finding) 参照 .
Go to the first, previous, next, last section, table of contents.
利用度数