牛頓法
程式新版 (舊版依然保留在網頁下方)
新版程式編寫日期: 2006年1月11日
注意: 10x是按shift log。
第一個程式 (最少 48 bytes)
Mem clear: ?→M: Lbl 0: C→A: M3 - 2M - 1→C:
B=0→B => 10x - 7 M+ => Goto 0:
10x - 7 + A ÷ 10x7(C - A M-: M◢ Goto 0
第二個程式 (最少 56 bytes)
Mem clear: ?→M: Lbl 0: C→A: M3 - 2M - 1→C:
B=0→B =>10x - 7 (M + (M=0→X => XM+ => Goto 0:
X + AX ÷ (C - A M-: M◢ Goto 0
註1: 綠色的M3 - 2M - 1是函數方程(變數是M),若果想計算其它方程,只要修改綠色的部份。
註2: 若果想保留一些記憶用作儲存臨時數據,可將程式中"Mem clear"改為"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.636305633)
EXE (顯示第5個近似值為1.618304386)
EXE (顯示第6個近似值為1.618034048)
………
第二個程式按法:
按 Prog 1 再按 1 EXE (顯示第1個近似值為3)
EXE (顯示第2個近似值為2.2)
EXE (顯示第3個近似值為1.780830671)
EXE (顯示第4個近似值為1.636303281)
EXE (顯示第5個近似值為1.618304685)
EXE (顯示第6個近似值為1.618034047)
………
舊版程式
程式編寫日期: 2005年12月20日
注意: 10x是按shift log。
程式 (最少76 bytes)
Mem clear: ?→X: Lbl 0: X3 - 2X - 1→Y: 10x - 7→A:
X + A(1 - 3M→X: 1M+: M=1 => Y→B: M=2 => Y→C:
M≠3 => Goto 0: X + 6A - 2AB ÷ (C - Y→X◢ MM-: Goto 0
註: 綠色的X3 - 2X - 1是函數方程(變數是X),若果想計算其它 方程,只要修改綠色的部份。
註2: 若果想保留一些記憶用作儲存臨時數據,可將程式中"Mem clear"改為"MM-",而程式所使用的記憶為A,B,C,X,Y及M。
例題: 用牛頓法計算方程式 x3 – 2x – 1 = 0 的其中一個根,以1為開始的數值 。
按 Prog 1 再按 1 EXE (顯示第1個近似值為3)
EXE (顯示第2個近似值為2.2)
EXE (顯示第3個近似值為1.780830671)
EXE (顯示第4個近似值為1.636302748)
EXE (顯示第5個近似值為1.618304535)
EXE (顯示第6個近似值為1.61803405)
………
註:本程式是用近似值的方法去計微分值,所以與真正的牛頓法會有小小分別。