一元三次方程(II)

程式更新日期: 2010年3月18日

第一個程式參考了網友roviury提供意見進行修改。

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

第一個程式 (126 bytes 實數版,使用記憶為A, B, C及M)

?→A: ?→B: ?→C: ?→M: B┘- 3A→B: BCM+:

B3 - M┘(2A→M: B2 - C┘(3A→C: M2 - C3→A:

A>0 => √AM+ => B + 3M + 3(M - 2Ans◢

√-A: 2√C→C => 3-1 cos-1 8M┘C3→D:

B + C cos D◢ B - C cos( D + 60o◢ B - C cos( D - 60o

 

第二個程式 (130 / 126 bytes 複數版)

注意 : 若果不需要記存答案,程式中綠色部份可以不輸入 ,5!o是按 5 SHIFT x! SHIFT Ans 1

程式需要在 CMPLX 模式下執行,因此在輸入程式前請先按 Mode 2。

?→A: ?→B: B┘- 3A→B: ?→C: ?→M: BCM+:

B3 - M┘(2A→M: B2 - C┘(3A: √(M2 - Ans3M+:

Ansi => 3Abs M∠3-1arg M→M => Conjg M→C => Goto 0:

3(M + 2Ansi→C: 3M→M: Lbl 0: M + C + B→A◢

1∠5!o: M ÷ Ans + CAns + B→C◢ 3B - A - Ans→B

 

例題1: 解 3x3 - 5x2 + x - 4 =0

按 Prog 1  再按 3 EXE - 5 EXE 1 EXE - 4 EXE (顯示第一個根為1.86977)

EXE (第一個程式出現 Math ERROR,而第二個程式右上角出現,表示為複數解)

(顯示第二個根實數部為 - 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 (顯示第二個根為 0.5) EXE (顯示第三個根為 -6)

 

例題3: 解 x3 + 3x2 + 3x + 1 =0

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

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

 

例題4: 解 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: 輸入的係數為整數或分數較為理想,若果輸入的係數為小數,準確度有可能會減少一點。

註2: 第一個根必為實數根。

註3: 程式用作解一元二次方程時,要捨去其中一個0的解,另外這個0的解有可能因計數機的誤差而出現一個很小的數值。

註4: 若三根均為實數,答案會由大至小順序顯示出現。

返回 fx-3650P及SC-185程式集

Free Web Hosting