如何求多项式的公共根:两种主流解法
如何求多项式的公共根,主流有辗转相除法求最大公因式、结式消元法两套方案,辗转相除法适合一元多项式,算出最大公因式后,公因式的根就是公共根;结式消元法适合二元及多元多项式方程组,构造结式行列式求解,两种方法都只能在复数域内保证一定找到全部公共根,有理数域、整数域下仅能得到有理公共根,不能直接判定复数根是否存在,遇到重根时,要额外对最大公因式继续求导分解,区分单根与重根。
一元多项式公共根求解
你拿到两个一元多项式f(x)、g(x),优先用辗转相除法求最大公因式d(x),这个运算和整数辗转相除逻辑一致,用次数高的多项式除以次数低的,得到余式,再用除式除以余式,反复做带余除法,直到余式为零,最后一个非零余式就是最大公因式。d(x)次数大于0时,d(x)=0的全部根就是f和g的公共根;d(x)是非零常数,代表两个多项式没有公共根。
不要直接联立方程强行试值,次数偏高时试根效率很低,还容易漏掉无理根、复数根。有理根仅能借助有理根定理做辅助检验,有理根定理指出整系数多项式有理根p/q满足p整除常数项,q整除首项系数,这个定理只筛有理候选根,不能覆盖全部公共根。
| 方法 | 适用对象 | 优势 | 局限 |
|---|---|---|---|
| 辗转相除法 | 一元多项式 | 计算流程固定,可笔算、可软件实现 | 多元多项式无法直接使用 |
| 结式消元法 | 二元多项式方程组 | 消去一个变量,转化为一元方程 | 行列式计算量大,高次易出现计算误差 |
二元多项式公共根求解
二元多项式f(x,y)=0、g(x,y)=0求公共根,选用结式法,固定其中一个变量当作参数,构造西尔维斯特结式,结式等于0是方程组存在公共根的充要条件。解出结式方程得到一个变量的取值,再代回原多项式,解出另一个变量的对应取值,配对之后就是方程组的公共根。
结式为0仅说明存在公共根,得到单变量解之后,每一个解都要回代原两个多项式核验,部分解是消元过程引入的增根,必须剔除,增根不会同时满足两个原始多项式等式。
公共根属于代数几何基础内容,高等代数教材里默认讨论范围是复数域,依据代数基本定理,n次复系数多项式恰好有n个根(计重数)。
重根处理要单独操作。
如果d(x)存在重根,d(x)和它的导数d’(x)继续求最大公因式,得到的公因式对应d(x)里面的重根因子,拆分之后就能区分公共根的重数,重根会同时是f(x)、g(x)的重根,重数由d(x)里面因子的次数决定。
该方法的适用边界是,辗转相除法、结式法只适用于系数在数域上的多项式,系数取自环、模这类代数结构时,这套求公共根的流程不再成立,不能直接照搬计算。
多个一元多项式求公共根,可以依次两两求最大公因式,先算f1、f2的最大公因式,再拿结果和f3求最大公因式,持续迭代,最终公因式的根就是全部多项式的公共根,中途得到常数公因式,就可以直接停止运算,判定不存在公共根。
