牛頓法(I)
程式編寫日期: 2014年8月29日
注意: E是按 EXP。
第一個程式 (最少 51 bytes)
ClrMemory: ?→M: Lbl 0: C→A: M3 - 2M - 1→C:
B=0→B: Ans => E - 7 M+ => Goto 0:
E - 7( 1 + A ÷ (C - A M-: M◢ Goto 0
第二個程式 (最少 60 bytes)
ClrMemory: ?→M: Lbl 0: C→A: M3 - 2M - 1→C:
B=0→B: Ans => E - 7 (M + (M=0→X:
Ans => XM+ => Goto 0:
X + AX ÷ (C - A M-: M◢ Goto 0
註1: 綠色的M3 - 2M - 1是函數方程(變數是M),若果想計算其它方程,只要修改綠色的部份。
註2: 若果想保留一些記憶用作儲存臨時數據,可將程式中"ClrMemory"改為"B→0",第一個程式所使用的記憶為A,B,C及M,第二個程式所使用的記憶為A,B,C,X及M。
註3:本程式是用近似值的方法去計微分值,所以與真正的牛頓法會有小小分別。
註4: 第一個程式的△x = 10-7,而第二個程式使用變動形式的△x,因此適應能力較強,而△x的決定方法為(i) 當x≠0時,△x= (10-7) x,(ii) 當x=0時,△x= 10-7。
例題: 用牛頓法計算方程式 x3 – 2x – 1 = 0 的其中一個根,以1為開始的數值 。
第一個程式按法:
按 Prog 1 再按 1 EXE (顯示第1個近似值為3)
EXE (顯示第2個近似值為2.2)
EXE (顯示第3個近似值為1.780830671)
EXE (顯示第4個近似值為1.636303212)
EXE (顯示第5個近似值為1.61830458)
EXE (顯示第6個近似值為1.618034049)
………
第二個程式按法:
按 Prog 1 再按 1 EXE (顯示第1個近似值為3)
EXE (顯示第2個近似值為2.2)
EXE (顯示第3個近似值為1.780830717)
EXE (顯示第4個近似值為1.636303226)
EXE (顯示第5個近似值為1.618304581)
EXE (顯示第6個近似值為1.618034049)
………