中国科学院大学学报  2016, Vol. 33 Issue (1): 23-30   PDF    
判断有理系数多项式方程是否存在实数解的初等方法
王蒙, 陈玉福     
中国科学院大学数学科学学院, 北京 100049
摘要: 给出判断有理系数多元多项式方程组是否存在实数解的初等方法,从而证明多元多项式方程组的实解存在性可在有限步内自动判定.基于此,给出判定有理系数多元多项式方程组是否存在实数解的算法.
关键词: 判别式矩阵     判别式序列     数学归纳法    
An elementary method for verifying the existence of real roots of rational polynomial equations
WANG Meng, CHEN Yufu     
School of Mathematical Sciences, University of Chinese Academy of Sciences, Beijing 100049, China
Abstract: In this paper we present an elementary method to decide whether a system of multivariate polynomials with rational coefficients has a real solution. Based on our discussion of the method, an algorithm is shown, which implies that verifying a system of multivariate polynomials with rational coefficients has a real solution can be completed in finite steps.
Key words: discriminant matrix     discriminant sequence     mathematical induction    

判断多项式方程和多项式方程组在代数闭域上是否有解的问题已经解决[1-5],特别是在复数域上是否有解的问题已经解决.但是判断有理系数多项式方程和有理系数多项式方程组在实数域上是否有解的问题,很长时间内都没有解决.Tarski[6]在1948年指出,所有初等代数的判定问题都可以解决,并建立了实闭域上的一阶命题理论.有理系数多项式方程组是否存在实数解属于初等代数判定问题,因而,理论上可以解决.但是他们没有给出具体的判定方法. 文献[7]给出如何判断单变元半代数问题是否存在实数解的算法,并指出该算法可以扩展为判定多元半代数问题[8-11]的实解存在性的算法.主要思路是把n变元半代数问题归约为有限个n-1 元半代数问题.但是,如何将n变元的半代数问题归约为n-1元半代数问题,以及如何判断是否存在实数使得一组多项式都大于零这些关键问题,文献[7]都没有给出具体的步骤.本文给出判断有理系数多元多项式组实解存在性的初等方法.该方法基于杨路等人提出的单变元多项式的判别式理论[12],通过分类和归纳判断实数解是否存在.在解决单变元半代数问题时,这是归纳的基础,本文的方法不需将多项式组化成互素的,因此,本文的算法与文献[7]给出算法有实质性的差别.

1 单变元多项式判别式

单变元多项式的判别式理论[5]由杨路提出,根据多项式的判别式,可以得出多项式方程的不同的实数解的个数.

定义1.1 给定单变元多项式

$f\left( x \right)={{a}_{n}}\cdot {{x}^{n}}+{{a}_{n-1}}\cdot {{x}^{n-1}}+\ldots +{{a}_{1}}\cdot x+{{a}_{0}};{{a}_{n}}\ne 0,$ (1)

其系数构成的2n阶方阵

$Discm\left( f \right):=\text{ }\left[ \begin{matrix} {{a}_{n}} & {{a}_{n-1}} & {{a}_{n-2}} & \ldots & {{a}_{0}} & {} & {} & {} \\ 0 & n\cdot {{a}_{n}} & \left( n-1 \right)\cdot {{a}_{n-1}} & \ldots & {{a}_{1}} & {} & {} & {} \\ {} & {{a}_{n}} & \left( n-1 \right)\cdot {{a}_{n-1}} & \ldots & {{a}_{1}} & {{a}_{0}} & {} & {} \\ {} & 0 & n\cdot {{a}_{n}} & \ldots & 2\cdot {{a}_{2}} & {{a}_{1}} & {} & {} \\ {} & {} & {} & {} & \vdots & \vdots & {} & {} \\ {} & {} & {} & {{a}_{n}} & {{a}_{n-1}} & {{a}_{n-2}} & \ldots & {{a}_{0}} \\ {} & {} & {} & 0 & n\cdot {{a}_{n}} & \left( n-1 \right)\cdot {{a}_{n-1}} & \ldots & {{a}_{1}} \\ \end{matrix} \right]$

称为f(x)的判别矩阵.用Dk表示判别矩阵的2k 阶顺序主子式.约定D0=1,称

$Discl\left( f \right):=[{{D}_{0}},{{D}_{1}},\ldots ,{{D}_{n}}]$ (2)

为多项式f(x)的判别式序列.

定义1.2 对于实数序列

$\bar{c}:=[{{c}_{0}},{{c}_{1}},{{c}_{2}},\ldots ,{{c}_{n}}]$ (3)

$\overline{sgn(c):}=[sgn({{c}_{0}}),sgn({{c}_{1}}),sgn({{c}_{2}}),\ldots ,sgn({{c}_{n}})]$

为实数序列c的符号表.

