三次函數因式分解

網友 roviurySkwai 提供修改意見。

更新日期: 2014年1月10日

程式可以將三次函數分解,三次函數的形式為 ax3 + bx2 + cx + d 或 ax3 + bx2y + cxy2 + dy3,程式會將函數先分解為一個一次式及一個二次式,若果二次式可以分解,則會再分解二次式為兩個一次式及一個常數因子。

程式一 (317 bytes)

?→A: ?→B: -B┘(3A→B: ?→C: ?→D:

B3 - (BC + D)┘(2A→M: B2-C┘(3A: M2 - Ans3→Y:

Fix 0: 0>Y => Goto 0: B + 3√( M + √( Y ) ) + 3√( M - √( Y→D: 1→M: Goto 1:

Lbl 0: 2 3√( Pol( M , √( -Y→X: Y÷3→Y: 3→M: Lbl 4: B + Xcos( Y+ 5!oM→D:

Lbl 1: D => 1≠Rnd(AD)÷(AD => M - 1→M: Ans => Goto 4: Norm 1: M-1: 1→M:

Fix 0: Lbl 5: D => 1≠Rnd(MD)÷(MDM+ => Goto 5: Norm 1: M◢ -DM→X◢ A ÷ M→A◢

AD-3AB→B◢ M-1(C - XAns→C◢ -B┘(2A→B: B + √( B2 - C┘A→X:

Fix 0: AX = Rnd( AX: Norm 1: log( Ans: For 0→D To 1: 1→M: Fix 0: Lbl 3:

XM≠Rnd(XMM+ => Goto 3: Norm 1: M◢ - XAns◢ 2B - X→X: A÷M→A: Next

 

程式二 (269 bytes,速度較慢)

?→A: ?→B: -B┘(3A→B: ?→C: ?→D:

B3 - (BC + D)┘(2A→M: B2-C┘(3A: M2 - Ans3→Y:

√( Abs(Y: If 0>Y: Then 2 3√( Pol( M , Ans→X: 4→M:

Lbl 1: 1M-: B + Xcos( Y÷3+ 5!oM→D: Msin( ADπr => Goto 1:

Else B + 3√( M + Ans ) + 3√( M - Ans→D: IfEnd:

0 P sin( ADπr)^(9→M: While sin(MDπr)^(9: 1M+: WhileEnd: M◢

-MD→X◢ A÷M→A◢ AD-3AB→B◢ M-1(C - XB→C◢

-B┘(2A→B: B+√( B2 - C┘A →X:

For 0→D To 0 P sin(AXπr)^(9: MM-: Lbl 3: 1M+: sin(MXπr)^(9 => Goto 3:

M◢ - MX◢ 2B - X→X: A÷M→A: Next

 

例題1: 因式分解 3x3 - 7x2 + 29x - 9

按 Prog 1 再按 3 EXE - 7 EXE 29 EXE - 9 EXE (顯示一次因子的x係數為 3)

EXE (顯示一次因子的常數項為 -1)

EXE (顯示二次因子的x2係數為 1)

EXE (顯示二次因子的x係數為 -2)

EXE (顯示二次因子的常數項為 9)

EXE (出現Math ERROR表示二次因子不能再分解)

所以 3x3 - 7x2 + 29x - 9 = (3x - 1)(x2 - 2x + 9)

 

例題2: 因式分解 30x3 + 31x2 - 25x - 6

按 Prog 1 再按 30 EXE 31 EXE - 25 EXE - 6 EXE (顯示一次因子的x係數為 3)

EXE (顯示一次因子的常數項為 - 2)

EXE (顯示二次因子的x2係數為 10)

EXE (顯示二次因子的x係數為 17)

EXE (顯示二次因子的常數項為 3)

EXE (顯示第二個一次因子的x係數為 5)

EXE (顯示第二個一次因子的x常數項為 1)

EXE (顯示第三個一次因子的x係數為 2)

EXE (顯示第三個一次因子的x常數項為 3)

EXE (顯示常數因子1)

所以

30x3 + 31x2 - 25x - 6 = (3x - 2)(10x2 + 17x + 3)

30x3 + 31x2 - 25x - 6 = 1(3x - 2)(5x + 1)(2x + 3) = (3x - 2)(5x + 1)(2x + 3)

 

例題3: 因式分解 8x3 + 27y3

按 Prog 1 再按 8 EXE 0 EXE 0 EXE 27 EXE (顯示一次因子的x係數為 2)

EXE (顯示一次因子的y係數為 3)

EXE (顯示二次因子的x2係數為 4)

EXE (顯示二次因子的xy係數為 - 6)

EXE (顯示二次因子的y2係數為 9)

EXE (出現Math ERROR表示二次因子不能再分解)

所以 8x3 + 27y3 = (2x + 3y)(4x2 - 6xy + 9y2)

 

註: 程式亦可以用作分解二次函數,依次輸入係數,最後的數據輸入0,只要將答案其中一個中 x + 0 的因子捨去即可。

例題4: 因式分解 x2 - 7x + 12

按 Prog 1 再按 1 EXE - 7 EXE 12 EXE 0 EXE (最後輸入0,顯示一次因子的x係數為 1)

EXE (顯示一次因子的常數項為 - 4)

EXE (顯示二次因子的x2係數為 1)

EXE (顯示二次因子的x係數為 -3)

EXE (顯示二次因子的常數項為 0)

EXE (顯示第二個一次因子的x係數為 1)

EXE (顯示第二個一次因子的x常數項為 - 3)

EXE (顯示第三個一次因子的x係數為 1)

EXE (顯示第三個一次因子的x常數項為 0)

EXE (顯示常數因子1)

所以 x2 - 7x + 12 = (x - 4)(x - 3)

 

註1: 注意輸入的係數必須為整數,否則計算不成立。

註2: 若果程式出現math ERROR即表示不能再分解。

註3: 第一個係數的數值越大,計算的時間可能會越長。

 

返回 CASIO fx-50FH 及 fx-50F PLUS 程式集

Free Web Hosting