一元二次方程(III)

程式新版

參考了網友roviury意見進行修改。

更新日期: 2011年6月21日

這個程式可解一元二次方程(包括複數根)、亦可計頂點的(x,y)座標及判別式的值。第二個程式採用了較快計算平方根化簡程式,所以程式較長一點。另外若果輸入數據為整數及答案為有理數時,答案會以分數形式表示, 建議將計數機預先設定為假分數形式表示(按 SHIFT SETUP → → 2  ),若為無理數(包括複數),程式可以計算出根的根式表示式

 

程式需要在 CMPLX 模式下執行,因此在選擇新程式位置後,按 2 選用CMPLX模式。

第一個程式 (共80 bytes,使用記憶為A, B, C及M ):

?→A: ?→B: ?→M: - B┘( 2A→B: AB2 M-: - 4AM→C:

B + √( -M┘A◢  2B - Ans◢ MM-◢ B◢ π: Sci 8:

While Ans≠Rnd( AnsM+: √(C÷M: WhileEnd:

Norm 1: Ans┘(2A ◢ M

 

第二個程式 (共114 bytes,使用記憶為A, B, C及M ):

?→A: ?→B: ?→M: - B┘( 2A→B: AB2 M-:

- 4AM→C: B + √( -M┘A◢  2B - Ans◢ M◢

Abs( C→M: √( C÷M)┘(2A→A: B◢ 1: Fix 0:

While Ans: Rnd(√( M ÷ Ans ) - . 5→B:  M ÷ B2→C:

Ans - Rnd(Ans => Rnd( C + . 5: WhileEnd:

Norm 1: AB◢ C

 

其它不同的版本

 

如何用這個程式計二次函數的因式分解

頂點功能求配方法算式

 

例題1: 解 21x2 - 11x - 2 = 0

按 Prog 1  再按 21 EXE - 11 EXE - 2 EXE (顯示第一個根為2/3)

EXE (顯示第二個根為 -1/7)

(注意: 若無需要計算其它資料,可以直接按AC終止程式)

EXE (顯示頂點的y座標或二次函數的極小值為 -289/84)

EXE (顯示頂點的x座標為11/42)

(注意: 若果無需要以根式表示或根為實數的整數/分數,可以直接按AC終止程式)

 

例題2: 解 x2 - 8x + 3 = 0

按 Prog 1  再按 1 EXE -8 EXE 3 EXE (顯示第一個根為7.60555)

EXE (顯示第二個根為 0.394449)

EXE (顯示頂點的y座標或二次函數的極小值為 - 13)

EXE (顯示頂點的x座標為 4)

EXE (顯示1)

EXE (顯示13)

所以方程的根為  4 ±1√13

 

例題3: 解 x2 + 6x + 25 = 0

按 Prog 1  再按 1 EXE 6 EXE 25 EXE ( 此時計算機右上角出現R<=>I,表示為複數解)

(顯示第一個根的實數部為 -3) 再按 Shift Re<=>Im (顯示第一個根虛數部為 4)

EXE (顯示第二個根的實數部為 -3) 再按 Shift Re<=>Im (顯示第二個根虛數部為 - 4)

EXE (顯示頂點的y座標或二次函數的極小值為 16)

EXE (顯示頂點的x座標為 -3)

所以方程的解為 x = -3 ± 4i

按AC中止程式

 

例題4: x2 + 7x + 15 = 0

按 Prog 1  再按 1 EXE 7 EXE 15 EXE ( 此時計算機右上角出現R<=>I,表示為複數解)

(顯示第一個根的實數部為 -7/2) 再按 Shift Re<=>Im (顯示第一個根虛數部為 1.6658)

EXE (顯示第二個根的實數部為 -7/2) 再按 Shift Re<=>Im (顯示第二個根虛數部為 - 1.658)

EXE (顯示頂點的y座標或二次函數的極小值為 11/4)

EXE (顯示頂點的x座標為 -7/2)

EXE (顯示 1/2 i)

EXE (顯示 11)

所以方程的解為 x = -7/2 ± (1/2)√11i

 

程式執行完成後,第一個程式按 RCL C顯示判別式的值。

註1: 若兩根為整數或分數,表示為有理數,亦即沒有必要計算根式表示式,請直接AC終止程式。

註2: 第一個程式輸入的係數必須為整數及有限小數,否則計算根式表示式的結果可能不成立。

註3: 第二個程式輸入的係數必須為整數,否則計算根式表示式的結果可能不成立。

註4: 第二個程式使用了較快計算平方根化簡程式,能夠有效處理各種不同情況下整數平方根化簡。

 

附錄 (兩根儲存在X及Y中)

程式需要在 CMPLX 模式下執行,因此在選擇新程式位置後,按 2 選用CMPLX模式。

第一個程式有記存兩根版本 (共84 bytes,使用記憶為A, B, C, X, Y及M )

?→A: ?→B: ?→M: - B┘( 2A→B: AB2 M-: - 4AM→C:

B + √( -M┘A→X◢  2B - Ans→Y◢ MM-◢ B◢ π: Sci 8:

While Ans≠Rnd( AnsM+: √(C÷M: WhileEnd:

Norm 1: Ans┘(2A ◢ M

 

第二個程式有記存兩根版本 (共118 bytes,使用記憶為A, B, C, X, Y及M )

?→A: ?→B: ?→M: - B┘( 2A→B: AB2 M-:

- 4AM→C: B + √( -M┘A→X◢  2B - Ans→Y◢ M◢

Abs( C→M: √( C÷M)┘(2A→A: B◢ 1: Fix 0:

While Ans: Rnd(√( M ÷ Ans ) - . 5→B:  M ÷ B2→C:

Ans - Rnd(Ans => Rnd( C + . 5: WhileEnd:

Norm 1: AB◢ C

 

附錄一元二次方程式的其它版

1. 簡短版 (32 或 34 bytes)

2. 有判別式的版本 (47 或 43 bytes)

3. 可顯示未化簡根式版本 (42 bytes)    

4. 使用較小數目記憶版本 (37 至 41 bytes)

5. 程式其它版本(包括小數版) (35 bytes 至 46 bytes)

6. 程式特別版(準確度較高) (43 至 55 bytes) 

7. 複數係數版 (52 bytes)  

8. 可顯示計算步驟(二次公式)版本 (46 - 50 bytes)

 

附錄一元二次方程式根式版

1. 未化簡根式版本 (42 bytes)

2. 可顯示簡化根式實根版本 (79 至 105 bytes) 

3. 可顯示簡化根式複數根版本 (84 至 115 bytes)

4. 可顯示簡化根式及頂點實根版本 (80 至 104 bytes)

5. 可顯示簡化根式及頂點複數根版本 (80 至 118 bytes)

 

返回 CASIO fx-50FH 及 fx-50F PLUS 程式集

Free Web Hosting