一元三次方程(I)

程式可以解一元三次方程式,若果答為分數(有理數),本程式較第(II)版有較大機會可直接得出分數答案,建議將計數機預先設定為假分數形式表示(按 SHIFT SETUP → → 2  )。

第二個程式只能計算實根,若果有學習過複數的朋友或需要計算複數根,請使用第 一個程式。

程式更新日期: 2015年4月25日

注意 : 若果不需要記存答案,程式中綠色部份可以不輸入。

第一個程式 (複數版 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: BCM+: C┘A→C:

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-3650P II、fx-50FH II及fx-50F PLUS 程式集