3.3.4 多项式的代数运算在实际的许多运算中,需要对多项式进行的运算仅是前一节讨论的结构运算. 然而,当用户进行关于多项式的更高深 的代数运算时,就必须使用 本节讨论的代数运算. 应当认识到本节讨论的大多数运算仅对具有整数指数和有理数系数的多项式 有效. 多项式的化简 给定两个多项式 的次数. PolynomialQuotient 给出商 ,而 PolynomialRemainder 给出余项 . 这里给出 的 余项
Out[1]= |  |
的商, 去掉了余项
Out[2]= |  |
这里又回到最初的表达式
Out[3]= |  |
此处结果依赖于多项式被看作是关于 x 还是关于 y 的
Out[4]= |  |
PolynomialGCD[ , ] 的最高次多 项式. 它类似于整数函数 GCD. PolynomialGCD 给出两个多项式的最大公因式
Out[5]= |  |
PolynomialMod 基本上类似于关于整数的函数 Mod. 当模数 为整数时, PolynomialMod[poly, m] 简单地对 poly 模 m 化简每个系数. 如果 m 是多项式, 那么PolynomialMod[poly, m] 通过从 poly 中减去 m 的适当的倍数 q m, 得到次数尽可能低的多项式. 乘子 q 本身可以是多项式,它其次数总是小于 poly 的次数. PolynomialMod 产生一个其次数和主要系数都是尽可能小的多项式. 这是模 结果是二者相除的余式
Out[6]= |  |
在此情形下,PolynomialMod 和 PolynomialRemainder 给出不同的结果
Out[7]= |  |
PolynomialMod 和 PolynomialRemainder 的主要差别是前者通过减和乘多项式来 工作,而后者通过除法获得结果. 另外,PolynomialMod 允许在同一次用 几个模来化简. 一个典型的情形是以一个多项式和一个整数为模来化简. 这里按模 和 2 化简多项式 
Out[8]= |  |
函数 Resultant[ , , x] 的乘积给出. 对任何多项式对,其结式总是它们的系数的多项式. 通过考察 何时结式为零,人们能区分哪些参数值使二多项式有相同的根. 当列表 个相同的根. 这里是二元多项式关于 y 的结式. 仅当 x 的值使结式为零时,二多项式关于 y 有相同的根
Out[9]= |  |
Groebner 基出现在许多现代代数算法和应用中. 函数 取一个多项式集合, 并把该集合化成标准形,使得从中能方便地推导出许多性质. 一个重要特征是从 GroebnerBasis 获得的多项式集合总是恰好有同样的最初多项式 集合的相同根的集合. 是多余的,所以不出现在 Groebner 基中
Out[10]= |  |
多项式 1 没有根,表明最初的多项式没有相同的根
Out[11]= |  |
这里的多项式是展开的,现在能看出恰好有 5 个相同的根
Out[12]= |  |
PolynomialReduce[poly,  , , ... ,  , , ... ] 生成一个式多式列表 ,使得b是最小的,且 恰好是 poly. 这里根据 来表示 , 留下仅依 赖于 a 的系数
Out[13]= |  |
分解多项式因式的函数 Factor, FactorTerms 和 FactorSquareFree 进行不同程度的多项式分解. Factor 在整数上进行完全分解. FactorTerms 提取多项式的 "容度". FactorSquareFree 提出任何多重因式. 这里是展开形式的一个多项式
Out[14]= |  |
FactorTerms 仅提取不依赖于 x 的因式 2
Out[15]= |  |
FactorSquareFree 分解出 2 和 (1+x)^2,但留下其余的不分解
Out[16]= |  |
Factor 进行完全分解,恢复最初的形式
Out[17]= |  |
当编写含有多项式的程序时,用户会发现取出标准形式的多项式的部件是 方便的. 函数 FactorList 给出多项式的所有因子和相应指数的列表. 该列表的第一个单元素总是多项式的数字因式. FactorList 返回的形式类似于由 FactorInteger 生成的形式. 这是前一例子中多项式的因式列表. 其中每个元素给出因式及相应的指数
Out[18]= |  |
分解具有复系数的多项式的因式 Factor 和相关函数通常只处理具有普通整数或有理数系数的多项式. 然而,当设置选项 GaussianIntegers->True,那么 Factor 将允许多项式具有实部 和虚部均为有理数的复数系数. 这使得更强的因式分解能够进行. 这个多项式在普通整数下是不可化简的
Out[19]= |  |
当高斯整数系数被允许时,该多项式能分解因式
Out[20]= |  |
割圆多项式 割圆多项式在各种代数算法中作为 "基本多项式" 出现. 割圆多项式的定义为: 互素的正整数. 这是割圆多项式
Out[21]= |  |
的因 式中
Out[22]= |  |
分解多项式 因式分解是把多项式分成简单形式的一种重要方法. 另外一种完全不同的方法是 分解 (decomposition). . 的多项式的复合. 这是一个分解的简单例子,多项式 可以被写为 ,其中 是 
Out[23]= |  |
这是两个多项式函数 这里给出两个函数的复合
Out[25]= |  |
Decompose 恢复最初的函数
Out[26]= |  |
Decompose[poly, x] 以外的变量,但 Decompose 生成的多项式序列都被看作是 的函数. 不同于因式分解. 多项式的分解不是完全唯一的. Mathematica 遵守这个惯例:将常数项并入到由 Decompose 生成的一列多项式 的第一个中. 生成插值多项式 这里生成通过指定的三个点的二次多项式
Out[27]= |  |
当 x=0 时多项式的值为 2
Out[28]= |  |
|