对于一般的方程组,2元2次方程组是一个比较常用的问题。虽然代数求解器应对2元2次方程组是小意思。但为了性能足够快。所以特化实现一个计算来处理2元2次情况的专用版本.
早期求解2元2次方程是通过换元消元的策略。这样的策略繁琐,不易理解。
新的方法使用的是结式消元法。如果想看相关定理的证明,可以查阅最后的附录。
a5x2+a4y2+a3xy+a2x+a1y+a0=0b5x2+b4y2+b3xy+b2x+b1y+b0=0(1)a_5x^2+a_4y^2+a_3xy+a_2x+a_1y+a_0=0\\ b_5x^2+b_4y^2+b_3xy+b_2x+b_1y+b_0=0\tag{1} a5x2+a4y2+a3xy+a2x+a1y+a0=0b5x2+b4y2+b3xy+b2x+b1y+b0=0(1)
首先,我们对(1)(1)(1)进行行变换。
会得到下面若干情况:
a5x2+0y2+a3xy+a2x+a1y+a0=00x2+b4y2+b3xy+b2x+b1y+b0=0(2)a_5x^2+0y^2+a_3xy+a_2x+a_1y+a_0=0\\ 0x^2+b_4y^2+b_3xy+b_2x+b_1y+b_0=0\tag{2} a5x2+0y2+a3xy+a2x+a1y+a0=00x2+b4y2+b3xy+b2x+b1y+b0=0(2)
0x2+0y2+a3xy+a2x+a1y+a0=00x2+b4y2+b3xy+b2x+b1y+b0=0(3)0x^2+0y^2+a_3xy+a_2x+a_1y+a_0=0\\ 0x^2+b_4y^2+b_3xy+b_2x+b_1y+b_0=0\tag{3} 0x2+0y2+a3xy+a2x+a1y+a0=00x2+b4y2+b3xy+b2x+b1y+b0=0(3)
a5x2+a4y2+a3xy+a2x+a1y+a0=00x2+0y2+b3xy+b2x+b1y+b0=0(4)a_5x^2+a_4y^2+a_3xy+a_2x+a_1y+a_0=0\\ 0x^2+0y^2+b_3xy+b_2x+b_1y+b_0=0\tag{4} a5x2+a4y2+a3xy+a2x+a1y+a0=00x2+0y2+b3xy+b2x+b1y+b0=0(4)
0x2+a4y2+a3xy+a2x+a1y+a0=00x2+0y2+b3xy+b2x+b1y+b0=0(5)0x^2+a_4y^2+a_3xy+a_2x+a_1y+a_0=0\\ 0x^2+0y^2+b_3xy+b_2x+b_1y+b_0=0\tag{5} 0x2+a4y2+a3xy+a2x+a1y+a0=00x2+0y2+b3xy+b2x+b1y+b0=0(5)
0x2+0y2+a3xy+a2x+a1y+a0=00x2+0y2+b3xy+b2x+b1y+b0=0(6)0x^2+0y^2+a_3xy+a_2x+a_1y+a_0=0\\ 0x^2+0y^2+b_3xy+b_2x+b_1y+b_0=0\tag{6} 0x2+0y2+a3xy+a2x+a1y+a0=00x2+0y2+b3xy+b2x+b1y+b0=0(6)
在上面各情况中:∣a5∣,∣a4∣,∣b5∣,∣b4∣>0|a_5|,|a_4|,|b_5|,|b_4|>0∣a5∣,∣a4∣,∣b5∣,∣b4∣>0
其中 (2),(3)(2),(3)(2),(3)可以一起处理。
单独看:
b4y2+b3xy+b2x+b1y+b0=0b_4y^2+b_3xy+b_2x+b_1y+b_0=0 b4y2+b3xy+b2x+b1y+b0=0
将上式子看作关于yyy的方程:
b4y2+(b3x+b1)y+b2x+b0=0b_4y^2+(b_3x+b_1)y+b_2x+b_0=0 b4y2+(b3x+b1)y+b2x+b0=0
Δy=(b3x+b1)2−4b4(b2x+b0)=b32x2+2b3b1x+b12−4b4b2x−4b4b0=b32x2+(2b3b1−4b4b2)x+b12−4b4b0\Delta_y=(b_3x+b_1)^2-4b_4(b_2x+b_0)\\ =b_3^2x^2+2b_3b_1x+b_1^2-4b_4b_2x-4b_4b_0\\ =b_3^2x^2+(2b_3b_1-4b_4b_2)x+b _1^2-4b_4b_0 Δy=(b3x+b1)2−4b4(b2x+b0)=b32x2+2b3b1x+b12−4b4b2x−4b4b0=b32x2+(2b3b1−4b4b2)x+b12−4b4b0
那么可以用xxx替换yyy有:
y=−(b3x+b1)+EΔy2b4y=\frac{-(b_3x+b_1)+E\sqrt{\Delta_y}}{2b_4} y=2b4−(b3x+b1)+EΔy
代入a5x2+0y2+a3xy+a2x+a1y+a0=0a_5x^2+0y^2+a_3xy+a_2x+a_1y+a_0=0a5x2+0y2+a3xy+a2x+a1y+a0=0:
a5x2+0+a3xy+a2x+a1y+a0=a5x2+(a3x+a1)y+a2x+a0=a5x2+(a3x+a1)−(b3x+b1)+EΔy2b4+a2x+a0=0a_5x^2+0+a_3xy+a_2x+a_1y+a_0\\ =a_5x^2+(a_3x+a_1)y+a_2x+a_0\\ =a_5x^2+(a_3x+a_1)\frac{-(b_3x+b_1)+E\sqrt{\Delta_y}}{2b_4}+a_2x+a_0=0 a5x2+0+a3xy+a2x+a1y+a0=a5x2+(a3x+a1)y+a2x+a0=a5x2+(a3x+a1)2b4−(b3x+b1)+EΔy+a2x+a0=0
为了消除根号。我们将根号项转移到右侧:
a5x2+(a3x+a1)−(b3x+b1)2b4+a2x+a0=−(a3x+a1)EΔy2b4a_5x^2+(a_3x+a_1)\frac{-(b_3x+b_1)}{2b_4}+a_2x+a_0 =-(a_3x+a_1)\frac{E\sqrt{\Delta_y}}{2b_4}\\ a5x2+(a3x+a1)2b4−(b3x+b1)+a2x+a0=−(a3x+a1)2b4EΔy
于是有,
a5x2−12b4(a3b3x2+x(a3b1+a1b3)+a1b1)+a2x+a0=x2(a5−a3b32b4)+x(a2−12b4(a3b1+a1b3))+a0−a1b12b4=−(a3x+a1)EΔy2b4a_5x^2-\frac{1}{2b_4}\big(a_3b_3x^2+x(a_3b_1+a_1b_3)+a_1b_1\big)+a_2x+a_0\\ =x^2(a_5-\frac{a_3b_3}{2b_4})+x\Big(a_2-\frac{1}{2b_4}(a_3b_1+a_1b_3)\Big)+a_0-\frac{a_1b_1}{2b_4} =-(a_3x+a_1)\frac{E\sqrt{\Delta_y}}{2b_4} a5x2−2b41(a3b3x2+x(a3b1+a1b3)+a1b1)+a2x+a0=x2(a5−2b4a3b3)+x(a2−2b41(a3b1+a1b3))+a0−2b4a1b1=−(a3x+a1)2b4EΔy
令:A=a5−a3b32b4,B=a2−12b4(a3b1+a1b3),C=a0−a1b12b4A=a_5-\frac{a_3b_3}{2b_4},B=a_2-\frac{1}{2b_4}(a_3b_1+a_1b_3),C=a_0-\frac{a_1b_1}{2b_4}A=a5−2b4a3b3,B=a2−2b41(a3b1+a1b3),C=a0−2b4a1b1
两边同时平方:
A2x4+2ABx3+(2AC+B2)x2+2BCx+C2=(a3x+a1)2Δy4b42A^2x^4+2ABx^3+(2AC+B^2)x^2+2BCx+C^2=(a_3x+a_1)^2\frac{\Delta_y}{4b_4^2} A2x4+2ABx3+(2AC+B2)x2+2BCx+C2=(a3x+a1)24b42Δy
显然:a5=0a_5=0a5=0方程依然有意义。
注意,当我们解出方程
A2x4+2ABx3+(2AC+B2)x2+2BCx+C2=(a3x+a1)2Δy4b42A^2x^4+2ABx^3+(2AC+B^2)x^2+2BCx+C^2=(a_3x+a_1)^2\frac{\Delta_y}{4b_4^2}A2x4+2ABx3+(2AC+B2)x2+2BCx+C2=(a3x+a1)24b42Δy
时,假设xxx的可能取值为:r∈{r1,r2,r3,r4}r \in \{r_1,r_2,r_3,r_4\}r∈{r1,r2,r3,r4}.
现在我们思考,对于上述方程,如果我们认为上述方程隐含了对Δy\Delta_yΔy对约束,理应
y=−(b3x+b1)±Δy2b4y=\frac{-(b_3x+b_1)\pm\sqrt{\Delta_y}}{2b_4} y=2b4−(b3x+b1)±Δy
都是合法的,是不对的。这是因为这个方程是从:
Ax2+Bx+C=±(a3x+a1)Δy2b4Ax^2+Bx+C = \pm(a_3x+a_1)\frac{\sqrt{\Delta_y}}{2b_4} Ax2+Bx+C=±(a3x+a1)2b4Δy
两边同时平方得来的。这也就是说,当我们解出一个xxx后,那么,
Ax2+Bx+CAx^2+Bx+CAx2+Bx+C只会对应等号另一次的一个,而不是两个。说白了,
2=22=−22=2\\ 2=-2 2=22=−2
上述两个式子一个成立,一个不成立,但同时两侧平方就会让他们都成立。所以此时我们应该有效去除增根。
去掉增根的方法就是重新代入原来的方程判断一下即可。
所以方程两边的每一次平方都有可能使方程产生增根,所以一旦有两边同时平方的操作就要对原有方程去验证一下。以防止增根
先来看:
0+0+b3xy+b2x+b1y+b0=(b3x+b1)y+b2x+b0=00+0+b_3xy+b_2x+b_1y+b_0=(b_3x+b_1)y+b_2x+b_0=0 0+0+b3xy+b2x+b1y+b0=(b3x+b1)y+b2x+b0=0
此时讨论一下情况:
说明此事方程冗余。无法解的有限个根。
若b3x+b1≠0b_3x+b_1\not=0b3x+b1=0:
y=−b2x+b0b3x+b1y=-\frac{b_2x+b_0}{b_3x+b_1} y=−b3x+b1b2x+b0
代入:a5x2+a4y2+a3xy+a2x+a1y+a0=0a_5x^2+a_4y^2+a_3xy+a_2x+a_1y+a_0=0a5x2+a4y2+a3xy+a2x+a1y+a0=0
a5x2+a4y2+(a3x+a1)y+a2x+a0=a5x2+a4(b2x+b0b3x+b1)2−(a3x+a1)b2x+b0b3x+b1+a2x+a0a_5x^2+a_4y^2+(a_3x+a_1)y+a_2x+a_0\\ =a_5x^2+a_4\Big(\frac{b_2x+b_0}{b_3x+b_1}\Big)^2-(a_3x+a_1)\frac{b_2x+b_0}{b_3x+b_1}+a_2x+a_0 a5x2+a4y2+(a3x+a1)y+a2x+a0=a5x2+a4(b3x+b1b2x+b0)2−(a3x+a1)b3x+b1b2x+b0+a2x+a0
得到:
(a5x2+a2x+a0)(b3x+b1)2−(a3x+a1)(b2x+b0)(b3x+b1)+a4(b2x+b0)2=0(a_5x^2+a_2x+a_0)(b_3x+b_1)^2-(a_3x+a_1)(b_2x+b_0)(b_3x+b_1)+a_4(b_2x+b_0)^2=0 (a5x2+a2x+a0)(b3x+b1)2−(a3x+a1)(b2x+b0)(b3x+b1)+a4(b2x+b0)2=0
去掉使得b3x+b1=0b_3x+b_1=0b3x+b1=0的根
若b3x+b1=0b_3x+b_1=0b3x+b1=0:
说明b3≠0b_3\not=0b3=0,且此时b2x+b0=0b_2x+b_0=0b2x+b0=0也应该成立。否则无解
那么yyy的取值任意,x=−b1/b3x = -b_1/b_3x=−b1/b3
代入a5x2+a4y2+(a3x+a1)y+a2x+a0a_5x^2+a_4y^2+(a_3x+a_1)y+a_2x+a_0a5x2+a4y2+(a3x+a1)y+a2x+a0 得到关于yyy的方程。
综上,为们只需要计算方程
(a5x2+a2x+a0)(b3x+b1)2−(a3x+a1)(b2x+b0)(b3x+b1)+a4(b2x+b0)2=0(a_5x^2+a_2x+a_0)(b_3x+b_1)^2-(a_3x+a_1)(b_2x+b_0)(b_3x+b_1)+a_4(b_2x+b_0)^2=0(a5x2+a2x+a0)(b3x+b1)2−(a3x+a1)(b2x+b0)(b3x+b1)+a4(b2x+b0)2=0
那么此时方程:
0+0+b3xy+b2x+b1y+b0=(b3x+b1)y+b2x+b0=b2x+b0=00+0+b_3xy+b_2x+b_1y+b_0=(b_3x+b_1)y+b_2x+b_0=b_2x+b_0=00+0+b3xy+b2x+b1y+b0=(b3x+b1)y+b2x+b0=b2x+b0=0
也就是说:b2x+b0=0b_2x+b_0=0b2x+b0=0 若b2=0b_2 = 0b2=0则无解。
否则:x=−b0/b2x = -b_0/b_2x=−b0/b2
代入a5x2+a4y2+(a3x+a1)y+a2x+a0a_5x^2+a_4y^2+(a_3x+a_1)y+a_2x+a_0a5x2+a4y2+(a3x+a1)y+a2x+a0得到关于yyy的方程。
那么此时方程:0+0+b3xy+b2x+b1y+b0=(b3x+b1)y=00+0+b_3xy+b_2x+b_1y+b_0=(b_3x+b_1)y=00+0+b3xy+b2x+b1y+b0=(b3x+b1)y=0
那么存在两种情况:y=0ORb3x+b1=0y=0\ \ OR\ \ b_3x+b_1=0y=0 OR b3x+b1=0
y=0y=0y=0时,代入上面方程,求出xxx
b3x+b1=0b_3x+b_1=0b3x+b1=0此时存在根的必要条件是b3≠0b_3\not=0b3=0 此时x=−b1/b3x = -b_1/b_3x=−b1/b3,代入上面方程,求的yyy.
第二次求出的根要去掉y=0y=0y=0的情况。此种情况被第一次计算过了.
考虑222元方程组f,g∈R[x,y]f,g\in \R[x,y]f,g∈R[x,y]
f(x,y)=∑k∑tak,txkyt,ak,t∈Rg(x,y)=∑k∑tbk,txkyt,bk,t∈Rf(x,y)=\sum_{k}\sum_{t}a_{k,t}x^{k}y^t,a_{k,t}\in\R\\ g(x,y)=\sum_{k}\sum_{t}b_{k,t}x^{k}y^t,b_{k,t}\in\R\\ f(x,y)=k∑t∑ak,txkyt,ak,t∈Rg(x,y)=k∑t∑bk,txkyt,bk,t∈R
若我们将R[x,y]\R[x,y]R[x,y]看作R[x][y]\R[x][y]R[x][y] 问题就了。
那么改写f,gf,gf,g有:
f(x,y)=fx(x)=f0+f1y+f2y2+...+fnyn,fi∈F[x]g(x,y)=gx(x)=g0+g1y+g2y2+...+gnyn,gi∈F[x]f(x,y)=f_x(x)=f_0+f_1y+f_2y^2+...+f_ny^n,f_i\in F[x]\\ g(x,y)=g_x(x)=g_0+g_1y+g_2y^2+...+g_ny^n,g_i\in F[x] f(x,y)=fx(x)=f0+f1y+f2y2+...+fnyn,fi∈F[x]g(x,y)=gx(x)=g0+g1y+g2y2+...+gnyn,gi∈F[x]
此时,若f,gf,gf,g零点集有共公解(x0,y0)(x_0,y_0)(x0,y0).则:gcd(fx,gx)≠1gcd(f_x,g_x)\not=1gcd(fx,gx)=1
根据结式定理 :
gcd(f,g)=1⇔det(syl(f,g))=res(f,g)≠0gcd(f,g)=1\Leftrightarrow det(syl(f,g))=res(f,g)\not=0 gcd(f,g)=1⇔det(syl(f,g))=res(f,g)=0
所以,方程组有解当切仅当
res(fx,gx)=0res(f_x,g_x)=0 res(fx,gx)=0
那么回到222元222次方程组。
a1x2+a2y2+a3xy+a4x+a5y+a6=0b1x2+b2y2+b3xy+b4x+b5y+b6=0a_1x^2+a_2y^2+a_3xy+a_4x+a_5y+a_6=0\\ b_1x^2+b_2y^2+b_3xy+b_4x+b_5y+b_6=0\\ a1x2+a2y2+a3xy+a4x+a5y+a6=0b1x2+b2y2+b3xy+b4x+b5y+b6=0
我们将上述方程组改写为:
fx=a2y2+(a3x+a5)y+(a1x2+a4x+a6)=f2y2+f1y+f0=0gx=b2y2+(b3x+b5)y+(b1x2+b4x+b6)=g2y2+g1y+g0=0f_x=a_2y^2+(a_3x+a_5)y+(a_1x^2+a_4x+a_6)=f_2y^2+f_1y+f_0=0\\ g_x=b_2y^2+(b_3x+b_5)y+(b_1x^2+b_4x+b_6)=g_2y^2+g_1y+g_0=0 fx=a2y2+(a3x+a5)y+(a1x2+a4x+a6)=f2y2+f1y+f0=0gx=b2y2+(b3x+b5)y+(b1x2+b4x+b6)=g2y2+g1y+g0=0
syl(fx,gx)=[f20g20f1f2g1g2f0f1g0g10f00g0]syl(f_x,g_x)= \left[ \begin{matrix} f_2&0&g_2&0\\ f_1&f_2&g_1&g_2\\ f_0&f_1&g_0&g_1\\ 0&f_0&0&g_0 \end{matrix} \right] syl(fx,gx)=⎣⎢⎢⎡f2f1f000f2f1f0g2g1g000g2g1g0⎦⎥⎥⎤
则:
∣f20g20f1f2g1g2f0f1g0g10f00g0∣=1f2∣f20g2f20f1f2g1f2g2f0f1g0f2g10f00g0∣=1f2∣f2000f1f2g1f2−g2f1g2f0f1g0f2−g2f0g10f00g0∣\left| \begin{matrix} f_2&0&g_2&0\\ f_1&f_2&g_1&g_2\\ f_0&f_1&g_0&g_1\\ 0&f_0&0&g_0 \end{matrix} \right| =\frac{1}{f_2}\left| \begin{matrix} f_2&0&g_2f_2&0\\ f_1&f_2&g_1f_2&g_2\\ f_0&f_1&g_0f_2&g_1\\ 0&f_0&0&g_0 \end{matrix} \right|=\frac{1}{f_2}\left| \begin{matrix} f_2&0&0&0\\ f_1&f_2&g_1f_2-g_2f_1&g_2\\ f_0&f_1&g_0f_2-g_2f_0&g_1\\ 0&f_0&0&g_0 \end{matrix} \right| ∣∣∣∣∣∣∣∣f2f1f000f2f1f0g2g1g000g2g1g0∣∣∣∣∣∣∣∣=f21∣∣∣∣∣∣∣∣f2f1f000f2f1f0g2f2g1f2g0f200g2g1g0∣∣∣∣∣∣∣∣=f21∣∣∣∣∣∣∣∣f2f1f000f2f1f00g1f2−g2f1g0f2−g2f000g2g1g0∣∣∣∣∣∣∣∣
当f2≠0f_2\not=0f2=0时(f2f_2f2,g2g_2g2地位相同,所以仅仅讨论f2≠0f_2\not=0f2=0),上术变换成立.
因为 f2f_2f2时常数。则求解条件就变成了:
∣f2g1f2−g2f1g2f1g0f2−g2f0g1f00g0∣=0\left| \begin{matrix} f_2&g_1f_2-g_2f_1&g_2\\ f_1&g_0f_2-g_2f_0&g_1\\ f_0&0&g_0 \end{matrix} \right|=0 ∣∣∣∣∣∣f2f1f0g1f2−g2f1g0f2−g2f00g2g1g0∣∣∣∣∣∣=0
得到一个单变元方程:
f2(g0f2−g2f0)−(g1f2−g2f1)(f1g0−g1f0)+g2f0(g0f2−g2f0)=0f_2(g_0f_2-g_2f_0)-(g_1f_2-g_2f_1)(f_1g_0-g_1f_0)+g_2f_0(g_0f_2-g_2f_0)=0 f2(g0f2−g2f0)−(g1f2−g2f1)(f1g0−g1f0)+g2f0(g0f2−g2f0)=0
当f2=g2=0f_2=g_2=0f2=g2=0时,依然是求解:
∣f2g1g2f1g0g1f00g0∣=0\left| \begin{matrix} f_2&g_1&g_2\\ f_1&g_0&g_1\\ f_0&0&g_0 \end{matrix} \right|=0 ∣∣∣∣∣∣f2f1f0g1g00g2g1g0∣∣∣∣∣∣=0
他其实等效于:
limf2→0∣f2(g0f2−g2f0)−(g1f2−g2f1)(f1g0−g1f0)+g2f0(g0f2−g2f0)/f2∣=∣g1(f1g0−g1f0)∣\lim_{f_2\rightarrow0}|f_2(g_0f_2-g_2f_0)-(g_1f_2-g_2f_1)(f_1g_0-g_1f_0)+g_2f_0(g_0f_2-g_2f_0)/f_2|=|g_1(f_1g_0-g_1f_0)| f2→0lim∣f2(g0f2−g2f0)−(g1f2−g2f1)(f1g0−g1f0)+g2f0(g0f2−g2f0)/f2∣=∣g1(f1g0−g1f0)∣
利用这种方法,我们可以求解3次4次或者更一般的多项式方程组问题。但是此方法现在随未知数的增加和次数的增加难度大增!!。
对于单变元多项式求解,文档中提供了一个全局收敛且为二次收敛的高效算法 jenkins−traubjenkins-traubjenkins−traub
注意,结式法很显然可以扩展到高纬求解的情况。例如 R3\R^3R3上的方程求解。
我们每计算一次结式resresres就相当于降低维度。
给定方程组:
F1(x1,x2,...xn)F2(x1,x2,...xn)F3(x1,x2,...xn)⋮Fn(x1,x2,...xn)F_1(x_1,x_2,...x_n)\\ F_2(x_1,x_2,...x_n)\\ F_3(x_1,x_2,...x_n)\\ \vdots\\ F_n(x_1,x_2,...x_n)\\ F1(x1,x2,...xn)F2(x1,x2,...xn)F3(x1,x2,...xn)⋮Fn(x1,x2,...xn)
我们可以生成后Rn−1\R^{n-1}Rn−1上的方程组:
res(F1,F2)res(F2,F3)⋮res(Fn−1,Fn)res(F_1,F_2)\\ res(F_2,F_3)\\ \vdots\\ res(F_{n-1},F_n) res(F1,F2)res(F2,F3)⋮res(Fn−1,Fn)
以此类推,知道生成R\RR上的多项式。求解后反代入上一级求解第二个未知数。
在读附录之前,希望读有抽象代数基础。
设FFF是域, FFF上的多项式F[x]F[x]F[x]被定义为:
ai∈F,f(x)=a0+a1x+a2x2+..+anxn∈F[x]a_i\in F,\ \ f(x)=a_0+a_1x+a_2x^2+..+a_nx^n\in F[x] ai∈F, f(x)=a0+a1x+a2x2+..+anxn∈F[x]
此时,我们记: n=degfn=\deg fn=degf
类似的,FFF上的多元多项式F[x]=F[x1,x2,...xn]F[x]=F[x_1,x_2,...x_n]F[x]=F[x1,x2,...xn]被定义为:
ai1,i2,..in∈F,f(x)=∑k=0n∑i1+i2+..+in=kai1,i2,..inkxk∈F[x]a_{i_1,i_2,..i_n}\in F,\ \ f(x)=\sum_{k=0}^n\sum_{i_1+i_2+..+i_n=k}a_{i_1,i_2,..i_n}^kx^k\ \ \in F[x] ai1,i2,..in∈F, f(x)=k=0∑ni1+i2+..+in=k∑ai1,i2,..inkxk ∈F[x]
引理 1:设FFF是域,非零单变元多项式 f,g∈F[x]f,g\in F[x]f,g∈F[x],则gcd(f,g)≠1gcd(f,g)\not=1gcd(f,g)=1当且仅当存在s,t∈F[x]/{0}s,t\in F[x]/\{0\}s,t∈F[x]/{0},是的sf+tg=0sf+tg=0sf+tg=0,且degs
证明充分性:
假设f≠1,g≠1f\not=1, g\not=1f=1,g=1
令 h=gcd(f,g)h=gcd(f,g)h=gcd(f,g)
则可以构造s=−g/h,t=f/hs=-g/h,t=f/hs=−g/h,t=f/h,充分性得证.
证明必要性
假设f≠1,g≠1f\not=1, g\not=1f=1,g=1
令 h=gcd(f,g)h=gcd(f,g)h=gcd(f,g),若h=1h=1h=1。 由sf=−tgsf=-tgsf=−tg可以推出:f∣tf|tf∣t. 这与t≠0t\not=0t=0且degt 若F[x]F[x]F[x]仅为UFDUFDUFD(唯一因子分解整环)则只需要要求hhh非平凡。 定义:d∈N,Pd={a∈F[x]∣dega 定义如下映射φf,g,f,g∈F[x],degf=n,degg=m\varphi_{f,g},f,g\in F[x],\deg f=n,\deg g=mφf,g,f,g∈F[x],degf=n,degg=m φ=φf,h:F[x]×F[x]→F[x],φf,g(s,t)=sf+tg\varphi=\varphi_{f,h}:F[x]\times F[x]\rightarrow F[x],\varphi_{f,g}(s,t)=sf+tg φ=φf,h:F[x]×F[x]→F[x],φf,g(s,t)=sf+tg 令φ0:Pm×Pn→Pn+m\varphi_0:P_m\times P_n\rightarrow P_{n+m}φ0:Pm×Pn→Pn+m为φ\varphiφ在Pm×PnP_m\times P_nPm×Pn上的限制。 则对于任意的f,g∈F[x]f,g\in F[x]f,g∈F[x]分别为nnn次与mmm次多项式。 则:gcd(f,g)=1⇔φ0\gcd(f,g)=1\Leftrightarrow \varphi_0gcd(f,g)=1⇔φ0是同构。(在抽象代数中,同构指的是一个保持结构的双射。) 这里,同构的意思是两个线性空间Pm×PnP_m\times P_nPm×Pn 和Pm+nP_{m+n}Pm+n之间的一个同构映射。 显然,gcd(f,g)=1\gcd(f,g)=1gcd(f,g)=1时,(s,t)≠(s′,t′)(s,t)\not=(s',t')(s,t)=(s′,t′)时。φ0(s,t)≠φ0(s′,t′)\varphi_0(s,t)\not=\varphi_0(s',t')φ0(s,t)=φ0(s′,t′) 这是因为,若φ0(s,t)=φ0(s′,t′)\varphi_0(s,t)=\varphi_0(s',t')φ0(s,t)=φ0(s′,t′)则有: sf+tg=s′f+tg′⇒(s−s′)f+(t−t′)g=0sf+tg=s'f+tg'\Rightarrow(s-s')f+(t-t')g=0 sf+tg=s′f+tg′⇒(s−s′)f+(t−t′)g=0 这与引理1矛盾。 所以,φ0\varphi_0φ0此时是单射(https://baike.baidu.com/item/%E5%8D%95%E5%B0%84/9274884) 同志们,我们将多项式看作一个线性空间的时候。本质上是将多项式看作了一个向量。 那么PmP_mPm中的元素是mmm维向量。PnP_nPn是nnn维度 所以Pm×PnP_m\times P_nPm×Pn是n+mn+mn+m维,与Pn+mP_{n+m}Pn+m维数相同。 所以这个映射满足两个性质: 1:φ0\varphi_0φ0是线性映射. 2:φ0\varphi_0φ0是单设。那么也就是说φ0\varphi_0φ0 是可逆的。 但φ0\varphi_0φ0未必是满的。是否能说φ0\varphi_0φ0是同构呢?因为此时的映射可能是线性空间到目标线性空间子集的一个映射。 所以我们还需要证明,φ0\varphi_0φ0是满的。 若存在一个元素h∈Pn+mh\in P_{n+m}h∈Pn+m,根据扩展gcdgcdgcd一定有s,t∈F[x],sf+tg=hs,t\in F[x],sf+tg=hs,t∈F[x],sf+tg=h 若此时 degs≥degg\deg s\geq \deg gdegs≥degg则一定有degt≥degf\deg t\geq \deg fdegt≥degf 令s=qxm+rs,t=pxn+rts=qx^m+r_s,t=px^n+r_ts=qxm+rs,t=pxn+rt 则:h=(qxm+rs)f+(pxn+rt)g=qxmf+pxng+rsf+rtgh=(qx^m+r_s)f+(px^n+r_t)g=qx^mf+px^ng+r_sf+r_tgh=(qxm+rs)f+(pxn+rt)g=qxmf+pxng+rsf+rtg 所以:qxmf+pxng=0qx^mf+px^ng=0qxmf+pxng=0.这也就是说,每一个h∈Pn+mh\in P_{n+m}h∈Pn+m都有至少一个s∈Pm,t∈Pns\in P_m,t\in P_ns∈Pm,t∈Pn与之对应。 所以φ0\varphi_0φ0也是满的。同构得证明。 注意(原书中认为,同维度线性空间的线形映射,且为单射是同构的这一点是不对的。这个映射可能是目标先行空间的子集) 所以,既然是同构。那么也就是说φ0(s,t)=1\varphi_0(s,t)=1φ0(s,t)=1的解是唯一的。 令f∈F[x]f\in F[x]f∈F[x]有: f(x)=f0+f1x+..+fnxnf(x)=f_0+f_1x+..+f_nx^n f(x)=f0+f1x+..+fnxn 令g∈F[x]g\in F[x]g∈F[x]有: g(x)=g0+g1x+...+gmxmg(x)=g_0+g_1x+...+g_mx^m g(x)=g0+g1x+...+gmxm SylvesterSylvesterSylvester矩阵syl(f,g)syl(f,g)syl(f,g)被定义为: syl(f,g)=[fn0⋯0gm0⋯0fn−1fn⋯0gm−1gm⋯0⋮⋮⋱⋮⋮⋮⋱f0f1⋯fng1g2⋯00f0⋯fn−1g0g1⋯000⋯fn−20g0⋯gm⋮⋮⋱⋮⋮⋮⋱⋮00⋯f000⋯g0](syl(f,g))syl(f,g)= \left[ \begin{matrix} f_n & 0 & \cdots &0& g_m&0&\cdots &0\\ f_{n-1} & f_n & \cdots &0& g_{m-1}&g_m&\cdots&0\\ \vdots &\vdots & \ddots& \vdots &\vdots &\vdots&\ddots\\ f_{0} & f_{1} & \cdots &f_n &g_1 & g_2&\cdots &0\\ 0 & f_0 & \cdots &f_{n-1} &g_0 & g_1&\cdots &0\\ 0&0&\cdots &f_{n-2}&0 &g_0&\cdots&g_m\\ \vdots &\vdots & \ddots& \vdots &\vdots&\vdots&\ddots &\vdots\\ 0&0&\cdots&f_0&0&0&\cdots&g_0 \end{matrix} \right] \tag{syl(f,g)} syl(f,g)=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡fnfn−1⋮f000⋮00fn⋮f1f00⋮0⋯⋯⋱⋯⋯⋯⋱⋯00⋮fnfn−1fn−2⋮f0gmgm−1⋮g1g00⋮00gm⋮g2g1g0⋮0⋯⋯⋱⋯⋯⋯⋱⋯0000gm⋮g0⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤(syl(f,g)) 它的意义在于,前面计算φ0\varphi_0φ0的时候,假设s∈Pm,t∈Pns\in P_m, t\in P_ns∈Pm,t∈Pn 且 s(x)=s0+s1x+s2x2+...+sm−1xm−1t(t)=t0+t1x+t2x2+...+tn−1xn−1(sf+tg)(x)=h0+h1x+...hn+m−1xn+m−1s(x)=s_0+s_1x+s_2x^2+...+s_{m-1}x^{m-1}\\ t(t)=t_0+t_1x+t_2x^2+...+t_{n-1}x^{n-1}\\ (sf+tg)(x)=h_0+h_1x+...h_{n+m-1}x^{n+m-1} s(x)=s0+s1x+s2x2+...+sm−1xm−1t(t)=t0+t1x+t2x2+...+tn−1xn−1(sf+tg)(x)=h0+h1x+...hn+m−1xn+m−1 则:sf+tg=hsf+tg=hsf+tg=h的系数数组成的向量等于: syl(f,g)[sm−1sm−2⋮s0tn−1⋮t0]=[hn+m−1hn+m−2⋮hnhn−1⋮h0]syl(f,g)\left[\begin{matrix} s_{m-1}\\ s_{m-2}\\ \vdots\\ s_0\\ t_{n-1}\\ \vdots\\ t_0 \end{matrix}\right]=\left[\begin{matrix} h_{n+m-1}\\ h_{n+m-2}\\ \vdots\\ h_n\\ h_{n-1}\\ \vdots\\ h_0 \end{matrix}\right] syl(f,g)⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡sm−1sm−2⋮s0tn−1⋮t0⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡hn+m−1hn+m−2⋮hnhn−1⋮h0⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤ 自行手算验证。 这就是说, 在矩阵的视角下,gcd(f,g)=1,syl(f,g)gcd(f,g)=1,syl(f,g)gcd(f,g)=1,syl(f,g)描绘了可逆线性变换φ0\varphi_0φ0 这也就是说: gcd(f,g)=1⇔det(syl(f,g))≠0gcd(f,g)≠1⇔det(syl(f,g))=0gcd(f,g)=1\Leftrightarrow det(syl(f,g))\not=0\\ gcd(f,g)\not = 1 \Leftrightarrow det(syl(f,g))=0\\ gcd(f,g)=1⇔det(syl(f,g))=0gcd(f,g)=1⇔det(syl(f,g))=0 定义结式:称det(syl(f,g)det(syl(f,g)det(syl(f,g)为结式,记:res(f,g)=det(syl(f,g))res(f,g)=det(syl(f,g))res(f,g)=det(syl(f,g))SylvesterSylvesterSylvester矩阵
结式
上一篇:受益匪浅如何造句
下一篇:描述大学生友谊的习语