一元三次方程(I)
程式可以解一元三次方程式,若果答為分數(有理數),本程式較第(II)版有較大機會可直接得出分數答案,建議將計數機預先設定為假分數形式表示(按 SHIFT SETUP → → 2 )。
第二個程式只能計算實根,若果有學習過複數的朋友或需要計算複數根,請使用第 一個程式。
程式更新日期: 2011年12月29日
注意 : 若果不需要記存答案,程式中綠色部份可以不輸入。
第一個程式 (複數版 126 或 124 bytes,使用記憶A、B、C及M)
程式需要在 CMPLX 模式下執行,因此在選擇新程式位置後,按 2 選用CMPLX模式。
?→A: ?→B: - B┘(3A→B: ?→C: C┘A→C: ?→M:
B3 - BAns┘2 - M┘(2A→M: √( ( C┘3 - B2)3 + Ans2M+:
If Ans=Conig( Ans: Then 3√( M) + 3√( M - 2Ans:
Else 2 3√(Abs( M ) ) cos ( 3-1arg( M: IfEnd: Ans + B→A◢
3B - Ans→M: M┘2 + √(AM - C + M2┘4M- →B◢ M
第二個程式 (128 或 130 bytes 實數版 (Comp模式))
程式需要在 COMP 模式 (實數) 下執行,因此在選擇新程式位置後,按 1 選用COMP模式。
?→A: ?→B: ?→C: ?→M: - B┘(3A→B: C┘A→C: BCM+:
B3 - M┘(2A→M: B2 - C┘3→D: M2 - Ans3:
If 0>Ans: Then 2 √( D ) cos( 3-1 cos-1( M÷√( D3: Else √( AnsM+:
3√(M )+ 3√( M - 2 Ans: IfEnd: Ans + B→A◢ 3B - Ans→M:
M┘2 + √(AM - C + M2┘4 M- →B◢ M
另一個複數根版本程式 (可保留輸入係數於記憶A, B, C及D)
程式由網友 roviury 提供。
注意 : 沒有記存最初的兩根,第三根則儲存在記憶M。
第三個程式 (複數版 123 bytes)
程式需要在 CMPLX 模式下執行,因此在選擇新程式位置後,按 2 選用CMPLX模式。
?→A: ?→B: ?→C: ?→D:
9A(BC - 3AD)┘2 - B3→M: √( M2 + ( 3AC -
B2)3M+:
If Ans=Conig( Ans: Then 3√( M) +
3√( M - 2Ans:
Else 2 3√(Abs( M ) ) cos ( 3-1arg(
M: IfEnd:
(Ans - B)┘(3A◢ - B┘A - Ans→M: M┘2:
Ans + √(- 3 Ans2 - BM┘A - C┘A M-◢ M
例題1: 解 3x3 - 5x2 + x - 4 =0
按 Prog 1 再按 3 EXE - 5 EXE 1 EXE - 4 EXE (顯示第一個根為1.86977)
EXE (第二個程式出現 Math ERROR,而第一個程式右上角出現R<=>I,表示為複數解)
(顯示第二個根實數部為 - 0.101554)
Shift Re<=>Im (顯示第 二個根虛數部為 0.838323 i)
EXE (顯示第三個根的實數部為 - 0.101554)
Shift Re<=>Im (顯示第 三個根虛數部為 - 0.838323 i)
例題2: 解 2x3 - x2 - 72x + 36 =0
按 Prog 1 再按 2 EXE - 1 EXE - 72 EXE 36 EXE (顯示第一個根為6)
EXE (顯示第二個根為 1/2) EXE (顯示第 三個根為 -6)
例題3: 解 x2 - 7x + 12 = 0 (一元二次方程)
方程可以寫成 x3 - 7x2 + 12x = 0 (其中捨去一個 x=0 的解)
按 Prog 1 再按 1 EXE - 7 EXE 12 EXE 0 EXE(顯示第一個實數根為4)
EXE (顯示第二個實數根為3) EXE (顯示第三個根為0 (捨去))
註1: 第一個程式執行完成後,可按 RCL A、RCL B 及RCL M分別會顯示三個根的數值。 第一個程式若沒有綠色程式碼,第一個根及第三個根記存在記憶A及M中,第二個根沒有記存,若為複數根可以參考第三個根,因為第二個根與第三個根有共軛複數的關係。
註2: 輸入的係數為整數或分數較為理想,若果輸入的係數為小數,準確度有可能會減少一點。
註3: 第一個根必為實數根。
註4: 程式用作解一元二次方程時,要捨去其中一個0的解,另外這個0的解有可能因計數機的誤差而出現一個很小的數值。
返回 CASIO fx-50FH 及 fx-50F PLUS 程式集