相對極值(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

 

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