定义1.3 给定一个符号表[s0,s1,s2,…sn],符号表的首项s0不为零.依据以下规则构造一个新的符号表[ψ012,…,ψn].构造规则如下:如果[si,si+1,…,si+j]是给定符号表的一部分,满足

${{s}_{i}}\ne 0;{{s}_{i+1}}={{s}_{i+2}}=\ldots ={{s}_{i+j-1}}=0;{{s}_{i+j}}\ne 0;$ (4)

那么就将

$[{{s}_{i+1}},{{s}_{i+2}},\ldots ,{{s}_{i+j-1}}]$ (5)

替换为

$[-{{s}_{i}},-{{s}_{i}},{{s}_{i}},{{s}_{i}},-{{s}_{i}},-{{s}_{i}},{{s}_{i}},{{s}_{i}},-{{s}_{i}},\ldots ],$ (6)

变换前后项数不变,而且变换后序列不再含有0 项.符号表[ψ012,…,ψn]称为符号表[s0,s1,s2,…,sn]的符号修订表.

定理1.1 [1] 如果实系数多项式f(x)的判别式序列的符号修订表的变号数为v,那么f(x)的互异共轭虚根对的数目就是v; 如果该修订表中非零元的个数是l,则f(x) 的互异实根数目是l-1-2v.

定义1.4 对于实系数多项式

$f\left( x \right)={{a}_{n}}\cdot {{x}^{n}}+{{a}_{n-1}}\cdot {{x}^{n-1}}+\ldots +{{a}_{1}}\cdot x+{{a}_{0}}$ (7)

和另一个实系数多项式g(x),设

$r\left( x \right)=rem\left( f\prime g,f \right)={{b}_{n-1}}\cdot {{x}^{n-1}}+{{b}_{n-2}}\cdot {{x}^{n-2}}+\ldots +{{b}_{1}}\cdot x+{{b}_{0}},$ (8)

称2n阶方阵

$Discm\left( f,g \right):=\left[ \begin{matrix} {{a}_{n}} & {{a}_{n-1}} & {{a}_{n-2}} & \ldots & {{a}_{0}} & {} & {} & {} \\ 0 & {{b}_{n-1}} & {{b}_{n-2}} & \ldots & {{b}_{0}} & {} & {} & {} \\ {} & {{a}_{n}} & {{a}_{n-1}} & \ldots & {{a}_{1}} & {{a}_{0}} & {} & {} \\ {} & {} & 0 & {{b}_{n-1}} & \ldots & {{b}_{2}} & {{b}_{0}} & {} \\ {} & {} & {} & {} & {} & \vdots & {} & {} \\ {} & {} & {} & {{a}_{n}} & {{a}_{n-1}} & {{a}_{n-2}} & \ldots & {{a}_{0}} \\ {} & {} & {} & 0 & {{b}_{n-1}} & {{b}_{n-2}} & \ldots & {{b}_{0}} \\ \end{matrix} \right]$

f(x)关于g(x)的广义判别式矩阵[2],令D0=1,Dk(f,g)为矩阵Discm(f,g)的2k 阶顺序主子式,则

$Discl\left( f,g \right):=[{{D}_{0}},{{D}_{1}}\left( f,g \right),\ldots ,{{D}_{n}}\left( f,g \right)]$ (9)

称为f(x)关于g(x)的广义判别式序列.

定理1.2 给定实系数多项式f(x),g(x),如果Discl(f,g) 的符号修订表的变号数是v,而非零元素的个数是l,则

$l-1-2\cdot v={{f}_{g}}_{^{+}}-{{f}_{g}}_{^{-}},$ (10)

其中

${{f}_{g}}_{^{+}}=\left| \{x\in R \right|f\left( x \right)=0,g\left( x \right)>0\}|,{{f}_{g}}_{^{-}}=\left| \{x\in R \right|f\left( x \right)=0,g\left( x \right)<0\}|.$ (11)

定义1.5 问题P(n):

$\bar{g}=[{{g}_{1}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{n}}),{{g}_{2}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{n}}),\ldots ,{{g}_{m}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{n}})],$ (12)

∀i,gi(x1,x2,…,xn)是关于未定元(x1,x2,…,xn)的有理系数多项式.

$\bar{c}=[{{c}_{1}},{{c}_{2}},\ldots ,{{c}_{m}}],$ (13)

∀i,ci是一个实数.

是否存在实数(x10,x20,…,xn0),使得

$\forall i,({{c}_{i}}\ne 0\Rightarrow {{g}_{i}}({{x}^{0}}_{1},{{x}^{0}}_{2},\ldots ,{{x}^{0}}_{n})\cdot {{c}_{i}}>0)\wedge ({{c}_{i}}=0\Rightarrow {{g}_{i}}({{x}^{0}}_{1},{{x}^{0}}_{2},\ldots ,{{x}^{0}}_{n})=0).$ (14)

