找回密码
 快速注册
搜索
查看: 817|回复: 15

不使用结式判断高次方程组有无实根

[复制链接]

471

主题

945

回帖

9837

积分

积分
9837

显示全部楼层

青青子衿 发表于 2019-5-8 14:14 |阅读模式
本帖最后由 青青子衿 于 2019-5-8 14:24 编辑 4x+3xy+4y^2+3xy^2=6
3x+4xy+3y^2+4xy^2=6
  1. NSolve[4 x + 3 x*y + 4 y^2 + 3 x*y^2 == 6 &&
  2.   3 x + 4 x*y + 3 y^2 + 4 x*y^2 == 6, {x, y}]
复制代码
\begin{cases}
4x+3xy+4y^2+3xy^2=6\\
3x+4xy+3y^2+4xy^2=6
\end{cases}

443

主题

1519

回帖

1万

积分

积分
11660

显示全部楼层

realnumber 发表于 2019-5-10 10:30
两个都把x解出来,看作x是y的函数,几何画板画了下图,发现一个始终在一个上放,所以无解,证明就是证个不等式g(y)>f(y)
QQ截图20190506113824aaa.png

272

主题

683

回帖

6049

积分

积分
6049

显示全部楼层

力工 发表于 2019-5-10 16:07
回复 2# realnumber
这个例子有些偏,都是关于$x$的一次式,如果$x,y$都是二次或三次的这样就不能了。

830

主题

4862

回帖

3万

积分

积分
36159

显示全部楼层

isee 发表于 2019-5-10 17:59
结式?
这个?


又学到个新玩意儿,有意思,原来二元高次方程这么解约

471

主题

945

回帖

9837

积分

积分
9837

显示全部楼层

 楼主| 青青子衿 发表于 2019-5-10 23:36
结式?
结式与二元高次方程组的解
又学到个新玩意儿,有意思,原来二元高次方程这么解约
isee 发表于 2019-5-10 17:59

是的,结式也被称作西尔维斯特行列式(Sylvester detaminate)

点评

拼写为Sylvester determinant  发表于 2024-12-25 10:21

830

主题

4862

回帖

3万

积分

积分
36159

显示全部楼层

isee 发表于 2019-5-11 08:05
回复 5# 青青子衿

哪本书上有讨论?

471

主题

945

回帖

9837

积分

积分
9837

显示全部楼层

 楼主| 青青子衿 发表于 2019-5-11 12:08
回复  青青子衿
哪本书上有讨论?
isee 发表于 2019-5-11 08:05

《高等代数》
浙江大学出版社
李方,黄正达,汪国军,李慧陵
《高等代数与解析几何 第二版/上册》
高等教育出版社
陈志杰

830

主题

4862

回帖

3万

积分

积分
36159

显示全部楼层

isee 发表于 2019-5-11 14:03
回复 7# 青青子衿

thx

68

主题

434

回帖

4269

积分

积分
4269

显示全部楼层

