一元二次方程(II)精簡版
程式修改日期: 2007年6月9日 (更新日期: 2007年9月3日)
這個版本程式較為簡短,但由於一般考試計算的一元二次方程問題,係數主要是整數,這個程式的缺點是計算根式表示式時,有較大可能要計算較多分數平方根運算,因此速度可能會 減慢,特別是fx-3650P計算分數平方根速度會較明顯變慢。由於Truly SC185速度較快,執行這個程式表現會較為理想。
程式 (共77 bytes,使用記憶為A, B, C及M ):
?→A: ?→B: ?→M: B┘- 2A→B◢ AB2 M-:
- M┘A→C: MM-◢ B + √C◢ 2B - Ans◢ B◢
Fix 0: Lbl 0: 1M+: √(C÷M→B: Rnd: Ans - B => Goto 0:
Norm 1: B◢ M
例題1: 解 21x2 - 11x - 2 = 0
按 Prog 1 再按 21 EXE - 11 EXE - 2 EXE (顯示頂點的x座標為11/42)
EXE (顯示頂點的y座標或二次函數的極小值為 -289/84)
EXE (顯示第一個根為2/3)
EXE (顯示第二個根為 -1/7)
(注意: 若果無需要以根式表示或根為的分數(有理數),可以直接按AC終止程式)
例題2: 解 x2 - 8x + 3 = 0
按 Prog 1 再按 1 EXE - 8 EXE 3 EXE (顯示頂點的x座標為 4)
EXE (顯示頂點的y座標或二次函數的極小值為 - 13)
EXE (顯示第一個根為7.60555)
EXE (顯示第二個根為 0.394449)
EXE (顯示4)
EXE (顯示1)
EXE (顯示13)
所以方程的根為 4 ±1√13
注意:程式的輸入數據必須為整數或分數,否則計算根式表示式的結果可能不成立。另外,如果方程的判別式 很複雜分數,有可能需要頗用長時間去計算根式表示式。
註1: 若要應用計算複數根及複數根式的表示式,請將程式近最後的"B┘(2A"改為"1┘(2A)B",並在複數模中輸入程式。
註2: 若兩根為分數,表示為有理數,亦即沒有必要計算根式表示式,請直接AC終止程式。