一元四次方程(III) Quartic Equation III
程式由網友 roviury 提供。
更新日期: 2012年1月15日
這個程式版本只可以計算實數係數的一元四次方程。
程式需要在 CMPLX 模式下執行,因此在選擇新程式位置後,按 2 選用CMPLX模式。
注意: 5!o是按 5 SHIFT x! SHIFT Ans 1。
程式一(實數係數版本,221 bytes)
?→A: ?→B: ?→C: ?→D: ?→M: B┘(4A→B: C┘A - 6B2→C:
D┘A - 4B3 - 2BC→D: M┘A - B( B3 + BC + D→M: C2
- 4M→X:
8C3 - 9┘2( 2CX+3D2→Y: 4C2 - 3X→M: √( Y2
- M3: Ans - Y - 2Ans( Ans=Y→Y:
3√( Abs( Ans => Ans∠( 3-1arg( Y ) + 5!o (πr = arg( Y→Y: Abs(Ans => Y + M┘Y:
√( ( Ans - 2C)┘3→A: √( X→X: A => D┘A→X: For -1→D to 1 Step 2: √( 2DX - 2C-A2→M:
( M - DA )┘2 - B◢ Ans - M◢ Next
程式二(複數係數版本,259 bytes)
?→A: ?→B: ?→C: ?→D: ?→M: B┘(4A→B: C┘A - 6B2→C:
D┘A - 4B3 - 2BC→D: M┘A - B( B3 + BC + D→M: C2
- 4M→X:
8C3 - 9┘2( 2CX+3D2→Y: 4C2 - 3X→M: √(
Abs(Y2 - M3 => Ans∠(.5arg(Y2
- M3:
Ans - Y - 2Ans( Ans=Y→Y: 3√( Abs( Ans => Ans∠( 3-1arg( Y→Y:
Abs(Ans => Y + M┘Y: ( Ans - 2C)┘3→A: √( Abs(A
=> Ans∠( . 5arg(A→A:
√( Abs(X => Ans∠(
. 5arg(X→X: Abs(A => D┘A→X:
For -1→D to 1 Step 2: 2DX - 2C - A2→M: √(Abs(M => Ans∠(
. 5 arg(M→M: ( M - DA )┘2 - B◢
Ans - M◢ - A→A: - X→X: Next
例題1: 解 2x4 - 11x3 - 12x2 + 71x + 70 = 0
按 Prog 1 再按 2 EXE - 11 EXE - 12 EXE 71 EXE 70 EXE (顯示第一個根為 5) EXE (顯示第二個根為 3.5)EXE (顯示第三個根為-1)
EXE (顯示第四個根為 -2)
計算完結後按AC 或 EXE 終止程式
例題2: 解 3x4 - 5x3 + x2 - 4x =0
按 Prog 1 再按 3 EXE - 5 EXE 1 EXE - 4 EXE
0 EXE (顯示第一個根為1.869774)
EXE (顯示第二個根為 0)
EXE (顯示第三個根實數部為 - 0.101554)
Shift Re<=>Im (顯示第三個根虛數部為 0.838323 i)
EXE (顯示第四個根的實數部為 - 0.101554)
Shift Re<=>Im (顯示第四個根虛數部為 - 0.838323 i)
計算完結後按AC 或 EXE終止程式
例題3: 解 (1+2i)x4 + (3+4i)x3 + (5+6i)x2 + (7+8i)x + 9 + 10i = 0
只適用於第二個程式
按 Prog 1 再按 1 + 2i EXE 3 + 4i EXE 5 + 6i EXE 7 + 8i EXE
9 + 10i EXE (顯示第一個根為0.338372)
Shift Re<=>Im (顯示第一個根虛數部為 1.525119 i)
EXE (顯示第二個根為 0.190034)
Shift Re<=>Im (顯示第二個根虛數部為 -1.423764 i)
EXE (顯示第三個根實數部為 - 1.318397)
Shift Re<=>Im (顯示第三個根虛數部為 1.043530 i)
EXE (顯示第四個根的實數部為 - 1.410008)
Shift Re<=>Im (顯示第四個根虛數部為 - 0.744885 i)
計算完結後按AC 或 EXE 終止程式