Maple 教材:多項式

許多整數計算的觀念,對應一個多項式計算的觀念。

處理多項式計算的核心工具之一就是因式分解。Maple 函式是 factor( ),例如

factor(x^2-1);
正如眾所周知的,分解成 (x-1)(x+1)。 反過來,做多項式的乘法時,Maple 經常不會自動幫您展開。例如
(x^2 - 1) * (x^2 + 2*x);
Maple 只是幫您排版,以排版型式印出來而已。 如果想要展開,要用 expand( ) 函式。例如
expand((x^2 - 1) * (x^2 + 2*x));
或者
p := (x^2 - 1) * (x^2 + 2*x);
expand(p);

如果我們只考慮係數為有理數的多項式,則因式分解就好比整數的因數分解。 您可以用 irreduc( ) 函式詢問某個有理係數多項式是否 不可 分解為兩個有理係數多項式。例如

irreduc(x^2-1);
回應 false,因為 x2 - 1 可以分解成兩個有理係數多項式: (x-1)(x+1)。 但是
irreduc(x^2-2);
則是 true。因為,雖然它可以分解成 (x - sqrt(2))(x + sqrt(2)) 但是 sqrt(2) 並非有理數,所以不算。當然
irreduc(x^2+1);
也是 true。

計算兩個多項式之最大公因式和最小公倍式的函式分別是 gcd( ) 和 lcm( )。例如

gcd(x^2-x-2, x^2-2*x-3);
lcm(x^2-x-2, x^2-2*x-3);
如果想要做多項式除法,得到多項式的商和餘,可以用 quo( ) 和 rem( )。例如
quo(x^3+2*x^2+x+1, x-4, x);
rem(x^3+2*x^2+x+1, x-4, x);
quo( ) 和 rem( ) 都需要三個參數。第一個是被除式, 第二個是除式,第三個是未知數的名字。 我們需要指定一個未知數的名字,那是因為,不論被除式或除式, 都可能含有兩個以上的未知數。例如
quo(x^2 + y^2, x+y, x);
所得的商是 x - y 但是
quo(x^2 + y^2, x+y, y);
所得的商是 y - x。

roots( ) 函式企圖找出一個多項式的有理數根。例如

roots(x^2-x-2, x);
其中第一個參數是多項式,第二個參數是指對哪個變數求解。 回應的答案都以 [r, m] 型式出現。其中 r 是多項式的根,而 m 是 r 的重根次數。 但是
roots(x^2-2, x);
沒有有理數根,所以 Maple 無法回應。

習題

[BCC16-B]
單維彰 (2001/10/17) ---
[Prev] [Next] [Up]