hejoseph 发表于 2019-5-23 10:54
用类似辗转相除法的方法也可以消元的,但是计算也是很繁琐。
例如
\[
\left\{
\begin{aligned}
&2x^2-3xy+y^2=6\\
&4x^2+xy-3y^2=5
\end{aligned}
\right.
\]
将 $y$ 看作变量,$x$ 看作常量,计算 $(4x^2+xy-3y^2-5)/(2x^2-3xy+y^2-6)$,得余式 $10x^2-8xy-23$。
将 $y$ 看作变量,$x$ 看作常量,计算 $(2x^2-3xy+y^2-6)/(10x^2-8xy-23)$,得余式 $12x^4+292x^2-529$。
因此那个方程组消去 $y$ 之后得到的方程就是 $12x^4+292x^2-529=0$。
这个方法对于任意多个元都是适用的,但是计算会特别麻烦。

3149

主题

8388

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65401
QQ

显示全部楼层

hbghlyj 发表于 2024-12-25 10:06
hejoseph 发表于 2019-5-23 02:54
用类似辗转相除法的方法也可以消元的,但是计算也是很繁琐。
例如
\[
\left\{
\begin{aligned}
&2x^2-3xy+y^2=6\\
&4x^2+xy-3y^2=5
\end{aligned}
\right.
\]

en.wikipedia.org/wiki/Wu%27s_method_of_characteristic_set
zh.wikipedia.org/wiki/吴消元法
王东明 牟晨琪 李晓亮 杨静 金萌 黄艳丽《多项式代数》-高等教育出版社 (2011)中用吴文俊的三角列算法求解了如下问题(p75,例2.2.12):
\begin{array}{l} {P_1} = xyz - xy - z - x - y;\\ {P_2} = xz - {x^2} - z - y + x;\\ {P_3} = {z^2} - {x^2} - {y^2} \end{array} 该算法分为基列选取过程和伪余过程,终止条件是余式都是0:

3149

主题

8388

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65401
QQ

显示全部楼层

hbghlyj 发表于 2024-12-25 10:08

1.基列选取(BasSet):

该算法首先要确定一组变元序,也即 $x_1,x_2,\cdots,x_n$ 之间被约去的顺序关系,就以 $n=3$ 来说,如果设定 $x<y<z$ 那么在基列选取时,设该轮多项式集合是 ${\cal F}_k$,首先对于含有 $z$ 变量的多项式取次数最低者 $P_i$,这时会出现两种情况:
  • 第一种情况是 $P_i$ 存在唯一,那么将 $P_i$ 放入 ${\cal B}_k$ 并且排除 ${\cal F}_k$ 中 $z$ 次数高于该 $P_i$ 的多项式,也即只剩下不含 $z$ 的多项式,然后对于 $y,x$ 同样操作,直到 ${\cal F}_k$ 为 $\emptyset$
  • 第二种情况是 $P_i$ 存在不唯一,那么任意选取 $z$ 最低同次数的某一个多项式,划去其他含 $z$ 的多项式,然后对于 $y,x$ 同样操作。

具体的算法步骤如下:
Untitled.png

3149

主题

8388

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65401
QQ

显示全部楼层

hbghlyj 发表于 2024-12-25 10:10

2.伪余(Prem):

即一元多项式环上带余除法的推广,在一元多项式环 $\mathbb{P}_n[x]$ 中表示用 $g(x)$ 除 $f(x)$ 获得余式 $r(x)$:
$$f\left( x \right) = q\left( x \right)g\left( x \right) + r\left( x \right) \quad \partial (r(x))<\partial(g(x))$$
而在多元多项式环中,也是抱着同样的思想用多项式 $R(x_k,...)$ 除 $F(x_k,...)$,这可能不合理因为多项式变量不能出现在分母上。
因此弱化结论,可以实现 $R(x_k,...)$ 去除 $C(x_1,x_2,\cdots,x_{k-1},x_{k+1},\cdots,x_n)F(x_k,...)$
具体的算法是:
Untitled.png
其中 $\mathrm{lc}(G,x_k)$ 指的是多元多项式 $G$ 中把除去 $x_k$ 以外的元素视为常数时,关于 $x_k$ 的一元多项式的最高次项系数。

3149

主题

8388

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65401
QQ

显示全部楼层

hbghlyj 发表于 2024-12-25 10:13

3.吴特征列算法:

设定:$${\cal F}_0 = {\cal P}; \Rightarrow {\cal C} = BasSet(F,ord)$$
此时需要检查基列中是否含有非零常数,如果有则程序结束,因为非零常数为0是不可能成立的方程.

如果没有出现非零常数,那么进行伪余运算,注意到 $\cal{F_k}$ 除去 ${\cal B}_k$ 中的元素,每一个对于 ${\cal B}_k$ 做伪余,由于是一个多项式作用于几个多项式,因此是具有嵌套关系的:对于变元顺序: $x<y<z$
$$prem(P_1,\left[ {{P_2}\left( {x,y,z} \right),{P_3}\left( {x,y} \right)} \right]) =prem(prem(P_1,P_2,z),P_3,y) $$
$$ prem\left( {{P_1},\left[ {{P_2}\left( {x,y,z} \right),{P_3}\left( {x,y} \right),{P_4}\left( x \right)} \right]} \right) = prem\left( {prem\left( {prem\left( {{P_1},{P_2},z} \right),{P_3},y} \right),{P_4},x} \right) $$如果存在某个伪余式非0,终将伪余式和除式以及最初的方程三者形成 ${\cal F}_{k+1}$ 进行下一轮运算.

3149

主题

8388

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65401
QQ

显示全部楼层

hbghlyj 发表于 2024-12-25 10:15

4.就这题来说

hbghlyj 发表于 2024-12-25 02:06
如下问题(p75,例2.2.12):
\begin{array}{l} {P_1} = xyz - xy - z - x - y;\\ {P_2} = xz - {x^2} - z - y + x;\\ {P_3} = {z^2} - {x^2} - {y^2} \end{array} 该算法分为基列选取过程和伪余过程,终止条件是余式都是0:


在给定变元顺序 $z<x<y$ 前提下,固定全集 ${{\cal F}_0} = {\cal P} = \left\{ {{P_1},{P_2},{P_3}} \right\},{{\cal B}_0} = \emptyset$,基列选取过程是:首先 ${{\cal F}_0}$ 中三个多项式都含有 $y$ 故秩最低(也即 $y$ 次数最低)的是 $P_2$,更新 ${{\cal B}_0} =\left\{ {{P_2}} \right\}$,选取 ${{\cal F}_0}$ 中除去 $P_2$ 且其 $y$ 次数小于 $P_2$ 的 $y$ 的,发现没有,故确定了基列。
\[
\begin{array}{l} {{\cal B}_0} = \left\{ {{P_2}} \right\},{{\cal F}_0} = \left\{ {{P_1},{P_2},{P_3}} \right\}\\ {R_{01}} = prem\left( {{P_1},{P_2},y} \right) = - {x^5} + 2{\mkern 1mu} {x^4}{\mkern 1mu} z + 2{\mkern 1mu} {x^4} - {x^3}{\mkern 1mu} {z^2} - 5{\mkern 1mu} {x^3}{\mkern 1mu} z - {x^3} + 3{\mkern 1mu} {x^2}{\mkern 1mu} {z^2} + 3{\mkern 1mu} {x^2}{\mkern 1mu} z + {x^2} - 2{\mkern 1mu} x{\mkern 1mu} {z^2} - x{\mkern 1mu} z - 2{\mkern 1mu} x\\ {R_{02}} = prem\left( {{P_3},{P_2},y} \right) = - {x^4} + 2{\mkern 1mu} {x^3}{\mkern 1mu} z + 2{\mkern 1mu} {x^3} - {x^2}{\mkern 1mu} {z^2} - 4{\mkern 1mu} {x^2}{\mkern 1mu} z - 2{\mkern 1mu} {x^2} + 2{\mkern 1mu} x{\mkern 1mu} {z^2} + 2{\mkern 1mu} x{\mkern 1mu} z\\\hline {{\cal B}_1} = \left\{ {{P_2},{R_{02}}} \right\},{{\cal F}_1} = {\cal P} \cup {{\cal B}_0} \cup {{\cal R}_0} = \left\{ {{P_1},{P_2},{P_3},{R_{01}},{R_{02}}} \right\}\\ {R_{11}} = prem\left( {{R_{01}},{R_{02}},x} \right) = {x^3}{\mkern 1mu} z - {x^3} - {x^2}{\mkern 1mu} {z^2} - {x^2}{\mkern 1mu} z - {x^2} + 2{\mkern 1mu} x{\mkern 1mu} {z^2} + x{\mkern 1mu} z + 2{\mkern 1mu} x\\ {R_{12}} = prem\left( {{R_{02}},{R_0}_2,x} \right) = 0\\ {R_{13}} = prem\left( {prem\left( {{R_{01}},{P_2},y} \right),{R_{02}},x} \right) = {x^3}{\mkern 1mu} z - {x^3} - {x^2}{\mkern 1mu} {z^2} - {x^2}{\mkern 1mu} z - {x^2} + 2{\mkern 1mu} x{\mkern 1mu} {z^2} + x{\mkern 1mu} z + 2{\mkern 1mu} x\\\hline {{\cal B}_2} = \left\{ {{P_2},{R_{11}}} \right\},{{\cal F}_2} = {\cal P} \cup {{\cal B}_1} \cup {{\cal R}_1} = \left\{ {{P_1},{P_2},{P_3},{R_{11}},{R_{02}}} \right\}\\ {R_{21}} = prem\left( {{R_{01}},{R_{11}},x} \right) = 2{\mkern 1mu} {x^2}{\mkern 1mu} {z^3} - 5{\mkern 1mu} {x^2}{\mkern 1mu} {z^2} - 11{\mkern 1mu} {x^2}{\mkern 1mu} z - 13{\mkern 1mu} {x^2} - 2{\mkern 1mu} x{\mkern 1mu} {z^4} + 5{\mkern 1mu} x{\mkern 1mu} {z^3} + 15{\mkern 1mu} x{\mkern 1mu} {z^2} + 13{\mkern 1mu} x{\mkern 1mu} z + 14{\mkern 1mu} x\\ {R_{22}} = prem\left( {{R_{02}},{R_{11}},x} \right) = {x^2}{\mkern 1mu} {z^2} - 3{\mkern 1mu} {x^2}{\mkern 1mu} z - 7{\mkern 1mu} {x^2} - x{\mkern 1mu} {z^3} + 3{\mkern 1mu} x{\mkern 1mu} {z^2} + 7{\mkern 1mu} x{\mkern 1mu} z + 6{\mkern 1mu} x\\ {R_{23}} = prem\left( {prem\left( {{R_{02}},{P_2},y} \right),{R_{11}},x} \right) = {x^2}{\mkern 1mu} {z^2} - 3{\mkern 1mu} {x^2}{\mkern 1mu} z - 7{\mkern 1mu} {x^2} - x{\mkern 1mu} {z^3} + 3{\mkern 1mu} x{\mkern 1mu} {z^2} + 7{\mkern 1mu} x{\mkern 1mu} z + 6{\mkern 1mu} x \\\hline{{\cal B}_3} = \left\{ {{P_2},{R_{22}}} \right\},{{\cal F}_3} = {\cal P} \cup {{\cal B}_2} \cup {{\cal R}_2} = \left\{ {{P_1},{P_2},{P_3},{R_{11}},{R_{21}},{R_{22}}} \right\}\\ {R_{31}} = prem\left( {{R_{01}},{R_{22}},x} \right) = 4{\mkern 1mu} x{\mkern 1mu} {z^8} - 36{\mkern 1mu} x{\mkern 1mu} {z^7} - 4{\mkern 1mu} x{\mkern 1mu} {z^6} + 576{\mkern 1mu} x{\mkern 1mu} {z^5} - 192{\mkern 1mu} x{\mkern 1mu} {z^4} - 2016{\mkern 1mu} x{\mkern 1mu} {z^3} - 3508{\mkern 1mu} x{\mkern 1mu} {z^2} - 5004{\mkern 1mu} x{\mkern 1mu} z - 2780{\mkern 1mu} x\\ {R_{32}} = prem\left( {{R_{02}},{R_{22}},x} \right) = 12 x {z^4} - 108 x {z^3} + 120 x {z^2} + 540 x z + 300 x\\ {R_{33}} = prem\left( {{R_{11}},{R_{22}},x} \right) = - 4 x {z^4} + 24 x {z^3} - 16 x {z^2} - 24 x z + 20 x\\ {R_{34}} = prem\left( {{R_{21}},{R_{22}},x} \right) = 4 x {z^4} - 24 x {z^3} + 16 x {z^2} + 24 x z - 20 x \\\hline{{\cal B}_4} = \left\{ {{P_2},{R_{31}}\left( {{R_{32}}|{R_{33}}} \right)} \right\},{{\cal F}_4} = {\cal P} \cup {{\cal B}_3} \cup {{\cal R}_3} = \left\{ {{P_1},{P_2},{P_3},{R_{31}},{R_{32}},{R_{33}},{R_{22}}} \right\}\\ {R_{41}} = prem\left( {{R_{01}},{R_{31}},x} \right);{R_{42}} = prem\left( {{R_{02}},{R_{31}},x} \right);{R_{43}} = prem\left( {{R_{32}},{R_{31}},x} \right)\\ {R_{44}} = prem\left( {{R_{33}},{R_{31}},x} \right);{R_{45}} = prem\left( {{R_{22}},{R_{31}},x} \right),{R_{41}} = \cdots = {R_{45}} = 0 \end{array}\]
注意到这里我得到的特征列是 ${\cal B}_4$ 但是由于特征列的取法可以不同,如果取为:
$$
{{\cal B}_4} = \left\{ {{P_2},{R_{32}}} \right\}$$就得到了文中给的特征列:
$$
R_{32} =12\,x\,\left(z^4-9\,z^3+10\,z^2+45\,z+25\right)$$注意到这里不同的特征列都包含这个方程组的根,事实上:
$$
{R_{31}},{R_{32}},{R_{33}}$$都以 $z = -1,5;x=0$ 为根。

3149

主题

8388

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65401
QQ

显示全部楼层

hbghlyj 发表于 2024-12-25 10:17

用matlab实现的伪余和上述计算:

function coef = polynomial_coef(ply,para)
if ply == 0
    coef = [0];
else
coef = sym(zeros(1,10));
ptr = 1;
while(ply ~= 0)
    coef(1,ptr) = subs(ply,[para],[0])/gamma(ptr);
    ply = diff(ply,para);
    ptr = ptr + 1;
end
coef = coef(1:ptr-1);
coef = coef(end:-1:1);
% if coef(1) == 0
%     coef = coef(2:end);
% end
end
% f = x^2 + y^2 - z^2 + x*y - 2*y*z + 5;
% g = x - y^2 + z^2 -6*z + y;
% h = x^2 + y.^2/2 +z^2/3 -x*y +1;
% 将函数变成向量:fz = polynomial_coef(f,z)
% 将向量还原成函数:sum(fz.*(z*ones(1,length(fz))).^(length(fz)*ones(1,length(fz)) - cumsum(ones(1,length(fz)))))


function prem = polynomial_prem(F,G,para)
R = F;
hz = polynomial_coef(G,para);
lz =length(hz) - 1;% 算法prem中的l
Q = 0;
R_coef = polynomial_coef(R,para);
while(length(R_coef)-1>=lz)
length(R_coef)-1-lz;
R = expand(hz(1)*R - R_coef(1)*para^(length(R_coef)-1-lz)*G);
Q = expand(hz(1)*Q + R_coef(1)*para^(length(R_coef)-1-lz));
R_coef = polynomial_coef(R,para);
length(R_coef);
end
prem = R;


syms x y z;
P1 = x*y*z - x*y^2 - z - x - y;
P2 = x*z - x^2 - z - y + x;
P3 = z^2 - x^2 - y^2;
%% B0 = {P2},F0 = {P1,P2,P3} ,z<x<y
R01 = polynomial_prem(P1,P2,y);
R02 = polynomial_prem(P3,P2,y);
%% B1 = {P2,R02},F1 = P + B0 + R0 = {P1,P2,P3,R01,R02}
R11 = polynomial_prem(R01,R02,x);% polynomial_prem(polynomial_prem(P1,P2,y),R02,x);
R12 = polynomial_prem(R02,R02,x);% polynomial_prem(polynomial_prem(P3,P2,y),R02,x);%结果是0,摒除
R13 = polynomial_prem(polynomial_prem(R01,P2,y),R02,x);%等于R11(x,z)
%% B2 = {P2(y,x,z),R11(x,z)},F2 = P + B1 + R1 = {P1,P2,P3,R02,R11}
R21 = polynomial_prem(R01,R11,x); % polynomial_prem(polynomial_prem(P1,P2,y),R11,x);
R22 = polynomial_prem(R02,R11,x);% polynomial_prem(polynomial_prem(P3,P2,y),R11,x);
R23 = polynomial_prem(polynomial_prem(R02,P2,y),R11,x);% 等于R22(x,z)
%% B3 = {P2,R22(或)R23},取前者,F3 = P + B2 + R2 = {P1,P2,P3,R11,R21,R22}
R31 = polynomial_prem(polynomial_prem(P1,P2,y),R22,x);
R32 = polynomial_prem(polynomial_prem(P3,P2,y),R22,x);
R33 = polynomial_prem(polynomial_prem(R11,P2,y),R22,x);
R34 = polynomial_prem(polynomial_prem(R21,P2,y),R22,x);% 和R33差一个负号
%% B4 = {P2,R31(或)R32(或)R33},取第一个,F4 = P + B3 + R3 = {P1,P2,P3,R31,R32,R33,R22}
R41 = polynomial_prem(polynomial_prem(P1,P2,y),R31,x);
R42 = polynomial_prem(polynomial_prem(P3,P2,y),R31,x);
R43 = polynomial_prem(polynomial_prem(R32,P2,y),R31,x);
R44 = polynomial_prem(polynomial_prem(R33,P2,y),R31,x);
R45 = polynomial_prem(polynomial_prem(R22,P2,y),R31,x);
%% 至此 R4 = {空集},直接得到特征列B4
%% 注意到B4中选取三个基列是等价的,但是宜选取对于x相等次数下z次数较低的,便于验证根的正确性.

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 16:33

Powered by Discuz!

× 快速回复 返回顶部 返回列表