牛頓法(II)

程式由網友 roviury 提供。

牛頓法(II)程式會使用一個合適△值計算近似值,亦可以避免函數一階導數為0問題(f'(x)=0),程式會自動選取足夠準確度,不用經過很多中間很多近似值答案,直接得出最後答案。

程式編寫日期: 2011年2月28日

注意: E是按 EXP。

程式一(89 bytes,不包括綠色的函數方程)

?→X: E-15→C: MM-: Lbl 0: X3-2X-1→D: MM- => Goto 1:

D=0 => X◢ D→B: 1M+: X+C→X: Goto 0: Lbl 1: If B=D:

Then 4C+5C2→C: Else X + DC÷ (B-D→X: . 8C→C: IfEnd: Goto 0

 

程式二(97 bytes,不包括綠色的函數方程,綠色函數方程變數可用X或Ans)

?→X: E-15→C: MM-: X: Lbl 0: X3-2X-1→D: MM- => Goto 1:

D=0 => X◢ D→B: 1M+: X+C→X: Goto 0: Lbl 1: If B=D:

Then 4C+5C2→C: X: Else . 8C→C: X + DC÷ 1.25(B-D→X:

IfEnd: Goto 0

 

註1: 綠色的X3 - 2X - 1是函數方程(變數是X,若果是程式二變數亦可以使用Ans),若果想計算其它方程,只要修改綠色的部份。

註2: 本程式是用近似值的方法去計微分值,所以有可能與真正的牛頓法會有小小分別。

註3: 若果希望計算複數根,可將程式改為在複數模式輸入,輸入後只要初始值為a+bi (a可為0),但不能計算實根。
 

例題: 用牛頓法計算方程式 x3 – 2x – 1 = 0 的其中一個根,以1為開始的數值 。 

按 Prog 1  再按 1 EXE (顯示答案為1.618033989)

 

返回 CASIO fx-50FH、fx-3650P II、fx-50FH II及fx-50F PLUS 程式集