为了表述方便,下文要用到一些记号,下面指明这些记号的含义.

符号表是一个由0,1,-1组成的有限长的序列.对于任何一个符号表c,如果c 的符号修订表的非零元个数为l,变号数为v,那么记号number(c) 定义为 number(c):=l-2·v-1. degree(f(x1,x2,…,xn),xi)记为多项式f(x1,x2,…,xn) 关于未定元xi 的次数. coeff(f(x1,x2,…,xn),xi,k)记为多项式f(x1,x2,…,xn)关于未定元xik 次系数,一般是个关于未定元x1,x2,…,${\mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over x} _i}$,…,xn的多项式. DiscriminantSequence(f(x1,x2,…,xn),xi) 记为多项式f(x1,x2,…,xn) 关于未定元xi的判别式序列. Discriminant Sequence(f(x1,x2,…,xn),g(x1,x2,…,xn),xi) 记为根据定义4 以xi 为主变元,求得的判别式序列. trunc(f,xi,k) 记为将f 中所有关于未定元xi 的次数大于k 的项截掉之后剩下的项组成的多项式.

2 P(1)可以在有限步内解决

定义2.1 Q(n)是这样一个问题: 存在多少个不同的实数,使得

f(x)=0,g1(x)>0,g2(x)>0,…,gn(x) >0,

f(x)不是零次多项式.

定理2.1 用记号number([f(x),g1(x),g2(x),…,gn(x)])表示问题Q(n) 的解,也就是说存在number([f(x),g1(x),g2(x),…,gn(x)]) 个不同的实数使得

$f\left( x \right)=0,{{g}_{1}}\left( x \right)>0,{{g}_{2}}\left( x \right)>0,\ldots ,{{g}_{n}}\left( x \right)>0,$

number([f,g1,g2,…,gn]) 可以写成有限多个形如c·number(DiscrimiantSequence(h(f,g1,g2,…,gn),x))(c是有理数,h是关于f,g1,…,gk的多项式)的项及有限多个形如

