什么是实系数多项式式的零点判定定理?

摘要(可以不读):本文详细研究了利用多项式的系数直接判定两多项式公共零点个数(即最大公因式次数)的方法,并利用广义Sylvester结式给出了最大公因式的显式表达式,还用同样的方法给出了计算多项式带余除法的商和余数的显式表达式,对分析两多项式公共零点问题有理论意义。设 f,g 分别为域 k 上的两个多项式,表示为 \displaystyle f(x)=\sum_{i=0}^m a_ix^i,g(x)=\sum_{i=0}^nb_ix^i ,其中 a_m,b_n\ne 0 ,那么它们的Sylvester矩阵定义为一个 (m+n) 阶方阵: ~~~~~~~~~~~~~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{n列}~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~}^{m列}\\ \text{Syl}(f,g)= \begin{bmatrix} a_0&&&&b_0\cr \vdots&a_0&&&b_1&\ddots\cr \vdots&\vdots&\ddots&&\vdots&\ddots&b_0\cr a_m&\vdots&&a_0&\vdots&&b_1\cr &a_{m}&&\vdots&b_n&&\vdots~\cr &&\ddots&\vdots&&\ddots&\vdots~\cr &&&a_m&&&b_n\cr \end{bmatrix}\\Sylevester矩阵的行列式称为 f,g 的Sylvester结式(Sylvester Resultant),记为 \text{Res}(f,g) . 我们有经典结论: f,g 有公共零点等价于 \text{Res}(f,g)=0 . 这就给出了通过两多项式的系数判定其是否有公共零点的通用方法. 那么,更进一步,我们能否把这个零点也表示出来呢?当然,如果 f,g 有不止一个公共零点,因为这些零点是不可区分的,所以不可能单独表示出某个零点,那么能不能用其他方式表示这些零点呢?经典的Euclid算法给出了一个答案. 通过施行Euclid算法,我们可以计算出 f,g 的最大公因式 \gcd\{f,g\} [1],并且由于算法只涉及到了加法和乘法,我们知道 \gcd\{f,g\} 的系数是 f,g 的系数的有理函数,而 \gcd\{f,g\} 的零点自然就是 f,g 的公共零点. 对于两个具体的多项式,施行Euclid算法自然是方便的;然而,倘若多项式的系数中含有未知数,甚至连多项式的次数都不确定,那么施行Euclid算法就会遭遇困难,我们更难以从中得到Sylvester结式这样方便的判别式. 但Euclid算法的确给了我们这样的信念:既然 \gcd\{f,g\} 的系数是 f,g 的系数的有理函数[2],那么求出这些函数的表达式就是有希望的. 本文便利用线性代数方法回答这一问题. 本文所用的线性代数知识不超过大一难度,读者可以放心阅读. 定义(广义Sylvester矩阵):设 f,g 是域 k 上的两个多项式,次数分别为 m,n . 给定两个整数 i,j ,满足 0\le j\le i\le \min\{m,n\}-1 ,那么 f,g 的 (i,j)-Sylvester 矩阵定义为 \text{Syl}(f,g) 删去第 n,(n-1),\dots,(n-i+1),m+n,(m+n-1),\dots,(m+n-i+1) 这 2i 列、末尾 i 行以及前 i+1 行中除第 j+1 行以外的行所得矩阵,记作 \text{Syl}_{i,j}(f,g) ,它是一个 m+n-2i 阶方阵. \text{Syl}_{i,j}(f,g) 的行列式记作 \text{Res}_{i,j}(f,g) ,称为 f,g 的 (i,j) 广义结式. \text{Res}_{0,0}(f,g) 就是普通的结式.
我们有如下结论:(1) 如果 f,g 至少有 r+1 个公共零点(即 \deg\gcd\{f,g\}\ge r+1 ),那么 \text{Res}_{r,r}(f,g)=0 ; (2) f,g 至少有 r+1 个公共零点的充要条件是 \text{Res}_{i,i}(f,g)=0~(\forall i\le r) ; (3) 如果 f,g 恰有 r 个公共零点,且 r\le\min\{m,n\}-1 ,那么这些零点满足方程 \displaystyle \sum_{i=0}^r \text{Res}_{r,i}(f,g)x^i=0 (由条件,首项系数 \text{Res}_{r,r}(f,g)\ne0 ). 事实上, \displaystyle \sum_{i=0}^r \text{Res}_{r,i}(f,g)x^i 正是 f,g 的最大公因式. 如果 r=\min\{m,n\} ,那么 f,g 之间有倍数关系,这时最大公因式是明显的. 记号约定:给定整数 d ,用 \mathcal P^d(x) 表示 k[x] 中次数不超过 d 的多项式所构成的向量空间. 当 d<0 时仅包含零多项式. 给定整数 i,j ,满足 i\ge j ,用 P^{i}(x)/\mathcal P^{j}(x) 表示 \{0\}\cup \{P(x)|j+1\le\deg P\le i\} ,即 P^{i}(x) 模掉 \mathcal P^{j}(x) 的商空间的一个同构空间,其维数为 i-j . 当 j<0 时, \mathcal P^j(x) 视为零空间. \mathcal P^i(x)\times\mathcal P^j(x) 表示两个空间的直积,即 \{(p(x),q(x))|p(x)\in\mathcal P^i(x),q(x)\in\mathcal P^j(x)\} ,这是一个 i+j+2 维的向量空间. \mathcal P^d(x) 上的自然基是指 (1,x,\dots,x^d) .\mathcal P^i(x)\times\mathcal P^j(x) 上的自然基是指 (1,0),\dots,(x^i,0),(0,1),\dots,(0,x^j) . 证明:先来简要回顾“f,g 有公共零点等价于 \text{Res}(f,g)=0 ”的证明. 考虑线性映射 S:\mathcal P^{n-1}(x)\times\mathcal P^{m-1}(x)\to \mathcal P^{m+n-1}(x), (p(x),q(x))\mapsto p(x)f(x)+q(x)g(x) , S 在自然基下的矩阵就是 \text{Syl}(f,g) [3]. 由Bezout定理, \text{im}(S) 中的元素都是 \text{gcd}\{f,g\} 的倍数. 并且,对于任意的多项式 c(x) ,只要 \deg(c(x)\gcd\{f,g\})\le m+n-1 就存在 p,q 满足 \deg p\le n-1,\deg q\le m-1 使得 p(x)f(x)+q(x)g(x)=c(x)\gcd\{f,g\} . 由此可知 \text{rank}(S)=\dim\text{im}(S)=m+n-\deg\gcd\{f,g\} ,从而 \dim\ker S=\deg\gcd\{f,g\} . 特别地, f,g有公共零点\Leftrightarrow \deg\gcd\{f,g\}\ge 1\Leftrightarrow \dim\ker S\ge 1\Leftrightarrow \det S=0 . 这就完成了证明. 受到上述证明的启发,对于 0\le i\le \min\{m,n\}-1 ,我们来考虑 S 在 \mathcal P^{n-i-1}(x)\times \mathcal P^{m-i-1}(x) 上的限制,定义为 S_i:\mathcal P^{n-i-1}(x)\times\mathcal P^{m-i-1}(x)\to \mathcal P^{m+n-i-1}(x)~,S_i(p,q)=S(p,q) . 此时, S_i 在自然基下的矩阵就是 \text{Syl}(f,g) 删去末尾 i 行以及第 n,(n-1),\dots,(n-i+1),m+n,(m+n-1),\dots,(m+n-i+1) 列所得的 (m+n-i)\times (m+n-2i) 型矩阵. 不难证明, pf+qg=0 的解是 \cases{p=cg/d\cr q=-cf/d} ,这里 d=\gcd\{f,g\} , c 是任意多项式. 在 S_i 的解空间中, \deg c\le \deg \gcd\{f,g\}-i-1 ,从而 \dim\ker S_i=\max\{\deg\gcd\{f,g\}-i,0\} . 推论: \text{rank}(S_i)=\min\{m+n-\deg\gcd\{f,g\}-i,m+n-2i\} ,从而 S_i 的像就是 \gcd\{f,g\} 的倍数中次数不超过 m+n-i-1 的多项式. 由此可得:\begin{align}f,g至少有r+1个公共零点&\Leftrightarrow \deg\gcd\{f,g\}\ge r+1\cr &\Leftrightarrow \dim\ker S_r\ge 1\cr &\Leftrightarrow S_r的所有m+n-2r阶子式均为0. \end{align} 特别地, S_r 的后 m+n-2r 行构成的子式就是 \text{Res}_{r,r}(f,g) ,这就证明了结论(1). 结论(2)中的必要性也被证明了. S_r 共有 \displaystyle{m+n-r\choose m+n-2r}={m+n-r\choose r} 个非平凡子式,可以用它们来判别 f,g 的共同零点个数,但是它们不是独立的,因此会浪费一些计算量. 事实上,通过简单的自由度分析,我们期望只需要计算 r 个判别式. (然而,这些子式的阶是相同的,因此如果已经知道了 f,g 的共同零点个数,只是为了验证的话,那么计算这些子式或许是方便的). 下面证明结论(2)中的充分性. 事实上,假定 \text{Res}_{i,i}(f,g)=0~,\forall i(0\le i\le r) ,那么对于所有的 i\in\{0,1,\dots,r\} ,都存在不全为零的多项式 p_i,q_i 满足 \deg p_i\le n-i-1~,\deg q_i\le m-i-1 ,且使得 \deg(p_if+q_ig)\le i-1 . (当 i=0 时, p_if+q_ig 就是零多项式)考虑 S_i 在 \mathcal P^{m+n-i-1}(x)/\mathcal P^{i-1}(x) 上的自然投影 S_i^* ,即删除 S_i 的像中次数低于 i 的部分,此时对应的矩阵恰为 S_i 的后 m+n-2i 行所构成的方阵,即 \text{Syl}_{i,i}(f,g) ,由条件知其行列式为 0 ,故 S_i^*(p,q)=0 有非零解 (p_i,q_i) ,那么 S_i(p_i,q_i) 就是次数不高于 i-1 的多项式. 引理:对于每一个 i\in\{0,1,\dots,r\} ,均有 \deg \gcd\{f,g\}\ge i+1 或者 \deg\gcd\{f,g\}\le i-1 . 证明:若 p_if+q_ig=0 ,那么 \dim\ker S_i=\max\{\deg\gcd\{f,g\}-i,0\}\ge 1 ,因此 \deg\gcd\{f,g\}\ge i+1 . 若 p_if+q_ig\ne 0 ,那么它等于 c\gcd\{f,g\} ,其中 c 是非零多项式. 从而 \deg(p_if+q_ig)=\deg(c\gcd\{f,g\})\ge\deg\gcd\{f,g\} . 又因为 \deg(p_if+q_ig)\le i-1 ,所以 \deg\gcd\{f,g\}\le i-1 . 得证. 取 i=0 ,则 \deg\gcd\{f,g\}\ge 1 或者 \deg\gcd\{f,g\}\le -1 (即 \gcd\{f,g\}=0 ),但后者不可能成立,所以 \deg\gcd\{f,g\}\ge 1 . 取 i=1 ,则 \deg\gcd\{f,g\}\ge 2 或者 \deg\gcd\{f,g\}\le 0 ,但后者与 \deg\gcd\{f,g\}\ge1 矛盾,所以 \deg\gcd\{f,g\}\ge 2 . ... ...依此类推,即得 \deg\gcd\{f,g\}\ge r+1 . 性质(2)的充分性得证. 引理也可以表述成: \text{Res}_{i,i}(f,g)=0 的必要条件是 \deg\gcd\{f,g\}\ne i . 于是从 \deg\gcd\{f,g\}\ne0,1,\dots,r 即可推出 \deg\gcd\{f,g\}\ge r+1 . 但是, \deg\gcd\{f,g\}\ne i 并不是 \text{Res}_{i,i}(f,g)=0 的充分条件.(反例随处可见)性质(3)的证明依靠Cramer法则. 设 \deg\gcd\{f,g\}=r\le\min\{m,n\}-1 ,那么 \dim\ker S_r=0,\text{rank}(S_r)=m+n-2r ,从而 \text{im}(S_r)=\{c\gcd\{f,g\}|\deg c\le m+n-2r\} . 下面考虑 S_r 在 \mathcal P^{m+n-r}(x)/\mathcal P^r(x) 上的自然投影 S'_r 并计算 \dim\ker S'_r .
S'_r(p,q)=0\Leftrightarrow \deg S_r(p,q)\le r\Leftrightarrow pf+qg=c\gcd\{f,g\} ,其中 c 是常数. 由于 S_r 列满秩,所以 S_r(p,q)=c\gcd\{f,g\} 的解空间的维数是 1 ,从而 \dim\ker S'_r=1 . 剩下的全部工作就是解方程 S'_r(p,q)=0 . S'_r 在自然基下的矩阵是 (m+n-2r-1)\times(m+n-2r) 型的行满秩矩阵. 由Cramer法则,有解 \displaystyle p(x)=\sum_{i=0}^{n-r-1}(-1)^iD_{i+1}x^i,q(x)=\sum_{i=0}^{m-r-1}(-1)^{n-r+i}D_{n-r+i+1}x^i
, 其中 D_i 表示 S'_r 的矩阵去掉第 i 列后所得矩阵的行列式. (p,q) 有更紧凑的写法: \begin{cases}~~~~~~~~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{n-r列}~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{m-r列}\\ p(x)= \begin{vmatrix} 1&\cdots&x^{n-r-1}&0&\cdots&0\cr a_{r+1}&\cdots&a_{2r-n+2}&b_{r+1}&\cdots&b_{2r-m+2}\cr \vdots&\ddots&\vdots&\vdots&\ddots&\vdots\cr a_m&&a_{m-n+r+1}&b_n&&b_{n-m+r+1}\cr &\ddots&\vdots&&\ddots&\vdots\cr &&a_m&&&b_n \end{vmatrix}\\ ~~~~~~~~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{n-r列}~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{m-r列}\\ q(x)= \begin{vmatrix} 0&\cdots&0&1&\cdots&x^{m-r-1}\cr a_{r+1}&\cdots&a_{2r-n+2}&b_{r+1}&\cdots&b_{2r-m+2}\cr \vdots&\ddots&\vdots&\vdots&\ddots&\vdots\cr a_m&&a_{m-n+r+1}&b_n&&b_{n-m+r+1}\cr &\ddots&\vdots&&\ddots&\vdots\cr &&a_m&&&b_n \end{vmatrix}\\
\end{cases} . 将解 (p,q) 代入 S_r 中,就能求得 \gcd\{f,g\} . 利用行列式展开的性质,可知 \gcd\{f,g\} 的 i 次项系数为 S_r 的第 i+1 行与末尾 m+n-2r-1 行拼成的矩阵的行列式. 即:~~~~~~~~~~~~~~~~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{n-r列}~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{m-r列}\\ \displaystyle \gcd\{f,g\}=\sum_{i=0}^r \begin{vmatrix} a_i&\cdots&a_{i-n+r+1}&b_i&\cdots&b_{i-m+r+1}\cr a_{r+1}&\cdots&a_{2r-n+2}&b_{r+1}&\cdots&b_{2r-m+2}\cr \vdots&\ddots&\vdots&\vdots&\ddots&\vdots\cr a_m&&a_{m-n+r+1}&b_n&&b_{n-m+r+1}\cr &\ddots&\vdots&&\ddots&\vdots\cr &&a_m&&&b_n \end{vmatrix}x^i\\其中的行列式正是 \text{Res}_{r,i}(f,g) ,于是结论(3)得证. 上面的式子也可以写成更紧凑的形式: ~~~~~~~~~~~~~~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{n-r列}~~~~~~~\overbrace{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}^{m-r列}\\ \gcd\{f,g\}= \begin{vmatrix} f(x)&\cdots&x^{n-r-1}f(x)&g(x)&\cdots&x^{m-r-1}g(x)\cr a_{r+1}&\cdots&a_{2r-n+2}&b_{r+1}&\cdots&b_{2r-m+2}\cr \vdots&\ddots&\vdots&\vdots&\ddots&\vdots\cr a_m&&a_{m-n+r+1}&b_n&&b_{n-m+r+1}\cr &\ddots&\vdots&&\ddots&\vdots\cr &&a_m&&&b_n \end{vmatrix}\\在已知解的形式后,验证它们确实满足要求是容易的. 只需要说明:(1) \deg p\le n-r-1~,\deg q\le m-r-1~,\deg d\le r~,d=pf+qg . (2) p,q 不全为零. (3) (在已知 r=\deg \gcd\{f,g\} 的前提下)满足(1)(2)的解必然满足 d=\gcd\{f,g\} . 读者可以自行验证. 我们还有一个遗留问题,即 r=\min\{m,n\} 的情况. 如何判定 g 是否被 f 整除?事实上,我们可以回答一个更一般的问题,即用 f,g 的系数表示出 f 对 g 做带余除法所得的商和余数(当然,假定 \deg f\ge \deg g ). 设带余除法的结果为 f(x)=q(x)g(x)+r(x) ,其中\displaystyle f(x)=\sum_{i=0}^m a_ix^i,g(x)=\sum_{i=0}^n b_ix^i~~(a_m,b_n\ne0). 那么 \displaystyle q(x)=\sum_{i=0}^{m-n}\frac{1}{(b_m)^{i+1}}\text{Res}_{[i]}(f,g)x^{m-n-i},r(x)=\frac{1}{(b_m)^{m-n+1}}\sum_{i=0}^{n-1} \text{Res}_{n-1,i}(f,g)x^i 其中, \text{Res}_{[i]}(f,g) 表示取 \text{Syl}(f,g) 的第 n 列和末尾 i 列(如果 i=0 就不取)以及末尾 i+1 行构成的子矩阵的行列式. 证明概要:考虑线性映射 T:\mathcal P^{n-1}(x)\times \mathcal P^{m-n}(x)\to \mathcal P^m(x)~,(r,q)\mapsto r+qg ,那么 T 在自然基下的矩阵是一个 (m+1) 阶方阵,而且是上三角的,其行列式为 (b_n)^{m-n+1} . 在方程 T(r,q)=f 中使用Cramer法则即可求出 r,q . T 的矩阵为:\overbrace{\phantom{~~~~~~~~~~~~~~~~~}}^{n列}~~~~~\overbrace{\phantom{···················}}^{m-n+1列}\\ \left[\begin{matrix} 1&&&b_0\cr &\ddots&&b_1&b_0\cr &&1&\vdots&&\ddots\cr &&&b_n&&&\ddots\cr &&&&\ddots&&&b_0\cr &&&&&\ddots&&b_1\cr &&&&&&\ddots&\vdots\cr &&&&&&&b_n \end{matrix}\right]\\ 利用Cramer法则,可得 r(x) 的 i 次项系数为 \dfrac{1}{(b_n)^{m-n+1}}\begin{vmatrix} a_i&b_i&b_{i-1}&\cdots&\cr a_n&b_n&b_{n-1}&\cdots&\cr a_{n+1}&&b_n&\cdots&\cr \vdots&&&\ddots&\vdots\cr a_m&&&&b_n \end{vmatrix} . 这个行列式就是 \text{Res}_{n-1,i}(f,g) . r(x) 可以写成: \dfrac{1}{(b_n)^{m-n+1}}\begin{vmatrix} f(x)&g(x)&xg(x)&\cdots&\cr a_n&b_n&b_{n-1}&\cdots&\cr a_{n+1}&&b_n&\cdots&\cr \vdots&&&\ddots&\vdots\cr a_m&&&&b_n \end{vmatrix} . 同理, q(x) 的 i 次项系数为 \dfrac{1}{(b_n)^{m-n+1}} \begin{vmatrix} b_n&\cdots&a_n&\cdots&\cr &\ddots&\vdots&&\vdots\cr &&a_{n+i}&&\vdots\cr &&\vdots&\ddots&b_{n-1}\cr
&&a_m&&b_n \end{vmatrix} (其中 a_n 位于第 i+1 列). 继续对前 i 列展开,可以得到 \dfrac{1}{(b_n)^{m-n-i+1}} \begin{vmatrix} a_{n+i}&b_{n-1}&\cdots\cr a_{n+i+1}&b_n&\ddots&\vdots\cr \vdots&&\ddots&b_{n-1}\cr a_m&&&b_n \end{vmatrix} ,剩下的 m-n-i+1 阶行列式就是 \text{Res}_{[m-n-i]}(f,g) . 得证. 如果定义 f \div g=q~,f\%g=r
,那么就有简洁的公式: \displaystyle f\div g=\sum_{i=0}^{m-n}\frac{1}{(b_m)^{i+1}}\text{Res}_{[i]}(f,g)x^{m-n-i}\\ \displaystyle f\%g=\frac{1}{(b_m)^{m-n+1}}\sum_{i=0}^{n-1} \text{Res}_{n-1,i}(f,g)x^i\\推论: g\mid f 当且仅当 \text{Res}_{n-1,i}(f,g)=0~~(i=0,1,\dots,n-1) . 正好 n 个方程,与自由度分析相符. 最后,提出一个开放性问题. 注意到,形如 \displaystyle \sum_{j=0}^i\text{Res}_{i,j}(f,g)x^j 的多项式在前面的结论中多次出现,其系数给出了所有广义结式的值,我们可以称它为 f,g 的 i 次伪公因式(Pseudo Common Divisor),记作 \text{pcd}_i(f,g,x) . 它有如下简单性质:(1) 如果 i<\deg\gcd\{f,g\} ,那么 \text{pcd}_i(f,g,x)\equiv 0 ;(2) 如果 i=\deg\gcd\{f,g\} ,那么 \text{pcd}_i(f,g,x)=\gcd\{f,g\} ;(3) 如果 i>\deg\gcd\{f,g\} ,那么 \text{pcd}_i(f,g,x) 可能不为零. “伪”字正来自于前两条性质. 当伪公因式不为零且不是最大公因式时,它给出了什么信息?该问题有待继续思考. 更新:用Mathematica计算几个实例后发现 \text{pcd}_{n-i}(f,g) 应该是 f,g 做辗转相除后得到的次数为 i 的余项(如果没有就是零多项式). 特别地, \text{pcd}_{n-1}(f,g)=f\%g . 结语:在判定两个多项式的公共零点问题上,Sylvester结式发挥出了惊人的威力. 我们自然要问,能否把它推广到 n 个多项式( n\ge 3 )之间?遗憾的是,一旦多项式的个数超过两个,问题就会变得复杂得多. 例如,根据自由度分析,判定三个多项式有公共零点需要两个判别式. 我们可能想当然的认为,任取其中的两组多项式的结式就行了,但是事实远非如此:即使三个多项式两两之间都有零点,但它们也可能没有共同零点,因此这样的做法是不可行的(不过两两之间结式为零确实是个必要条件). 事实上,随着多项式个数的增多,其零点的可能分布会变得愈发复杂,如何判定它们的零点呈现某种分布是一个诱人但艰难的问题. 直接将我们在两个多项式的情形下采用的分析方法推广到更多个,虽然可行,但是必须涉及更复杂的分析. 其中一个直接原因就是,Sylvester矩阵不再是方阵,因而无从定义它的行列式. 为了解决这一问题,数学家们发展了许多不同的工具,读者可以从文末所附的参考文献中了解一二. 限于作者水平,文章难免有所错漏,望读者斧正,不胜感激. 附录:一些相关的Mathematica代码. 计算 f,g 的Sylvester矩阵:输入: f,g,x ( x 表示 f,g 的自变量)输出: M_0 Syl[f_,g_,x_]:=
Module[{p1=f, p2=g, d1, d2, M0, M1, M2},
{d1, d2} = Exponent[{p1, p2}, x];
M1 = CoefficientList[Sum[(x t)^k, {k, 0, d2 - 1}]*p1, {x, t}, {d1 + d2, d2}];
M2 = CoefficientList[Sum[(x t)^k, {k, 0, d1 - 1}]*p2, {x, t}, {d1 + d2, d1}];
M0 = Join[M1, M2, 2] // MatrixForm]计算 f,g 的 (i,j)-Sylevester矩阵(这是前一个代码的升级版):输入: f,g,x,i,j 输出: M_0 Syl[f_, g_, x_, i0_, j0_] :=
Module[{p1 = f, p2 = g, i = i0, j = j0, d1, d2, t, M0, M1, M2, M3},
{d1, d2} = Exponent[{p1, p2}, x];
M1 = CoefficientList[Sum[(x t)^k, {k, 0, d2 - i - 1}]*p1, {x, t}, {d1 + d2 - i, d2 - i}];
M2 = CoefficientList[Sum[(x t)^k, {k, 0, d1 - i - 1}]*p2, {x, t}, {d1 + d2 - i, d1 - i}];
M3 = Join[M1, M2, 2];
M0 = Join[Take[M3, {j + 1}], Drop[M3, i + 1], 1] // MatrixForm]计算 f,g 的 r 次伪公因式:PCD[f_, g_, x_, r_] := Sum[Det[Syl[f, g, x, r, i]]*x^i, {i, 0, r}]结式的更多推广见:多项式组怎么求结式? - cielo的回答 - 知乎 https://www.zhihu.com/question/520639622/answer/2380898960下面是一篇不错的综述:^最大公因式不是唯一的,它们会相差一个非零常数倍,但是在本文中不必区分. ^通分一下还能化成多项式函数. ^这正是Sylvester矩阵定义的由来. }
代数基本定理表明了复数域的特征,就如同实数连续性定理表明了实数域的特征。我前面写过一篇“用确界存在证明实数是连续的”,用无限小数表示实数,确界存在表明实数系没有“空隙”。现在从实数系的零点存在定理出发,证明代数基本定理。代数基本定理:设 f(x)\in C[x] 不是常数,则f(x)在C中有一根。引理1、每个奇次实系数多项式必有一实根。证明:设 f(x)=a_nx^n+a_{n-1}x^{n-1}+...+a_1x+a_0 其中n是奇数, a_n\ne 0 ,而 \lim_{x \rightarrow \infty}{\frac{f(x)}{x^n}}=a_n ,于是 \lim_{ x\rightarrow -\infty}{f(x)}=a_n\bullet(-\infty) ,\lim_{ x\rightarrow +\infty}{f(x)}=a_n\bullet(+\infty)。 则\lim_{x \rightarrow -\infty}{f(x)}\bullet\lim_{x \rightarrow +\infty}{f(x)}<0 , 则 \exists a,b\in R ,f(a)f(b)<0,由于f(x)连续,根据零点存在定理, \exists x_0\in (a,b),f(x_0)=0 引理2、复系数二次多项式的根都是复根。证明:由于 x^2+px+q=0,p,q\in C 这样的形式都可以通过代换转化成z^2=r,r\in C 的形式,设 r=a+bi,a,b\in R ,则 z=\pm \sqrt{r}=\pm\sqrt{a+bi} 若 b\geq 0 , z=\pm(\sqrt{\frac{\sqrt{a^2+b^2}+a}{2}}+i\sqrt{\frac{\sqrt{a^2+b^2}-a}{2}}) 若 b<0 , z=\pm(\sqrt{\frac{\sqrt{a^2+b^2}+a}{2}}-i\sqrt{\frac{\sqrt{a^2+b^2}-a}{2}}) 接下来是关键的证明,前面已经证明了奇次实系数多项式有一个实根,也就是有一个复根,但是缺少偶次实系数多项式的情况,引理2的二次多项式是一个偶次的情况,现在应用数学归纳法来证明每个次数大于等于1的多项式有复根。引理3、每个次数大于等于1的实系数多项式必有复根。证明:设 g(x)\in R[x] ,设d代表多项式次数, d=deg(g)\geq 1 ,设 d=2^nq, q是奇数,n=0,时,由引理1知g(x)有复根,假设 d=2^{n-1}q 时g(x)有复根,现在要证明 d=2^nq 时g(x)有复根。设 x_1,...,x_d 是g(x)全部根,现要证明某个 x_i\in C 令 y_{ij}=x_i+x_j+cx_ix_j,(1\leq i<j\leq d) ,c为任意取的实数y_{ij} 的个数 m=C_{d}^{2}=\frac{d(d-1)}{2}=2^{n-1}q(d-1) 令 G(x)=\prod_{}^{}(x-y_{ij}) ,G(x)类似于拉格朗日构造的预解式,对所有的x_1,...,x_d置换,G(x)不变,所以G(x)是实系数多项式,而G(x)次数 m=2^{n-1}q(d-1) ,q(d-1)是奇数,由归纳假设知G(x)有复根,于是存在 z=x_i+x_j+cx_ix_j\in C 由于c是任意取的实数,所以取m+1个c,得到z_1=x_{i_1}+x_{j_1}+c_1x_{i_1}x_{j_1} z_2=x_{i_2}+x_{j_2}+c_2x_{i_2}x_{j_2}
......z_{m+1}=x_{i_{m+1}}+x_{j_{m+1}}+c_{m+1}x_{i_{m+1}}x_{j_{m+1}}由抽屉原理,必存在z,z'z=x_i+x_j+cx_ix_j,z'=x_i+x_j+c'x_ix_j z,z',c,c'都是复数,于是 x_i+x_j\in C,x_ix_j\in C x_i,x_j 是复系数二次方程 x^2-(x_i+x_j)x+x_ix_j=0 的两根,根据引理2知x_i,x_j是复数根。这个证明关键在于构造G(x)这个实系数多项式,构造的方法类似于拉格朗日预解式,根的任意置换使多项式不变,说明多项式系数是根的对称式,所有对称式都可以用基本对称式表示,所以G(x)是实系数多项式。而G(x)次数又满足归纳假设,于是G(x)有复数根。现在证明代数基本定理。代数基本定理:设 f(x)\in C[x] 不是常数,则f(x)在C中有一根。设 f(x)=\sum_{i=0}^{n}{c_ix^i}\in C[x],deg(f)\geq 1 令 \bar{f}(x)=\sum_{i=0}^{n}{\bar{c}_ix^i} , \bar{c_i}是c_i 的共轭复数。令 g(x)=f(x)\bar{f}(x) ,于是 g(x)=\bar{g}(x) , g(x)\in R[x] 由引理3知g(x)有复根a,所以 f(a)=0 或 \bar{f}(a)=0 若f(a)=0,a就是复数根;若\bar{f}(a)=0, \bar{a} 就是复数根。实际上代数基本定理说复系数多项式必有一个复数根,很快我们就可以知道复系数多项式所有根都是复数根,也就是复数域是代数封闭域。设f(x)是一个复系数多项式,则它一定有复数根,设根为a,则f(x)=(x-a)g(x),g(x)也是复系数多项式,所以它必有一个复数根,这样f(x)就可以在复数域中完全分解。}

我要回帖

更多关于 实系数多项式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信