許多整數計算的觀念,對應一個多項式計算的觀念。
處理多項式計算的核心工具之一就是因式分解。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);如果想要做多項式除法,得到多項式的商和餘,可以用 quo( ) 和 rem( )。例如
lcm(x^2-x-2, x^2-2*x-3);
quo(x^3+2*x^2+x+1, x-4, x);quo( ) 和 rem( ) 都需要三個參數。第一個是被除式, 第二個是除式,第三個是未知數的名字。 我們需要指定一個未知數的名字,那是因為,不論被除式或除式, 都可能含有兩個以上的未知數。例如
rem(x^3+2*x^2+x+1, x-4, x);
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 無法回應。
習題