number(DiscriminantSequence(h1(f,g1,g2,…,gn),h2(f,g1,g2,…,gn),x),

(d是有理数,h1,h2是关于f,g1,…,gn的多项式)的项的和.

证明:要求解存在多少个不同的实数,使得f(x)=0,g1(x) >0. 根据定理1.1,可以求出f(x)=0有多少个不同的实数解,计f(x)=0一共有a 个不同的实数解. 根据定理1.1,可以求出f(x)2+g1(x)2=0有多少个不同的实数解,设f(x)2+g1(x)2=0一共有b个不同的实数解. 根据定理1.2,可以求出fg+1-fg-1记为c. 那么一共有(a+c-b)/2个不同的实数,使得f(x)=0,g1(x)>0.所以求解的公式为

$\begin{array}{l} (number(DiscriminantSequence\left( {f,x} \right)) - \\ number(DiscriminantSequence({f^2} + {g^2}_1,x)) + \\ number(DiscriminantSequence(f,{g_1},x)))/2 \end{array}$ (15)

假设对于Q(k)number([f,g1,g2,…,gk])可以表示成有限多个形如

number(Discrimiant(h(f,g1,g2,…,gk),x)),

(c是有理数,h是关于f,g1,…,gk的多项式)的项及有限多个形如

d·number(DiscriminantSequence(h1(f,g1,g2,…,gk),h2(f,g1,g2,…,gk),x),

(d是有理数,h1,h2是关于f,g1,…,gk的多项式)的项的和.根据假设,可以求出以下5个系统的不同的实数解的个数(分别用记号a,b,c,d,e表示),

$\left\{ \begin{matrix} f\left( x \right)=0 \\ {{g}_{1}}\left( x \right)>0 \\ \vdots \\ {{g}_{k}}\left( x \right)>0 \\ \end{matrix} \right.$ (16)
$\begin{align} & \\ & \left\{ \begin{matrix} f\left( x \right)=0 \\ {{g}_{k+1}}\left( x \right)>0 \\ {{g}_{2}}\left( x \right)>0 \\ \vdots \\ {{g}_{k}}\left( x \right)>0 \\ \end{matrix} \right. \\ \end{align}$ (17)
$\left\{ \begin{matrix} f{{\left( x \right)}^{2}}+{{g}_{1}}{{\left( x \right)}^{2}}=0 \\ {{g}_{k+1}}\left( x \right)>0 \\ {{g}_{2}}\left( x \right)>0 \\ \vdots \\ {{g}_{k}}\left( x \right)>0 \\ \end{matrix} \right.$ (18)
$\left\{ \begin{matrix} f{{\left( x \right)}^{2}}+{{g}_{k+1}}{{\left( x \right)}^{2}}=0 \\ {{g}_{1}}\left( x \right)>0 \\ \vdots \\ {{g}_{k}}\left( x \right)>0 \\ \end{matrix} \right.$ (19)
$\left\{ \begin{matrix} f\left( x \right)=0 \\ -{{g}_{1}}\left( x \right)\cdot {{g}_{k+1}}\left( x \right)>0 \\ \vdots \\ {{g}_{k}}\left( x \right)>0 \\ \end{matrix} \right.$ (20)
$\left\{ \begin{matrix} f\left( x \right)=0 \\ {{g}_{1}}\left( x \right)>0 \\ \vdots \\ {{g}_{k+1}}\left( x \right)>0 \\ \end{matrix} \right.$ (21)

那么满足(21)式的不同的实数的个数为(a+b-c-d-e)/2.根据假设a,b,c,d,e可以写成有限多个形如

c·number(DiscrimiantSequence(h(f,g1,g2,…,gk+1),x)),

(c是有理数,h是关于f,g1,…,gk的多项式)的项及有限多个形如

d·number(DiscriminantSequence(h1(f,g1,g2,…,gk+1),h2(f,g1,g2,…,gk+1),x),

(d是有理数,h1,h2是关于f,g1,…,gk+1的多项式)的项的和.

所以满足式(21)的不同的实数的个数可以表示成有限多个形如

c·number(DiscrimiantSequence(h(f,g1,g2,…,gk+1),x)),

(c是有理数,h是关于f,g1,…,gk的多项式)的项及有限多个形如

d·number(DiscriminantSequence(h1(f,g1,g2,…,gk+1),h2(f,g1,g2,…,gk+1),x),

(d是有理数,h1,h2是关于f,g1,…,gk+1的多项式)的项的和.

综上所述,number([f,g1,g2,…,gn])可以写成有限多个形如

c·number(DiscrimiantSequence(h(f,g1,g2,…,gn),x))

(c是有理数,h是关于f,g1,…,gk的多项式)的项及有限多个形如

d·number(DiscriminantSequence(h1(f,g1,g2,…,gn),h2(f,g1,g2,…,gn),x),

(d是有理数,h1,h2是关于f,g1,…,gn的多项式)的项的和.

定理2.2 P(1)是可以通过有限步运算解决的.

证明:沿用定义问题P(n)时用到的记号,如果序列c的任意一项都为0.令F(x)=∑gi(x)2,那么存在实数x0,使得∀i,gi(x0)=0,当且仅当存在实数x1 使得F(x1)=0,下面证明这个结论.

如果存在实数(计为x0)使得i,gi(x0)=0,那么∑gi(x0)2=0,也就是说F(x0)=0;另一方面,因为∀i,x⇒gi(x)2≥0,所以如果存在实数(计为x0) 使得F(x0)=0,那么∀i,gi(x0)=0.综上所述,存在实数x0使得∀i,gi(x0)=0, 当且仅当存在实数x1 使得F(x1)=0.

如果F(x)是个零次多项式,可直接判断F(0)是否为零.为零,有实数解;否则没有实数解.如果F(x)的次数大于零,如果 number(DiscriminantSequence(F(x),x)) >0,那么P(1)存在实数解,否则不存在.

如果c中存在等于0的项,也存在不等于0的项(令F(x)=∑ci=0gi(x)2),而且F(x)不是零多项式,那么,归纳起来,如果F(x)是一个次数大于零的多项式,那么可以根据问题Q(n)的求解公式,判断是否存在实数解.如果F(x)的次数为零次,那么F(x)是一个不为零的常数,此P(1)问题无解.

所以P(1)在条件∃ici=0∧∃ici≠0∧∑ci=0gi(x)2≠0下,可以在有限步内判断是否存在实数解.

如果∀i,ci≠0,那么问题等价于求解是否存在实数x0使得,

$\forall i,{{c}_{i}}\cdot {{g}_{i}}({{x}^{0}})>0,$ (22)

设ci·gi(x)的无平方分部分为hi(x),则方程

$\underset{i}{\mathop{\prod }}\,{{h}_{i}}\left( x \right)=0$

可能存在实数根,也可能不存在,分情况讨论.

存在实数根时,设

${{\alpha }_{1}},\ldots ,{{\alpha }_{k}}$

为方程的不同的实根(按从小到大排列).添加记号α0=-∞,αk+1=∞,那么∀i∈N∧i≥0∧i≤k∀j,gj(x)在区间(αii+1)上正负号保持不变.所以如果存在位于(αii+1) 的实数x0 满足式(22)要求.那么

$\forall a\in ({{\alpha }_{i}},{{\alpha }_{i+1}}),$

a满足式(22)要求.

$\forall i,j$

如果hji) >0,那么在αi 的足够小的邻域内有gj(x)>0恒成立;如果hji) <0,那么在αi的足够小的邻域内有gj(x)<0恒成立;如果hji)=0因为hj(x) 是无平方的,所以$\frac{d{{h}_{j}}\left( x \right)}{dx}\ne 0$.如果$\frac{d{{h}_{j}}\left( x \right)}{dx}>0,$表示h(x)在αi的右边大于零;如果$\frac{d{{h}_{j}}\left( x \right)}{dx}<0,$表示h(x)在αi的左边大于零.

存在满足式(22)要求的实数x0,那么x0一定位于某个(αii+1)之间.当然可能会发生这样的情况αi=-∞ 或者αi+1=∞.但是αii+1 中至少有一个为实数,设αi 是实数(另一种情况,可以类似地讨论).所有的gj(x) 要在实数αi右边的足够小的邻域内都大于零,根据之前的分析,hji) >0或者${{h}_{j}}({{\alpha }_{i}})=0\wedge \frac{d{{h}_{i}}({{\alpha }_{i}})}{dx}>0.$.

如果∏hi(x)=0在实数域上无解,那么存在实数满足(22)的条件,当且仅当∀i,hi(0) >0.

综上所述.存在实数满足(22)要求,当且仅当

$(\forall x\in R\Rightarrow \prod {{h}_{i}}\left( x \right)\ne 0)\wedge (\forall i,{{h}_{i}}\left( 0 \right)>0),$ (23)

或者 存在一个由大于等于1小于等于m的某些自然数构成的集合A,满足下面要求:

$\exists x\in R\Rightarrow (\forall j\in A\Rightarrow {{g}_{j}}\left( x \right)>0)\wedge (\forall j\in A\Rightarrow {{g}_{j}}\left( x \right)=0)\wedge (\forall j\in A,k\in A\Rightarrow \frac{d{{g}_{j}}\left( x \right)}{dx}\cdot \frac{d{{g}_{k}}\left( x \right)}{dx}>0),$ (24)

式(24)可以根据求解问题Q(n)的公式求解,而(23)式可以根据定理1.1判断∏hi(x)=0有没有解,直接代入判断∀i,hi(0)>0是否成立即可,所以在∀i,ci≠0 条件下,P(1) 是可以在有限步内解决的.

最后一种情况是

$\exists i,{{c}_{i}}=0\wedge \exists j,{{c}_{j}}\ne 0\wedge \underset{{{c}_{i}}=0}{\mathop{\sum }}\,{{g}_{i}}{{\left( x \right)}^{2}}\equiv 0,$ (25)

这种情况下问题可以转换为P(1)在∀i,ci≠0的条件下的问题,所以也是可以在有限步内解决的.

综上所述,P(1)可以在有限步内得到解决.

3 P(n)可以在有限步内解决

定理3.1 假设P(k)是可以在有限步内解决的,那么P(k+1)是可以在有限步内解决的.

证明: P(n)问题的c可能只有等于零的项,可能只有不为零的项,可能既有等于零的项,又有不为零的项.分类讨论.

如果

$\forall i,{{c}_{i}}=0,$ (26)

$F({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}})=\sum {{g}_{i}}{{({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}})}^{2}},$

那么当且仅当∃(x10,x20,…,xk+10)使得F(x10,x20,…,xk+10)=0时,原问题有解.

选择x1为主变元,如果∃(x10,x20,…,xk+10)使得F(x10,x20,…,xk+10)=0,那么对于关于x1的多项式F(x1,x20,…,xk+10)=0有实数解.要使得关于x1的多项式F(x1,x20,…,xk+10)=0有实数解,需要满足以下情况中的一种:

如果F(x1,x2,…,xk+1)|x2=x20,x3=x30,…,xk+1=xk+10关于变元x1的次数为0,那么,

$\forall i\ge 0\Rightarrow coeff(F({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},i)\text{ }{{|}_{x}}_{2}={{x}^{0}}_{2},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1}=0$ (27)

coeff(F(x1,x2,…,xk+1),x1,i) 是关于未定元x2,x3,·,xk+1 的多项式,根据假设,P(k)是可以在有限步内解决的.

F(x1,x2,…,xk+1)|x2=x20,x3=x30,…,xk+1=x0k+1 关于 x1 的次数为d,那么,

$\begin{align} & (\forall i\in N\wedge italic>d\wedge i\le degree(F({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}), \\ & {{x}_{1}}))\Rightarrow coeff(F({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},i){{|}_{{{_{x}}_{2}}}}_{={{x}^{0}}_{2},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1}}=0) \\ & \wedge (coeff(F({{x}_{1}},{{x}_{2}},{{x}_{3}},\ldots ,{{x}_{k+1}}),{{x}_{1}},d){{|}_{{{_{x}}_{2}}}}_{={{x}^{0}}_{2},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1}}\ne \\ & 0)\wedge (number(DiscriminantSequence(trunc(F({{x}_{1}},{{x}_{2}}, \\ & \ldots ,{{x}_{k+1}}),{{x}_{1}},d),{{x}_{1}}){{|}_{x}}_{2}={{x}^{0}}_{2},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1})>0). \\ \end{align}$ (28)

这样就将P(k+1)归约为有限多个P(k)问题.根据假设,P(k)是可以在有限步内解决的.所以P(k+1)在条件(26)的情况下是可以在有限步内解决的.

如果

$\exists i,{{c}_{i}}=0\wedge \exists i,{{c}_{i}}\ne 0\wedge (f\left( x \right):=\underset{{{c}_{i}}=0}{\mathop{\sum }}\,{{g}_{i}}{{\left( x \right)}^{2}}\Rightarrow f\left( x \right)\equiv 0),$ (29)

那么P(k)有解,当且仅当存在实数向量(x10,x20,…,xk+10) 使得

$f({{x}^{0}}_{1},{{x}^{0}}_{2},\ldots ,{{x}^{0}}_{k+1})=0\forall i,{{c}_{i}}\ne 0\Rightarrow {{c}_{i}}\cdot {{g}_{i}}({{x}^{0}}_{1},{{x}^{0}}_{2},\ldots ,{{x}^{0}}_{k+1})>0;$ (30)

如果式(30)存在实数解,当且仅当满足下面情况中的一种:

(x20,…,x0k+1)使得

f(x1,x2,…,xk+1)|x2=x20,…,xk+1=xk=10是个次数为d的多项式,且d大于等于1.

那么要使得(30)式存在实数解,要求

$\begin{align} & number([f({{x}_{1}},{{x}_{2}}\ldots ,{{x}_{n}}),{{g}_{i}}_{1}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{n}}),\ldots , \\ & {{g}_{i}}_{m}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{n}})])= \\ & \underset{i=1}{\overset{i={{l}_{q}}_{1}}{\mathop{\sum }}}\,{{a}_{i}}\cdot number(DiscriminantSequence({{h}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{h}_{1i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}}))+ \\ & \underset{i={{l}_{q}}_{1}+1}{\overset{i={{l}_{q}}_{2}+{{l}_{q1}}}{\mathop{\sum }}}\,{{b}_{i}}\cdot number(DiscriminantSequence({{h}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}})), \\ \end{align}$ (31)

