2011年5月16日 星期一

一元二次方程式(II)

一元二次方程式(II)
程式新版
更新日期: 2010年3月23日
這個程式可解一元二次方程(實根)、亦可計頂點的(x,y)座標及判別式的值。第二個程式採用了較快計算平方根化簡程式,所以程式較長一點。另外若果輸入數據為整數及方程的根為有理數時,根會以分數形式表示建議將計數機預先設定為假分數形式表示(按 SHIFT SETUP → → 2  ),若為無理數,根亦可用根號形式表示

程式需要在 COMP 模式下執行,因此在選擇新程式位置後,按 1 選用COMP模式。
第一個程式 (共80 bytes,使用記憶為A, B, C及M ):
?→A: ?→B: ?→M: - B┘( 2A→B◢ AB2 M-:
- 4AM→C: MM-◢ B + √( -Ans┘A◢  2B - Ans◢ B◢
π: Sci 8: While Ans≠Rnd( AnsM+: √( C÷M: WhileEnd:
Norm 1: Ans┘(2A ◢ M

@@第二個程式 (共100 bytes,使用記憶為A, B, C及M ):
?→A: ?→B: ?→M: - B┘( 2A→B◢ AB2 M-:
- 4AM→C: M◢ B + √( -Ans┘A◢  2B - Ans◢ B◢
1: Fix 0: While Ans: Rnd(√( C ÷ Ans ) - . 5→B:  C ÷ B2→M:
Ans - Rnd(Ans => Rnd( M + . 5: WhileEnd: Norm 1: B┘(2A◢ 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

程式執行完成後,按 RCL C顯示判別式的值。
註1: 若兩根為整數或分數,表示為有理數,亦即沒有必要計算根式表示式,請直接AC終止程式。
註2: 第一個程式輸入的係數必須為整數及有限小數,否則計算根式表示式的結果可能不成立。
註3: 第二個程式輸入的係數必須為整數,否則計算根式表示式的結果可能不成立。
註4: 第二個程式使用了較快計算平方根化簡程式,能夠有效處理各種不同情況下整數平方根化簡。

附錄 (兩根儲存在X及Y中)
程式需要在 COMP 模式下執行,因此在選擇新程式位置後,按 1 選用COMP模式。
第一個程式有記存兩根版本 (共84 bytes,使用記憶為A, B, C, X, Y及M )
?→A: ?→B: ?→M: - B┘( 2A→B◢ AB2 M-:
- 4AM→C: MM-◢ B + √( -Ans┘A→X◢  2B - Ans→Y◢ B◢
π: Sci 8: While Ans≠Rnd( AnsM+: √( C÷M: WhileEnd:
Norm 1: Ans┘(2A ◢ M

第二個程式有記存兩根版本 (共104 bytes,使用記憶為A, B, C, X, Y及M )
?→A: ?→B: ?→M: - B┘( 2A→B◢ AB2 M-:
- 4AM→C: M◢ B + √( -Ans┘A→X◢  2B - Ans→Y◢ B◢
1: Fix 0: While Ans: Rnd(√( C ÷ Ans ) - . 5→B:  C ÷ B2→M:
Ans - Rnd(Ans => Rnd( M + . 5: WhileEnd: Norm 1: B┘(2A◢ M

一元二次方程式

一元二次方程式(I)
更新日期: 2011年4月13日
這個程式可解一元二次方程(包括複數根)、亦可以計二次函數的最大/最小值及其對應的x值。另外若果輸入數據為整數(或分數)及答案為有理數時,答案會以分數形式表示,建議將計數機預先設定為假分數形式表示(按 SHIFT SETUP → → 2  )。
注意:若果你不用計複數根,為被免混淆及使用方便,建議輸入程式時選用COMP 模式。若要計複數根, 輸入程式時請選用複數模式(選擇新程式位置後按 2 選用CMPLX模式),當執行程式時,程式會自動進入複數模式。
注意 : 若果不想記存兩根,程式中綠色部份可以不輸入。
程式 (共42 或 38 bytes,使用記憶為A, B, C及M):
?→A: ?→B: ?→M: - B┘(2A→C: AC2M-:
C+√( -M┘A→A◢ 2C - Ans→B




@@例題1: 解 x2 - 7x + 12 = 0
按 Prog 1  再按 1 EXE - 7 EXE 12 EXE (顯示第一個實數根為4) EXE (顯示第二個實數根為3)
∴ x = 4 或 x = 3

@@例題2: 解 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)
所以方程的解為 x = -3 ± 4i

按 RCL C、RCL M 分別會顯示頂點 x、y (最大/最小點)座標的數值。
若果包含綠色程式碼,程式執行完成後,按 RCL A、RCL B 分別會顯示兩個根的數值,
注意: 若果程式在comp Mode之下輸入,根又是複數(非實數根),計數機會出現Math error,不過
頂點的坐標依然會被儲存在記憶C及M之中。

一元二次方程式(I)

一元二次方程式(I)
更新日期: 2011年4月13日
這個程式可解一元二次方程(包括複數根)、亦可以計二次函數的最大/最小值及其對應的x值。另外若果輸入數據為整數(或分數)及答案為有理數時,答案會以分數形式表示,建議將計數機預先設定為假分數形式表示(按 SHIFT SETUP → → 2  )。
注意:若果你不用計複數根,為被免混淆及使用方便,建議輸入程式時選用COMP 模式。若要計複數根, 輸入程式時請選用複數模式(選擇新程式位置後按 2 選用CMPLX模式),當執行程式時,程式會自動進入複數模式。
注意 : 若果不想記存兩根,程式中綠色部份可以不輸入。
程式 (共42 或 38 bytes,使用記憶為A, B, C及M):
?→A: ?→B: ?→M: - B┘(2A→C: AC2M-:
C+√( -M┘A→A◢ 2C - Ans→B




例題1: 解 x2 - 7x + 12 = 0
按 Prog 1  再按 1 EXE - 7 EXE 12 EXE (顯示第一個實數根為4) EXE (顯示第二個實數根為3)
∴ x = 4 或 x = 3
 
例題2: 解 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)
所以方程的解為 x = -3 ± 4i

按 RCL C、RCL M 分別會顯示頂點 x、y (最大/最小點)座標的數值。
若果包含綠色程式碼,程式執行完成後,按 RCL A、RCL B 分別會顯示兩個根的數值,
注意: 若果程式在comp Mode之下輸入,根又是複數(非實數根),計數機會出現Math error,不過
頂點的坐標依然會被儲存在記憶C及M之中。