相對極值(Local maxima or minima)
程式由網友roviury提供,程式使用計算微分近似值及牛頓法找尋函數相對極值(Local maxima/minima)的位置。
更新日期: 2011年4月29日
注意: E是按 EXP。
程式(100 bytes,不包括綠色函數方程)
?→X: Lbl 0: MM-: X→B: E4 ÷ (X + (X=0→Y:
While Ans: X3 - 2X - 1→C: X + Y-1(1 - 3M→X:
M=0 => C→A: M=1 => C→D: M≠2M+: WhileEnd:
2-1Y(D - C→M◢ Y2(D + C - 2A→C: B-M÷C→X◢ Goto 0
註1: 綠色的X3 - 2X - 1是函數方程(變數是X),若果想計算其它方程,只要修改綠色的部份。
註2: 若果想知道近似值X是相對極大(local maxima)還是相對極小(local minima),可按 AC終止程式後,按 RCL C 顯示第二導數f"(x)的值,按 RCL A 則可顯示函數相對極大值/極小值。
註3: 若想程式每次顯示近似值答案前顯示第二導數,可以程式碼"Y2(D + C - 2A→C:"改為"Y2(D + C - 2A→C◢"即可。
例題: 試求函數 f(x) = x3 - 2x - 1在x=1附近相對極值的位置。
按 Prog 1 再按 1 EXE (顯示第一個第一導數f'(x)為1.000000001(斜率))
EXE (顯示第一近似值x為0.833333331)
EXE (顯示第二個第一導數f'(x)為0.083333331(斜率))
EXE (顯示第二近似值x為0.816666664)
EXE (顯示第三個第一導數f'(x)為8.333283698×10-4(斜率))
EXE (顯示第二近似值x為0.816496597)
.......
正確答案為√(2/3)=0.81649658
附錄: 程式會先顯示函數值,再顯示一階導數,再顯示二階導數)
另一個版本程式(104 bytes,不包括綠色函數方程)
?→X: Lbl 0: MM-: X→B: E4 ÷ (X + (X=0→Y:
While Ans: X3 - 2X - 1→C: X + Y-1(1 - 3M→X:
M=0 => C→A: M=1 => C→D: M≠2M+: WhileEnd:
2-1Y(D - C→M: Y2(D + C - 2A→C: B-M÷C→X◢ M◢ C◢ Goto 0