ci中不等于0的项一共有m个,依次计为i1,i2,…,im. 多项式hi(x1,x2,…,xk+1),h1i(x1,x2,…,xk+1)是根据f(x1,x2,…,xk+1)gi(x1,x2,…,xk+1)计算出来的多项式.而且只要f(x1,x2,…,xk+1)关于x1的次数大于等于1,那么所有hi(x1,x2,…,xk+1) 关于x1的次数都大于等于1.

为了求解出DiscriminantSequence(),需要对

${{h}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}})$

的次数分类讨论.

(30)式存在实数解,当且仅当

∀i,1≤i≤lq1+lq2

∃li,(li∈N)∧(li≥1),长度为li+1的实数序列ci满足.

存在(x20,x30,…,xk+10)∈Nk使得

$\begin{align} & (\forall j,j>{{l}_{i}},\Rightarrow \\ & coeff({{h}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},j){{|}_{^{{{_{x}}_{2}}}}}_{={{x}^{0}}_{2},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1}}= \\ & 0)\wedge (coeff({{h}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},{{l}_{i}}){{|}_{x}}_{2}={{x}^{0}}_{2},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1}\ne 0)\wedge \\ & (\underset{i=1}{\overset{i={{l}_{q}}_{1}}{\mathop{\sum }}}\,{{a}_{i}}\cdot number({{{\bar{c}}}^{i}})+\underset{i={{l}_{q}}_{1}+1}{\overset{i={{l}_{q}}_{1}+{{l}_{q}}_{2}}{\mathop{\sum }}}\,number({{{\bar{c}}}^{i}})>0)\wedge \\ & DiscriminantSequence(trunc({{h}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},{{l}_{i}}), \\ & {{x}_{1}}){{|}_{x}}_{2}={{x}^{0}}_{2},{{x}_{3}}={{x}^{0}}_{3},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1}的符号表为{{{\bar{c}}}^{i}}. \\ \end{align}$ (32)

求解是否存在(x20,x30,…,xk+10)使得(32)成立的问题,是个P(k) 问题.P(k+1) 可以规约为至多有限个P(k)问题,根据假设,P(k)是可以在有限步内解决的,所以P(k+1)是可以在有限步内解决的.

另一种可能是f(x1,x2,…,xk+1)|x2=x20,…,xk+1=xk+10为一个关于x1的零次多项式,即要求

$\sum coeff{{(f({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},i)}^{2}}{{|}_{x}}_{2}={{x}^{0}}_{2},\ldots ,{{x}_{k+1}}={{x}^{0}}_{k+1}=0.$

${{f}^{1}}({{x}_{2}},\ldots ,{{x}_{k+1}}):=\sum coeff{{(f({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},i)}^{2}},$

由于f(x1,x2,…,xk+1)≠0,所以f1(x2,…,xk+1)≠0. 如果f1(x2,…,xk+1)为常数,那么一定是一个非零的常数.

判断P(k+1)在约束(30)的情况下是否存在实数解的问题,转化为判断

${{f}^{1}}\left( {{x}_{2}},\ldots ,{{x}_{k+1}} \right)=0;\forall i,{{c}_{i}}\ne 0\Rightarrow {{c}_{i}}\cdot {{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}})>0$ (33)

是否有解.

假设原问题在式(30)条件下不能在有限步内判断,那么f(x1,x2,…,xk+1)|x2=x20,…,xk+1=xk+10关于x1是零次的.经过转化之后的f1(x2,…,xk+1)|x30,…,xk+1=xk+10关于x2的次数也为零(否则根据第1种情况下的讨论,可以在有限步内判断是否存在实数解),经过k+1次转换之后原问题转换成问题

${{f}^{k+1}}=0;\forall i,{{c}_{i}}\ne 0\Rightarrow {{c}_{i}}\cdot {{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}})>0;{{f}^{k+1}}是不为零的常数$

到了这一步可以判断无解.

所以与问题不能在有限步内解决矛盾.

综上所述,P(k+1)在式(30)条件下可以归约为有限多个P(k)问题,所以可以在有限步内解决.

$\forall i,{{c}_{i}}\ne 0,$ (34)

在之前讨论P(1)可在有限步内解决的解法中说到了这种情况,不过在一元多项式的情况下,我采取了简化的解法,这里给出一种复杂却普遍有效的方法:

在实数域上存在实数x0使得

$\forall i,{{c}_{i}}\cdot {{g}_{i}}({{x}_{0}})>0;$ (35)

当且仅当存在实数满足:

$\begin{align} & (\forall i,(\exists {{l}_{i}}s.t.(\forall l,{{l}_{i}}\Rightarrow \left( \frac{{{d}^{l}}{{c}_{i}}\cdot {{g}_{i}}\left( x \right)}{d{{x}^{l}}}=0) \right)\wedge (\frac{{{d}^{l}}_{i}{{c}_{i}}\cdot {{g}_{i}}\left( x \right)}{d{{x}^{l}}_{i}\ne 0}))\wedge ({{l}_{i}}\equiv 0(mod2)\Rightarrow \\ & \frac{{{d}^{l}}_{i}{{c}_{i}}\cdot {{g}_{i}}\left( x \right)}{d{{x}^{l}}_{i}}>0)))\wedge (\forall i,j({{l}_{i}}\equiv 1(mod2)\wedge {{l}_{j}}\equiv 1(mod2))\Rightarrow (\frac{{{d}^{l}}_{i}{{c}_{i}}\cdot {{g}_{i}}\left( x \right)}{d{{x}^{{{l}_{i}}}}}\cdot \frac{{{d}^{l}}_{j}{{c}_{j}}\cdot {{g}_{j}}\left( x \right)}{d{{x}^{l}}_{j}}>0)). \\ \end{align}$ (36)

对于多元多项式的情况,首先要选定主元,然后要讨论多项式对于主元可能的次数.如果(x10,x20,…,xk+10)是原问题的一个解,(x1,x20,…,xk+10) 使得 ci·gi(x1,x2,…,xk+1) 关于 x1 的次数为 li ,那么

$({{x}^{0}}_{1},{{x}^{0}}_{2},\ldots ,{{x}^{0}}_{k+1})$

满足:

$\begin{align} & f\left( {{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}} \right):=\underset{i}{\mathop{\sum }}\,\underset{k>{{l}_{i}}}{\mathop{\sum }}\,coeff{{({{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},k)}^{2}}, \\ & coeff({{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},{{l}_{i}})\ne 0,trunc({{c}_{i}}\cdot {{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},{{l}_{i}})>0, \\ \end{align}$ (37)

如果f(x1,x2,…,xk+1)≠0,那么这就是刚才讨论的P(k+1)在条件(30)时的情况.可以在有限步内解决.

如果f(x1,x2,…,xk+1)≡0那么问题转换为

$coeff({{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}},degree({{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}}),{{x}_{1}}))\ne 0,{{c}_{i}}\cdot {{g}_{i}}({{x}_{1}},{{x}_{2}},\ldots ,{{x}_{k+1}})>0.$ (38)

根据公式(36)问题归约为:

是否存在(x1,x2,…,xk+1)使得

$\begin{array}{l} (\forall i,coeff({g_i}({x_1},{x_2}, \ldots ,{x_{k + 1}}),{x_1},\\ degree({g_i}({x_1},{x_2}, \ldots ,{x_{k + 1}}),{x_1})) \ne 0) \wedge \\ ((\forall i,(\exists {l_i}s.t.(\forall l,li \Rightarrow \\ \left. {\left( {\frac{{{\partial ^l}{c_i} \cdot {g_i}\left( {{x_1},{x_2}, \ldots ,{x_{k + 1}}} \right)}}{{\partial {x^l}_1}} = 0} \right)} \right)\\ \left. { \wedge \left( {\frac{{{\partial ^{{l_i}}}{c_i} \cdot {g_i}\left( {{x_1},{x_2}, \ldots ,{x_{k + 1}}} \right)}}{{\partial {x^{{l_i}}}_1}} \ne 0} \right)} \right) \wedge \\ \left( {{l_i} \equiv 0\left( {mod2} \right) \Rightarrow } \right.\\ \left. {\left. {\left. {\frac{{{\partial ^{{l_i}}}{c_i} \cdot {g_i}\left( {{x_1},{x_2}, \ldots ,{x_{k + 1}}} \right)}}{{\partial {x^{{l_i}}}_1}} > 0} \right)} \right)} \right) \wedge \\ \forall i,j\left( {{l_i} \equiv 1\left( {mod2} \right) \wedge {l_j} \equiv 1\left( {mod2} \right)} \right) \Rightarrow \\ \left( {\frac{{{\partial ^{{l_i}}}{c_i} \cdot {g_i}\left( {{x_1},{x_2}, \ldots ,{x_{k + 1}}} \right)}}{{\partial {x^{{l_i}}}_1}}} \right..\\ \left. {\left. {\frac{{{\partial ^{{l_j}}}{c_j} \cdot {g_j}\left( {{x_1},{x_2}, \ldots ,{x_{k + 1}}} \right)}}{{\partial {x^{{l_j}}}_1}} > 0} \right)} \right), \end{array}$ (39)

(39)式是个在条件(29)下的问题P(k+1),可以在有限步内解决.综上所述,如果P(k) 可以在有限步内解决,那么P(k+1) 可以在有限步内解决.

根据数学归纳法,P(n)问题都可以在有限步内解决.

4 结语

本文给出算法判定有理系数多项式方程是否存在实数解.与文献[7]不同,本文根据杨路等人的多项式判别式的方法,不需要将多项式组化成互素的就可以判断多项式方程有没有实数解,而且本文详细介绍了如何将 n变元半代数问题归约为 n-1 变元的半代数问题.综上所述,本文给出了判断有理系数多项式方程是否存在实数解的新的算法.

参考文献
[1] Cox D A, Little J, O'Shea D. Ideals,varieties,and algorithms[M]. NewYork: Springer, 2007 .
[2] 陈玉福. 计算机代数讲义[M]. 北京: 高等教育出版社, 2009 .
[3] 王东明, 夏壁灿, 李子明. 计算机代数[M]. 北京: 清华大学出版社, 2007 .
[4] Yang L. Recent advances on determining the number of real roots of parametric polynomials[J]. Journal of Symbolic Computation , 1999, 28 (1) :225–242.
[5] Dubé T W. The structure of polynomial ideals and Grobner bases[J]. SIAM Journal on Computing , 1990, 19 (4) :750–773. DOI:10.1137/0219053
[6] Tarski A. A decision method for elementary algebra and geometry[M]. Berkeley: Univ of Calif Press Berkeley, 1951 .
[7] Ben-Or M, Kozen D, Reif J. The complexity of elementary algebra and geometry[J]. Journal of Computer and System Sciences , 1984, 32 (2) :251–264.
[8] Yang L, Hou X, Xia B. A complete algorithm for automated discovering of a class of inequality-type theorems[J]. Science in China Series F Information Sciences , 2001, 44 (1) :33–49. DOI:10.1007/BF02713938
[9] Mehlhorn K, Sagraloff M. A deterministic algorithm for isolating real roots of a real polynomial[J]. Journal of Symbolic Computation , 2011, 46 (1) :70–90. DOI:10.1016/j.jsc.2010.09.004
[10] Cheng J S, Gao X S, Guo L. Root isolation of zero-dimensional polynomial systems with linear univariate representation[J]. Journal of Symbolic Computation , 2012, 47 (7) :843–858. DOI:10.1016/j.jsc.2011.12.011
[11] Wang D. Automated deduction in geometry[M]. Berlin: Springer-Verlag, 1998 .
[12] Yang L, Hou X R, Zeng Z B. A complete discrimination system for polynomials[J]. 中国科学 E 辑 (英文版) , 1996, 6 :8.