Jump to content

System of polynomial equations: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverted 1 edit by 106.220.90.222 (talk) to last revision by OAbot
 
(76 intermediate revisions by 32 users not shown)
Line 1: Line 1:
{{Short description|Roots of multiple multivariate polynomials}}
{{redirect|Nonlinear system of equations|nonlinear differential equations|System of nonlinear differential equations}}
A '''system of polynomial equations''' is a set of [[simultaneous equations]] ''f''<sub>1</sub> = 0, ..., ''f''<sub>''h''</sub> = 0 where the ''f''<sub>''i''</sub> are [[Polynomial ring|polynomials]] in several variables, say ''x''<sub>1</sub>, ..., ''x''<sub>''n''</sub>, over some [[Field (mathematics)|field]] ''k''.
A '''system of polynomial equations''' (sometimes simply a '''polynomial system''') is a set of [[simultaneous equations]] {{math|1=''f''<sub>1</sub> = 0, ..., ''f''<sub>''h''</sub> = 0}} where the {{math|''f''<sub>''i''</sub>}} are [[polynomial]]s in several variables, say {{math|''x''<sub>1</sub>, ..., ''x''<sub>''n''</sub>}}, over some [[Field (mathematics)|field]] {{mvar|''k''}}.


A ''solution'' of a polynomial system is a set of values for the {{math|''x''<sub>''i''</sub>}}s which belong to some [[algebraically closed]] [[field extension]] {{math|''K''}} of {{math|''k''}}, and make all equations true. When {{math|''k''}} is the field of [[rational number]]s, {{math|''K''}} is generally assumed to be the field of [[complex number]]s, because each solution belongs to a [[field extension]] of {{math|''k''}}, which is isomorphic to a subfield of the complex numbers.
Usually, the field ''k'' is either the field of [[rational number]]s or a [[finite field]], although most of the theory applies to any field.


A ''solution'' is a set of the values for the ''x''<sub>''i''</sub> which make all of the equations true and which belong to some [[algebraically closed]] [[field extension]] ''K'' of ''k''. When ''k'' is the field of [[rational number]]s, ''K'' is the field of [[complex number]]s.
This article is about the methods for solving, that is, finding all solutions or describing them. As these methods are designed for being implemented in a computer, emphasis is given on fields {{math|''k''}} in which computation (including equality testing) is easy and efficient, that is the field of [[rational number]]s and [[finite field]]s.


Searching for solutions that belong to a specific set is a problem which is generally much more difficult, and is outside the scope of this article, except for the case of the solutions in a given finite field. For the case of solutions of which all components are integers or rational numbers, see [[Diophantine equation]].
==Examples and extensions==
===Trigonometric equations===
A trigonometric equation is an equation ''g'' = 0 where ''g'' is a [[trigonometric polynomial]]. Such an equation may be converted into a polynomial system by expanding the sines and cosines in it, replacing sin(''x'') and cos(''x'') by two new variables ''s'' and ''c'' and adding the new equation ''s''<sup>2</sup>&nbsp;+&nbsp;''c''<sup>2</sup>&nbsp;&minus;&nbsp;1&nbsp;=&nbsp;0.


==Definition==
For example, the equation
[[File:BarthSextic.png|thumb|The numerous singular points of the Barth sextic are the solutions of a polynomial system]]
A simple example of a system of polynomial equations is
:<math> \begin{align} x^2 + y^2 - 5&= 0 \\ xy - 2 &= 0. \end{align}</math>
Its solutions are the four pairs {{math|1=(''x'', ''y'') = (1, 2), (2, 1), (-1, -2), (-2, -1)}}. These solutions can easily be checked by substitution, but more work is needed for proving that there are no other solutions.


The subject of this article is the study of generalizations of such an examples, and the description of the methods that are used for computing the solutions.
:<math> \sin^3(x)+\cos(3x)=0 </math>


is equivalent to the polynomial system
A ''system of polynomial equations,'' or ''polynomial system'' is a collection of equations
:<math> \begin{align}

f_1\left(x_1, \ldots, x_m \right) &= 0 \\
:<math> \begin{cases}
& \;\;\vdots \\
s^3+4c^3-3c&=0\\
f_n\left(x_1, \ldots, x_m \right) &= 0,
s^2+c^2-1&=0.
\end{cases}
\end{align} </math>
where each {{math|''f<sub>h</sub>''}} is a [[polynomial]] in the [[indeterminate (variable)|indeterminates]] {{math|''x''<sub>1</sub>, ..., ''x''<sub>''m''</sub>}}, with integer coefficients, or coefficients in some fixed [[Field (mathematics)|field]], often the field of [[rational number]]s or a [[finite field]].<ref name=Bates_p4>{{harvnb|Bates|Sommese|Hauenstein|Wampler|2013|p=4}}</ref> Other fields of coefficients, such as the [[real number]]s, are less often used, as their elements cannot be represented in a computer (only approximations of real numbers can be used in computations, and these approximations are always rational numbers).
</math>

=== Solutions in a finite field ===
When solving a system over a finite field ''k'' with ''q'' elements, one is primarily interested in the solutions in ''k''. As the elements of ''k'' are exactly the solutions of the equation ''x''<sup>''q''</sup>&nbsp;&minus;&nbsp;''x''&nbsp;=&nbsp;0, it suffices, for restricting the solutions to ''k'', to add the equation ''x''<sub>''i''</sub><sup>''q''</sup>&nbsp;&minus;&nbsp;''x''<sub>''i''</sub>&nbsp;=&nbsp;0 for each variable&nbsp;''x''<sub>''i''</sub>.

=== Coefficients in a number field or in a finite field with non-prime order ===


A ''solution'' of a polynomial system is a [[tuple]] of values of {{math|(''x''<sub>1</sub>, ..., ''x''<sub>''m''</sub>)}} that satisfies all equations of the polynomial system. The solutions are sought in the [[complex number]]s, or more generally in an [[algebraically closed field]] containing the coefficients. In particular, in [[characteristic zero]], all [[complex number|complex]] solutions are sought. Searching for the [[real number|real]] or [[rational number|rational]] solutions are much more difficult problems that are not considered in this article.
The elements of a [[number field]] are usually represented as polynomials in a generator of the field which satisfies some univariate polynomial equation. To work with a polynomial system whose coefficients belong to a number field, it suffices to consider this generator as a new variable and to add the equation of the generator to the equations of the system. Thus solving a polynomial system over a number field is reduced to solving another system over the rational numbers.


The set of solutions is not always finite; for example, the solutions of the system
For example, if a system contains <math>\sqrt{2}</math>, a system over the rational numbers is obtained by adding the equation ''r''<sub>2</sub><sup>2</sup>&nbsp;&minus;&nbsp;2&nbsp;=&nbsp;0 and replacing <math>\sqrt{2}</math> by ''r''<sub>2</sub> in the other equations.
:<math> \begin{align} x(x-1) &= 0 \\ x(y-1) &= 0 \end{align}</math>
are a point {{math|1=(''x'',''y'') = (1,1)}} and a line {{math|1=''x'' = 0}}.<ref>{{harvnb|Bates|Sommese|Hauenstein|Wampler|2013|p=8}}</ref> Even when the solution set is finite, there is, in general, no [[closed-form expression]] of the solutions (in the case of a single equation, this is [[Abel–Ruffini theorem]]).


The [[Barth surface]], shown in the figure is the geometric representation of the solutions of a polynomial system reduced to a single equation of degree 6 in 3 variables. Some of its numerous [[singular point of an algebraic variety|singular points]] are visible on the image. They are the solutions of a system of 4 equations of degree 5 in 3 variables. Such an [[overdetermined system]] has no solution in general (that is if the coefficients are not specific). If it has a finite number of solutions, this number is at most {{math|1=5{{sup|3}} = 125}}, by [[Bézout's theorem]]. However, it has been shown that, for the case of the singular points of a surface of degree 6, the maximum number of solutions is 65, and is reached by the Barth surface.
In the case of a finite field, the same transformation allows always to suppose that the field ''k'' has a prime order.


==Basic properties and definitions==
==Basic properties and definitions==
A system is [[Overdetermined system|overdetermined]] if the number of equations is higher than the number of variables. A system is [[inconsistent equations|inconsistent]] if it has no solutions. By [[Hilbert's Nullstellensatz]] this means that 1 is a [[linear combination]] (with polynomials as coefficients) of the first members of the equations. Most but not all overdetermined systems, when constructed with random coefficients, are inconsistent. For example, the system &nbsp;''x''<sup>3</sup>&nbsp;&minus;&nbsp;1 =&nbsp;0, ''x''<sup>2</sup>&nbsp;&minus;&nbsp;1&nbsp;=&nbsp;0 is overdetermined (having two equations but only one unknown), but it is not inconsistent since it has the solution ''x'' =1.
A system is [[Overdetermined system|overdetermined]] if the number of equations is higher than the number of variables. A system is [[inconsistent equations|inconsistent]] if it has no [[complex number|complex]] solution (or, if the coefficients are not complex numbers, no solution in an [[algebraically closed field]] containing the coefficients). By [[Hilbert's Nullstellensatz]] this means that 1 is a [[linear combination]] (with polynomials as coefficients) of the first members of the equations. Most but not all overdetermined systems, when constructed with random coefficients, are inconsistent. For example, the system {{math|1=''x''<sup>3</sup>1 = 0, ''x''<sup>2</sup>1 = 0}} is overdetermined (having two equations but only one unknown), but it is not inconsistent since it has the solution {{math|1=''x'' = 1}}.


A system is [[Underdetermined system|underdetermined]] if the number of equations is lower than the number of the variables. An underdetermined system is either inconsistent or has infinitely many solutions in an algebraically closed extension ''K'' of&nbsp;''k''.
A system is [[Underdetermined system|underdetermined]] if the number of equations is lower than the number of the variables. An underdetermined system is either inconsistent or has infinitely many complex solutions (or solutions in an [[algebraically closed field]] that contains the coefficients of the equations). This is a non-trivial result of [[commutative algebra]] that involves, in particular, [[Hilbert's Nullstellensatz]] and [[Krull's principal ideal theorem]].


A system is [[Zero-dimensional space|zero-dimensional]] if it has a finite number of solutions in an algebraically closed extension ''K'' of&nbsp;''k''. This terminology comes from the fact that the [[algebraic variety]] of the solutions has [[Dimension of an algebraic variety|dimension]] zero. A system with infinitely many solutions is said to be ''positive-dimensional''.
A system is [[Zero-dimensional space|zero-dimensional]] if it has a finite number of complex solutions (or solutions in an algebraically closed field). This terminology comes from the fact that the [[algebraic variety]] of the solutions has [[Dimension of an algebraic variety|dimension]] zero. A system with infinitely many solutions is said to be ''positive-dimensional''.


A zero-dimensional system with as many equations as variables is said to be ''well-behaved''.<ref>Songxin Liang, J. Gerhard, D.J. Jeffrey, G. Moroz, ''[https://www.researchgate.net/profile/David_Stoutemyer/publication/235941679_Unit_normalization_of_multinomials_over_Gaussian_integers/links/02e7e532ddec858b2a000000.pdf#page=2 A Package for Solving Parametric Polynomial Systems]''. Communications in Computer Algebra (2009)</ref>
A zero-dimensional system with as many equations as variables is sometimes said to be ''well-behaved''.<ref>Songxin Liang, J. Gerhard, D.J. Jeffrey, G. Moroz, ''[https://www.researchgate.net/profile/David_Stoutemyer/publication/235941679_Unit_normalization_of_multinomials_over_Gaussian_integers/links/02e7e532ddec858b2a000000.pdf#page=2 A Package for Solving Parametric Polynomial Systems]''. Communications in Computer Algebra (2009)</ref>
[[Bézout's theorem]] asserts that a well-behaved system whose equations have degrees ''d''<sub>1</sub>, ..., ''d''<sub>''n''</sub> has at most ''d''<sub>1</sub>...''d''<sub>''n''</sub> solutions. This bound is sharp. If all the degrees are equal to ''d'', this bound becomes ''d''<sup>''n''</sup> and is exponential in the number of variables.
[[Bézout's theorem]] asserts that a well-behaved system whose equations have degrees {{math|''d''<sub>1</sub>, ..., ''d''<sub>''n''</sub>}} has at most {{math|''d''<sub>1</sub>⋅⋅⋅''d''<sub>''n''</sub>}} solutions. This bound is sharp. If all the degrees are equal to {{math|''d''}}, this bound becomes {{math|''d''<sup>''n''</sup>}} and is exponential in the number of variables. (The [[fundamental theorem of algebra]] is the special case {{math|1= ''n'' = 1}}.)


This exponential behavior makes solving polynomial systems difficult and explains why there are few solvers that are able to automatically solve systems with Bézout's bound higher than, say, 25 (three equations of degree 3 or five equations of degree 2 are beyond this bound).{{Citation needed|date=July 2018}}
This exponential behavior makes solving polynomial systems difficult and explains why there are few solvers that are able to automatically solve systems with Bézout's bound higher than, say, 25 (three equations of degree 3 or five equations of degree 2 are beyond this bound).{{Citation needed|date=July 2018}}


== What is solving? ==
== What is solving? ==
The first thing to do in solving a polynomial system is to decide if it is inconsistent, zero-dimensional or positive dimensional. This may be done by the computation of a [[Gröbner basis]] of the left-hand sides of the equations. The system is ''inconsistent'' if this Gröbner basis is reduced to 1. The system is ''zero-dimensional'' if, for every variable there is a [[Gröbner basis|leading monomial]] of some element of the Gröbner basis which is a pure power of this variable. For this test, the best [[monomial order]] is usually the [[monomial order#Graded reverse lexicographic order|graded reverse lexicographic]] one (grevlex).
The first thing to do for solving a polynomial system is to decide whether it is inconsistent, zero-dimensional or positive dimensional. This may be done by the computation of a [[Gröbner basis]] of the left-hand sides of the equations. The system is ''inconsistent'' if this Gröbner basis is reduced to 1. The system is ''zero-dimensional'' if, for every variable there is a [[Gröbner basis|leading monomial]] of some element of the Gröbner basis which is a pure power of this variable. For this test, the best [[monomial order]] (that is the one which leads generally to the fastest computation) is usually the [[monomial order#Graded reverse lexicographic order|graded reverse lexicographic]] one (grevlex).


If the system is ''positive-dimensional'', it has infinitely many solutions. It is thus not possible to enumerate them. It follows that, in this case, solving may only mean "finding a description of the solutions from which the relevant properties of the solutions are easy to extract". There is no commonly accepted such description. In fact there are many different "relevant properties", which involve almost every subfield of [[algebraic geometry]].
If the system is ''positive-dimensional'', it has infinitely many solutions. It is thus not possible to enumerate them. It follows that, in this case, solving may only mean "finding a description of the solutions from which the relevant properties of the solutions are easy to extract". There is no commonly accepted such description. In fact there are many different "relevant properties", which involve almost every subfield of [[algebraic geometry]].


A natural example of an open question about solving positive-dimensional systems is the following: ''decide if a polynomial system over the [[rational number]]s has a finite number of real solutions and compute them''. The only published algorithm which allows one to solve this question is [[cylindrical algebraic decomposition]], which is not efficient enough, in practice, to be used for this.
A natural example of such a question concerning positive-dimensional systems is the following: ''decide if a polynomial system over the [[rational number]]s has a finite number of real solutions and compute them''. A generalization of this question is ''find at least one solution in each [[connected component (topology)|connected component]] of the set of real solutions of a polynomial system''. The classical algorithm for solving these question is [[cylindrical algebraic decomposition]], which has a [[double exponential function|doubly exponential]] [[computational complexity]] and therefore cannot be used in practice, except for very small examples.


For zero-dimensional systems, solving consists of computing all the solutions. There are two different ways of outputting the solutions. The most common, possible for real or complex solutions, consists of outputting numeric approximations of the solutions. Such a solution is called ''numeric''. A solution is ''certified'' if it is provided with a bound on the error of the approximations which separates the different solutions.
For zero-dimensional systems, solving consists of computing all the solutions. There are two different ways of outputting the solutions. The most common way is possible only for real or complex solutions, and consists of outputting numeric approximations of the solutions. Such a solution is called ''numeric''. A solution is ''certified'' if it is provided with a bound on the error of the approximations, and if this bound separates the different solutions.


The other way to represent the solutions is said to be ''algebraic''. It uses the fact that, for a zero-dimensional system, the solutions belong to the [[algebraic closure]] of the field ''k'' of the coefficients of the system. There are several ways to represent the solution in an algebraic closure, which are discussed below. All of them allow one to compute a numerical approximation of the solutions by solving one or several univariate equations. For this computation, the representation involving the solving of only one univariate polynomial for each solution is preferable: computing the roots of a polynomial which has approximate coefficients is a highly unstable problem.
The other way of representing the solutions is said to be ''algebraic''. It uses the fact that, for a zero-dimensional system, the solutions belong to the [[algebraic closure]] of the field ''k'' of the coefficients of the system. There are several ways to represent the solution in an algebraic closure, which are discussed below. All of them allow one to compute a numerical approximation of the solutions by solving one or several univariate equations. For this computation, it is preferable to use a representation that involves solving only one univariate polynomial per solution, because computing the roots of a polynomial which has approximate coefficients [[Wilkinson's polynomial|is a highly unstable problem]].

==Extensions==
===Trigonometric equations===
A trigonometric equation is an equation {{math|1=''g'' = 0}} where {{math|''g''}} is a [[trigonometric polynomial]]. Such an equation may be converted into a polynomial system by expanding the sines and cosines in it (using [[trigonometric functions#Sum and difference formulas|sum and difference formulas]]), replacing {{math|sin(''x'')}} and {{math|cos(''x'')}} by two new variables {{math|''s''}} and {{math|''c''}} and adding the new equation {{math|1=''s''<sup>2</sup> + ''c''<sup>2</sup>1 = 0}}.

For example, because of the identity
:<math>\cos(3x)=4\cos^3(x)-3\cos(x),</math>
solving the equation
:<math> \sin^3(x)+\cos(3x)=0 </math>
is equivalent to solving the polynomial system
:<math> \begin{cases}
s^3+4c^3-3c&=0\\
s^2+c^2-1&=0.
\end{cases}
</math>

For each solution {{math|(''c''{{sub|0}}, ''s''{{sub|0}})}} of this system, there is a unique solution {{mvar|x}} of the equation such that {{math|0 ≤ ''x'' < 2{{pi}}}}.

In the case of this simple example, it may be unclear whether the system is, or not, easier to solve than the equation. On more complicated examples, one lacks systematic methods for solving directly the equation, while software are available for automatically solving the corresponding system.

=== Solutions in a finite field ===
When solving a system over a finite field {{math|''k''}} with {{math|''q''}} elements, one is primarily interested in the solutions in {{math|''k''}}. As the elements of {{math|''k''}} are exactly the solutions of the equation {{math|1=''x''<sup>''q''</sup>''x'' = 0}}, it suffices, for restricting the solutions to {{math|''k''}}, to add the equation {{math|1=''x''<sub>''i''</sub><sup>''q''</sup>''x''<sub>''i''</sub> = 0}} for each variable&nbsp;{{math|''x''<sub>''i''</sub>}}.

=== Coefficients in a number field or in a finite field with non-prime order ===

The elements of an [[algebraic number field]] are usually represented as polynomials in a generator of the field which satisfies some univariate polynomial equation. To work with a polynomial system whose coefficients belong to a number field, it suffices to consider this generator as a new variable and to add the equation of the generator to the equations of the system. Thus solving a polynomial system over a number field is reduced to solving another system over the rational numbers.

For example, if a system contains <math>\sqrt{2}</math>, a system over the rational numbers is obtained by adding the equation {{math|1=''r''<sub>2</sub><sup>2</sup>2 = 0}} and replacing <math>\sqrt{2}</math> by {{math|''r''<sub>2</sub>}} in the other equations.

In the case of a finite field, the same transformation allows always supposing that the field {{math|''k''}} has a prime order.


== Algebraic representation of the solutions==
== Algebraic representation of the solutions==
=== Regular chains ===
=== Regular chains ===
{{main article|Regular chain}}
{{main|Regular chain}}
The usual way of representing the solutions is through zero-dimensional regular chains. Such a chain consists of a sequence of polynomials {{math|''f''<sub>1</sub>(''x''<sub>1</sub>)}}, {{math|''f''<sub>2</sub>(''x''<sub>1</sub>, ''x''<sub>2</sub>)}}, ..., {{math|''f''<sub>''n''</sub>(''x''<sub>1</sub>, ..., ''x''<sub>''n''</sub>)}} such that, for every {{math|''i''}} such that {{math|1 ≤ ''i'' ≤ ''n''}}
The usual way of representing the solutions is through zero-dimensional regular chains. Such a chain consists of a sequence of polynomials {{math|''f''<sub>1</sub>(''x''<sub>1</sub>)}}, {{math|''f''<sub>2</sub>(''x''<sub>1</sub>, ''x''<sub>2</sub>)}}, ..., {{math|''f''<sub>''n''</sub>(''x''<sub>1</sub>, ..., ''x''<sub>''n''</sub>)}} such that, for every {{math|''i''}} such that {{math|1 ≤ ''i'' ≤ ''n''}}
* {{math|''f''<sub>''i''</sub>}} is a polynomial in {{math|''x''<sub>1</sub>, ..., ''x''<sub>''i''</sub>}} only, which has a degree {{math|''d''<sub>''i''</sub> > 0}} in {{math|''x''<sub>''i''</sub>}};
* {{math|''f''<sub>''i''</sub>}} is a polynomial in {{math|''x''<sub>1</sub>, ..., ''x''<sub>''i''</sub>}} only, which has a degree {{math|''d''<sub>''i''</sub> > 0}} in {{math|''x''<sub>''i''</sub>}};
Line 68: Line 97:
f_1(x_1)= 0\\
f_1(x_1)= 0\\
f_2(x_1,x_2)=0\\
f_2(x_1,x_2)=0\\
\quad\vdots\\
\cdots\cdots\cdots\cdots\cdots\cdots\\
f_n(x_1, x_2, \ldots, x_n)=0.
f_n(x_1, x_2, \ldots, x_n)=0.
\end{cases}
\end{cases}
Line 84: Line 113:
</math>
</math>


There are several algorithms for computing a [[triangular decomposition]] of an arbitrary polynomial system (not necessarily zero-dimensional)<ref>{{cite journal | last1 = Aubry | first1 = P. | last2 = Maza | first2 = M. Moreno | title = Triangular Sets for Solving Polynomial Systems: a Comparative Implementation of Four Methods | url = http://www.sciencedirect.com/science/article/pii/S0747717199902705 | journal = J. Symb. Comput | volume = 28 | issue = | year = 1999 | doi=10.1006/jsco.1999.0270}}</ref> into [[regular chain]]s (or [[regular semi-algebraic system]]s).
There are several algorithms for computing a [[triangular decomposition]] of an arbitrary polynomial system (not necessarily zero-dimensional)<ref>{{cite journal | last1 = Aubry | first1 = P. | last2 = Maza | first2 = M. Moreno | title = Triangular Sets for Solving Polynomial Systems: a Comparative Implementation of Four Methods | journal = J. Symb. Comput. | volume = 28 | issue = 1–2| pages = 125–154 | year = 1999 | doi=10.1006/jsco.1999.0270| doi-access = free }}</ref> into [[regular chain]]s (or [[regular semi-algebraic system]]s).


There is also an algorithm which is specific to the zero-dimensional case and is competitive, in this case, with the direct algorithms. It consists in computing first the [[Gröbner basis]] for the [[monomial order|graded reverse lexicographic order (grevlex)]], then deducing the lexicographical Gröbner basis by FGLM algorithm<ref>{{cite journal | last1 = Faugère | first1 = J.C. | last2 = Gianni | first2 = P. | last3 = Lazard | first3 = D. | last4 = Mora | first4 = T. | title = Efficient Computation of Zero-Dimensional Gröbner Basis by Change of Ordering | url = http://www.sciencedirect.com/science/article/pii/S0747717183710515/pdf?md5=96c9dfd7de57f6d6dc799a0c4552192d&pid=1-s2.0-S0747717183710515-main.pdf&_valck=1 | journal = Journal of Symbolic Computation | volume = 16 | issue = | year = 1993 | doi=10.1006/jsco.1993.1051 | pages=329–344}}</ref> and finally applying the Lextriangular algorithm.<ref>{{cite journal | last1 = Lazard | first1 = D. | title = Solving zero-dimensional algebraic systems | url =http://www.sciencedirect.com/science/article/pii/S0747717108800867 | journal = Journal of Symbolic Computation | volume = 13 | issue = | year = 1992 | doi=10.1016/S0747-7171(08)80086-7 | pages=117–131}}</ref>
There is also an algorithm which is specific to the zero-dimensional case and is competitive, in this case, with the direct algorithms. It consists in computing first the [[Gröbner basis]] for the [[monomial order|graded reverse lexicographic order (grevlex)]], then deducing the lexicographical Gröbner basis by FGLM algorithm<ref>{{cite journal | last1 = Faugère | first1 = J.C. | last2 = Gianni | first2 = P. |author2-link=Patrizia Gianni| last3 = Lazard | first3 = D. | last4 = Mora | first4 = T. | title = Efficient Computation of Zero-Dimensional Gröbner Basis by Change of Ordering | journal = Journal of Symbolic Computation | volume = 16 | issue = 4| year = 1993 | doi=10.1006/jsco.1993.1051 | pages=329–344| doi-access = free }}</ref> and finally applying the Lextriangular algorithm.<ref>{{cite journal | last1 = Lazard | first1 = D. | title = Solving zero-dimensional algebraic systems | journal = Journal of Symbolic Computation | volume = 13 | issue = 2| year = 1992 | doi=10.1016/S0747-7171(08)80086-7 | pages=117–131| doi-access = }}</ref>


This representation of the solutions are fully convenient for coefficients in a finite field. However, for rational coefficients, two aspects have to be taken care of:
This representation of the solutions are fully convenient for coefficients in a finite field. However, for rational coefficients, two aspects have to be taken care of:
Line 104: Line 133:
| pages=108–105
| pages=108–105
| publisher=ACM Press
| publisher=ACM Press
| url=http://www.cecm.sfu.ca/~monaganm/research/MITACS/papers/maza.pdf
| chapter-url=http://www.cecm.sfu.ca/~monaganm/research/MITACS/papers/maza.pdf
}}</ref> Among the sets of regular chains that represent a given set of solutions, there is a set for which the coefficients are explicitly bounded in terms of the size of the input system, with a nearly optimal bound. This set, called ''equiprojectable decomposition'', depends only on the choice of the coordinates. This allows the use of [[modular arithmetic|modular methods]] for computing efficiently the equiprojectable decomposition.<ref>Changbo Chen and Marc Moreno-Maza. ''[http://www.csd.uwo.ca/~moreno/Publications/Algorithms_for_computing_triangular_decomposition_of_polynomial_systems.pdf Algorithms for Computing Triangular Decomposition of Polynomial Systems]''.In proc. ISSAC'2011, pages 83-90, ACM Press, 2011 and Journal of Symbolic Computation (to appear)</ref>
}}</ref> Among the sets of regular chains that represent a given set of solutions, there is a set for which the coefficients are explicitly bounded in terms of the size of the input system, with a nearly optimal bound. This set, called ''equiprojectable decomposition'', depends only on the choice of the coordinates. This allows the use of [[modular arithmetic|modular methods]] for computing efficiently the equiprojectable decomposition.<ref>Changbo Chen and Marc Moreno-Maza. ''[http://www.csd.uwo.ca/~moreno/Publications/Algorithms_for_computing_triangular_decomposition_of_polynomial_systems.pdf Algorithms for Computing Triangular Decomposition of Polynomial Systems]''.In proc. ISSAC'2011, pages 83-90, ACM Press, 2011 and Journal of Symbolic Computation (to appear)</ref>


Line 116: Line 145:
| title=Solving Zero-Dimensional Systems Through the Rational Univariate Representation
| title=Solving Zero-Dimensional Systems Through the Rational Univariate Representation
|journal=Appl. Algebra Eng. Commun. Comput.
|journal=Appl. Algebra Eng. Commun. Comput.
| volume=9
| pages=433–461
| number=9
| number=9
| year=1999
| year=1999
| doi=10.1007/s002000050114
| s2cid=25579305
}}</ref>
}}</ref>


Line 131: Line 164:
h(x_0)=0\\
h(x_0)=0\\
x_1=g_1(x_0)/g_0(x_0)\\
x_1=g_1(x_0)/g_0(x_0)\\
\quad\vdots\\
\cdots\cdots\cdots\cdots\cdots\cdots\\
x_n=g_n(x_0)/g_0(x_0),
x_n=g_n(x_0)/g_0(x_0),
\end{cases}
\end{cases}
Line 162: Line 195:
Contrarily to triangular decompositions and equiprojectable decompositions, the RUR is not defined in positive dimension.
Contrarily to triangular decompositions and equiprojectable decompositions, the RUR is not defined in positive dimension.


==Algorithms for numerically solving==
==Solving numerically{{anchor|Algorithms for numerically solving}}==
===General solving algorithms===
===General solving algorithms===
The general numerical algorithms which are designed for any [[system of nonlinear equations]] work also for polynomial systems. However the specific methods will generally be preferred, as the general methods generally do not allow one to find ''all'' solutions. In particular, when a general method does not find any solution, this is usually not an indication that there is no solution.
The general numerical algorithms which are designed for any [[system of nonlinear equations]] work also for polynomial systems. However the specific methods will generally be preferred, as the general methods generally do not allow one to find ''all'' solutions. In particular, when a general method does not find any solution, this is usually not an indication that there is no solution.
Line 169: Line 202:


*[[Newton's method]] may be used if the number of equations is equal to the number of variables. It does not allow one to find all the solutions nor to prove that there is no solution. But it is very fast when starting from a point which is close to a solution. Therefore, it is a basic tool for the homotopy continuation method described below.
*[[Newton's method]] may be used if the number of equations is equal to the number of variables. It does not allow one to find all the solutions nor to prove that there is no solution. But it is very fast when starting from a point which is close to a solution. Therefore, it is a basic tool for the homotopy continuation method described below.
*[[Optimization (mathematics)|Optimization]] is rarely used for solving polynomial systems, but it succeeded, around 1970, in showing that a system of 81 quadratic equations in 56 variables is not inconsistent.<ref>{{cite journal | last1 = Lazard | first1 = Daniel | year = 2009| title = Thirty years of Polynomial System Solving, and now? | url = http://www.sciencedirect.com/science/article/pii/S0747717108001107 | journal = J. Symb. Comput | volume = 44 | issue = | page = 2009 | doi=10.1016/j.jsc.2008.03.004}}</ref> With the other known methods this remains beyond the possibilities of modern technology. This method consists simply in minimizing the sum of the squares of the equations. If zero is found as a local minimum, then it is attained at a solution. This method works for overdetermined systems, but outputs an empty information if all local minimums which are found are positive.
*[[Optimization (mathematics)|Optimization]] is rarely used for solving polynomial systems, but it succeeded, circa 1970, in showing that a system of 81 quadratic equations in 56 variables is not inconsistent.<ref>{{cite journal | last1 = Lazard | first1 = Daniel | year = 2009| title = Thirty years of Polynomial System Solving, and now? | journal = J. Symb. Comput. | volume = 44 | issue = 3| page = 2009 | doi=10.1016/j.jsc.2008.03.004| doi-access = free }}</ref> With the other known methods, this remains beyond the possibilities of modern technology, {{as of| 2022|lc=y}}. This method consists simply in minimizing the sum of the squares of the equations. If zero is found as a local minimum, then it is attained at a solution. This method works for overdetermined systems, but outputs an empty information if all local minimums which are found are positive.


=== Homotopy continuation method ===
=== Homotopy continuation method ===
Line 178: Line 211:
| journal=ACM Transactions on Mathematical Software
| journal=ACM Transactions on Mathematical Software
| volume=25
| volume=25
| issue=2
| pages=251–276
| year=1999
| year=1999
| url=http://eaton.math.rpi.edu/csums/papers/homotopy/verschelde.pdf
| url=http://eaton.math.rpi.edu/csums/papers/homotopy/verschelde.pdf
| doi=10.1145/317275.317286
| doi=10.1145/317275.317286
| s2cid=15485257
}}</ref>
}}</ref>


This method divides into three steps. First an upper bound on the number of solutions is computed. This bound has to be as sharp as possible. Therefore, it is computed by, at least, four different methods and the best value, say ''N'', is kept.
This method divides into three steps. First an upper bound on the number of solutions is computed. This bound has to be as sharp as possible. Therefore, it is computed by, at least, four different methods and the best value, say <math>N</math>, is kept.


In the second step, a system <math>g_1=0, \ldots, g_n=0</math> of polynomial equations is generated which has exactly ''N'' solutions that are easy to compute. This new system has the same number ''n'' of variables and the same number ''n'' of equations and the same general structure as the system to solve, <math>f_1=0, \ldots, f_n=0</math>.
In the second step, a system <math>g_1=0,\, \ldots,\, g_n=0</math> of polynomial equations is generated which has exactly <math>N</math> solutions that are easy to compute. This new system has the same number <math>n</math> of variables and the same number <math>n</math> of equations and the same general structure as the system to solve, <math>f_1=0,\, \ldots,\, f_n=0</math>.


Then a [[homotopy]] between the two systems is considered. It consists, for example, of the straight line between the two systems, but other paths may be considered, in particular to avoid some singularities, in the system
Then a [[homotopy]] between the two systems is considered. It consists, for example, of the straight line between the two systems, but other paths may be considered, in particular to avoid some singularities, in the system


:<math>(1-t)g_1+t f_1=0, \ldots, (1-t)g_n+t f_n=0</math>.
:<math>(1-t)g_1+t f_1=0,\, \ldots,\, (1-t)g_n+t f_n=0</math>.


The homotopy continuation consists in deforming the parameter ''t'' from 0 to 1 and ''following'' the ''N'' solutions during this deformation. This gives the desired solutions for ''t'' = 1. ''Following'' means that, if <math>t_1<t_2</math>, the solutions for <math>t=t_2</math> are deduced from the solutions for <math>t=t_1</math> by Newton's method. The difficulty here is to well choose the value of <math>t_2-t_1:</math> Too large, Newton's convergence may be slow and may even jump from a solution path to another one. Too small, and the number of steps slows down the method.
The homotopy continuation consists in deforming the parameter <math>t</math> from 0 to 1 and ''following'' the <math>N</math> solutions during this deformation. This gives the desired solutions for <math>t = 1</math>. ''Following'' means that, if <math>t_1<t_2</math>, the solutions for <math>t=t_2</math> are deduced from the solutions for <math>t=t_1</math> by Newton's method. The difficulty here is to well choose the value of <math>t_2-t_1:</math> Too large, Newton's convergence may be slow and may even jump from a solution path to another one. Too small, and the number of steps slows down the method.


===Numerically solving from the rational univariate representation===
===Numerically solving from the rational univariate representation===
Line 200: Line 236:


* [[Aberth method]], implemented in [[MPSolve]] computes all the complex roots to any precision.
* [[Aberth method]], implemented in [[MPSolve]] computes all the complex roots to any precision.
* Uspensky's algorithm of Collins and Akritas,<ref>George E. Collins and Alkiviadis G. Akritas, ''[http://www.inf.uth.gr/~akritas/articles/1.pdf Polynomial Real Root Isolation Using Descarte's Rule of Signs]''. Proceedings of the 1976 ACM Symposium on Symbolic and Algebraic Computation</ref> improved by Rouillier and Zimmermann <ref>{{cite journal | last1 = Rouillier | first1 = F. | last2 = Zimmerman | first2 = P. | title = Efficient isolation of polynomial's real roots | url = http://www.sciencedirect.com/science/article/pii/S0377042703007271 | journal = Journal of Computational and Applied Mathematics | volume = 162 | issue = | year = 2004 | doi=10.1016/j.cam.2003.08.015 | pages=33–50}}</ref> and based on [[Descartes' rule of signs]]. This algorithms computes the real roots, isolated in intervals of arbitrary small width. It is implemented in [[Maple (software)|Maple]] (functions ''fsolve'' and ''RootFinding[Isolate]'').
* Uspensky's algorithm of Collins and Akritas,<ref>George E. Collins and Alkiviadis G. Akritas, ''[http://www.inf.uth.gr/~akritas/articles/1.pdf Polynomial Real Root Isolation Using Descartes' Rule of Signs]''. Proceedings of the 1976 ACM Symposium on Symbolic and Algebraic Computation</ref> improved by Rouillier and Zimmermann <ref>{{cite journal | last1 = Rouillier | first1 = F. | last2 = Zimmerman | first2 = P. | title = Efficient isolation of polynomial's real roots | journal = Journal of Computational and Applied Mathematics | volume = 162 | issue = 1| year = 2004 | doi=10.1016/j.cam.2003.08.015 | pages=33–50| bibcode = 2004JCoAM.162...33R | doi-access = free }}</ref> and based on [[Descartes' rule of signs]]. This algorithms computes the real roots, isolated in intervals of arbitrary small width. It is implemented in [[Maple (software)|Maple]] (functions ''fsolve'' and ''RootFinding[Isolate]'').


==Software packages==
==Software packages==
Line 215: Line 251:
The second solver is PHCpack,<ref name="Vers99" /><ref>[http://www.math.uic.edu/~jan/download.html Release 2.3.86 of PHCpack]</ref> written under the direction of J. Verschelde. PHCpack implements the homotopy continuation method. This solver computes the isolated complex solutions of polynomial systems having as many equations as variables.
The second solver is PHCpack,<ref name="Vers99" /><ref>[http://www.math.uic.edu/~jan/download.html Release 2.3.86 of PHCpack]</ref> written under the direction of J. Verschelde. PHCpack implements the homotopy continuation method. This solver computes the isolated complex solutions of polynomial systems having as many equations as variables.


The third solver is Bertini,<ref>Bates, D. J., Hauenstein, J. D., Sommese, A. J., & Wampler, C. W. (2013). Numerically solving polynomial systems with Bertini (Vol. 25). SIAM.</ref><ref>[http://bertini.nd.edu/ Bertini: Software for Numerical Algebraic Geometry]</ref> written by D. J. Bates, J. D. Hauenstein, A. J. Sommese, and C. W. Wampler. Bertini uses numerical homotopy continuation with adaptive precision. In addition to computing zero-dimensional solution sets, both PHCpack and Bertini are capable of working with positive dimensional solution sets.
The third solver is Bertini,<ref>{{harvnb|Bates|Sommese|Hauenstein|Wampler|2013}}</ref><ref>[http://bertini.nd.edu/ Bertini: Software for Numerical Algebraic Geometry]</ref> written by D. J. Bates, J. D. Hauenstein, A. J. Sommese, and C. W. Wampler. Bertini uses numerical homotopy continuation with adaptive precision. In addition to computing zero-dimensional solution sets, both PHCpack and Bertini are capable of working with positive dimensional solution sets.

The fourth solver is the [[Maple (software)|Maple]] command ''RegularChains[RealTriangularize]''. For any zero-dimensional input system with rational number coefficients it returns those solutions whose coordinates are real algebraic numbers. Each of these real numbers is encoded by an isolation interval and a defining polynomial.

The command ''RegularChains[RealTriangularize]'' is part of the [[Maple (software)|Maple]] library [[RegularChains]], written by Marc Moreno-Maza, his students and post-doctoral fellows (listed in chronological order of graduation) Francois Lemaire, Yuzhen Xie, Xin Li, Xiao Rong, Liyun Li, Wei Pan and Changbo Chen. Other contributors are Eric Schost, Bican Xia and Wenyuan Wu. This library provides a large set of functionalities for solving zero-dimensional and positive dimensional systems. In both cases, for input systems with rational number coefficients, routines for isolating the real solutions are available. For arbitrary input system of polynomial equations and inequations (with rational number coefficients or with coefficients in a prime field) one can use the command ''RegularChains[Triangularize]'' for computing the solutions whose coordinates are in the algebraic closure of the coefficient field. The underlying algorithms are based on the notion of a [[regular chain]].


The fourth solver is the [[Maple (software)|Maple]] library ''RegularChains'', written by Marc Moreno-Maza and collaborators. It contains various functions for solving polynomial systems by means of [[regular chain]]s.
While the command RegularChains[RealTriangularize] is currently limited to zero-dimensional systems, a future release will be able to process any system of polynomial equations, inequations and inequalities. The corresponding new algorithm<ref>Changbo Chen, James H. Davenport, John P. May, Marc Moreno-Maza, Bican Xia, Rong Xiao. [http://www.sciencedirect.com/science/article/pii/S0747717111002070/pdf?md5=9344a2f6467b91cc32bcef52f9275ab2&pid=1-s2.0-S0747717111002070-main.pdf&_valck=1 Triangular decomposition of semi-algebraic systems]. Proceedings of 2010 International Symposium on Symbolic and Algebraic Computation (ISSAC 2010), ACM Press, pp. 187--194, 2010.</ref> is based on the concept of a [[regular semi-algebraic system]].


==See also==
==See also==
*[[Elimination theory]]
*[[Systems of polynomial inequalities]]
*[[Triangular decomposition]]
*[[Triangular decomposition]]
*[[Wu's method of characteristic set]]
*[[Wu's method of characteristic set]]
Line 230: Line 264:
{{Reflist}}
{{Reflist}}
{{Refbegin}}
{{Refbegin}}
*{{cite book |last1=Bates |first1=Daniel J. |last2=Sommese |first2=Andrew J. |last3=Hauenstein |first3=Jonathan D. |last4=Wampler |first4=Charles W. |title=Numerically solving polynomial systems with Bertini |date=2013 |publisher=Society for Industrial and Applied Mathematics |location=Philadelphia |isbn=978-1-61197-269-6}}
*{{cite book|last=Cox|first=David|author2=John Little |author3=Donal O'Shea |title=Ideals, varieties, and algorithms : an introduction to computational algebraic geometry and commutative algebra|year=1997|publisher=Springer|location=New York|isbn=978-0387946801|edition=2nd}}
*{{cite book |last1=Cox |first1=David |first2=John |last2=Little |first3=Donal |last3=O'Shea |title=Ideals, varieties, and algorithms : an introduction to computational algebraic geometry and commutative algebra |year=1997 |publisher=Springer |location=New York |isbn=978-0387946801 |edition=2nd}}
*{{cite book |last1=Morgan |first1=Alexander |title=Solving polynomial systems using continuation for engineering and scientific problems |date=1987 |publisher=Society for Industrial and Applied Mathematics (SIAM, 3600 Market Street, Floor 6, Philadelphia, PA 19104) |isbn=9780898719031 |edition=SIAM}}
*{{cite book|last=Sturmfels|first=Bernd|title=Solving systems of polynomial equations|year=2002|publisher=American Mathematical Soc.|location=Providence, RI|isbn=0821832514}}
*{{cite book|last=Sturmfels|first=Bernd|title=Solving systems of polynomial equations|year=2002|publisher=American Mathematical Soc.|location=Providence, RI|isbn=0821832514}}
{{Refend}}
{{Refend}}

Latest revision as of 12:17, 9 April 2024

A system of polynomial equations (sometimes simply a polynomial system) is a set of simultaneous equations f1 = 0, ..., fh = 0 where the fi are polynomials in several variables, say x1, ..., xn, over some field k.

A solution of a polynomial system is a set of values for the xis which belong to some algebraically closed field extension K of k, and make all equations true. When k is the field of rational numbers, K is generally assumed to be the field of complex numbers, because each solution belongs to a field extension of k, which is isomorphic to a subfield of the complex numbers.

This article is about the methods for solving, that is, finding all solutions or describing them. As these methods are designed for being implemented in a computer, emphasis is given on fields k in which computation (including equality testing) is easy and efficient, that is the field of rational numbers and finite fields.

Searching for solutions that belong to a specific set is a problem which is generally much more difficult, and is outside the scope of this article, except for the case of the solutions in a given finite field. For the case of solutions of which all components are integers or rational numbers, see Diophantine equation.

Definition

[edit]
The numerous singular points of the Barth sextic are the solutions of a polynomial system

A simple example of a system of polynomial equations is

Its solutions are the four pairs (x, y) = (1, 2), (2, 1), (-1, -2), (-2, -1). These solutions can easily be checked by substitution, but more work is needed for proving that there are no other solutions.

The subject of this article is the study of generalizations of such an examples, and the description of the methods that are used for computing the solutions.

A system of polynomial equations, or polynomial system is a collection of equations

where each fh is a polynomial in the indeterminates x1, ..., xm, with integer coefficients, or coefficients in some fixed field, often the field of rational numbers or a finite field.[1] Other fields of coefficients, such as the real numbers, are less often used, as their elements cannot be represented in a computer (only approximations of real numbers can be used in computations, and these approximations are always rational numbers).

A solution of a polynomial system is a tuple of values of (x1, ..., xm) that satisfies all equations of the polynomial system. The solutions are sought in the complex numbers, or more generally in an algebraically closed field containing the coefficients. In particular, in characteristic zero, all complex solutions are sought. Searching for the real or rational solutions are much more difficult problems that are not considered in this article.

The set of solutions is not always finite; for example, the solutions of the system

are a point (x,y) = (1,1) and a line x = 0.[2] Even when the solution set is finite, there is, in general, no closed-form expression of the solutions (in the case of a single equation, this is Abel–Ruffini theorem).

The Barth surface, shown in the figure is the geometric representation of the solutions of a polynomial system reduced to a single equation of degree 6 in 3 variables. Some of its numerous singular points are visible on the image. They are the solutions of a system of 4 equations of degree 5 in 3 variables. Such an overdetermined system has no solution in general (that is if the coefficients are not specific). If it has a finite number of solutions, this number is at most 53 = 125, by Bézout's theorem. However, it has been shown that, for the case of the singular points of a surface of degree 6, the maximum number of solutions is 65, and is reached by the Barth surface.

Basic properties and definitions

[edit]

A system is overdetermined if the number of equations is higher than the number of variables. A system is inconsistent if it has no complex solution (or, if the coefficients are not complex numbers, no solution in an algebraically closed field containing the coefficients). By Hilbert's Nullstellensatz this means that 1 is a linear combination (with polynomials as coefficients) of the first members of the equations. Most but not all overdetermined systems, when constructed with random coefficients, are inconsistent. For example, the system x3 – 1 = 0, x2 – 1 = 0 is overdetermined (having two equations but only one unknown), but it is not inconsistent since it has the solution x = 1.

A system is underdetermined if the number of equations is lower than the number of the variables. An underdetermined system is either inconsistent or has infinitely many complex solutions (or solutions in an algebraically closed field that contains the coefficients of the equations). This is a non-trivial result of commutative algebra that involves, in particular, Hilbert's Nullstellensatz and Krull's principal ideal theorem.

A system is zero-dimensional if it has a finite number of complex solutions (or solutions in an algebraically closed field). This terminology comes from the fact that the algebraic variety of the solutions has dimension zero. A system with infinitely many solutions is said to be positive-dimensional.

A zero-dimensional system with as many equations as variables is sometimes said to be well-behaved.[3] Bézout's theorem asserts that a well-behaved system whose equations have degrees d1, ..., dn has at most d1⋅⋅⋅dn solutions. This bound is sharp. If all the degrees are equal to d, this bound becomes dn and is exponential in the number of variables. (The fundamental theorem of algebra is the special case n = 1.)

This exponential behavior makes solving polynomial systems difficult and explains why there are few solvers that are able to automatically solve systems with Bézout's bound higher than, say, 25 (three equations of degree 3 or five equations of degree 2 are beyond this bound).[citation needed]

What is solving?

[edit]

The first thing to do for solving a polynomial system is to decide whether it is inconsistent, zero-dimensional or positive dimensional. This may be done by the computation of a Gröbner basis of the left-hand sides of the equations. The system is inconsistent if this Gröbner basis is reduced to 1. The system is zero-dimensional if, for every variable there is a leading monomial of some element of the Gröbner basis which is a pure power of this variable. For this test, the best monomial order (that is the one which leads generally to the fastest computation) is usually the graded reverse lexicographic one (grevlex).

If the system is positive-dimensional, it has infinitely many solutions. It is thus not possible to enumerate them. It follows that, in this case, solving may only mean "finding a description of the solutions from which the relevant properties of the solutions are easy to extract". There is no commonly accepted such description. In fact there are many different "relevant properties", which involve almost every subfield of algebraic geometry.

A natural example of such a question concerning positive-dimensional systems is the following: decide if a polynomial system over the rational numbers has a finite number of real solutions and compute them. A generalization of this question is find at least one solution in each connected component of the set of real solutions of a polynomial system. The classical algorithm for solving these question is cylindrical algebraic decomposition, which has a doubly exponential computational complexity and therefore cannot be used in practice, except for very small examples.

For zero-dimensional systems, solving consists of computing all the solutions. There are two different ways of outputting the solutions. The most common way is possible only for real or complex solutions, and consists of outputting numeric approximations of the solutions. Such a solution is called numeric. A solution is certified if it is provided with a bound on the error of the approximations, and if this bound separates the different solutions.

The other way of representing the solutions is said to be algebraic. It uses the fact that, for a zero-dimensional system, the solutions belong to the algebraic closure of the field k of the coefficients of the system. There are several ways to represent the solution in an algebraic closure, which are discussed below. All of them allow one to compute a numerical approximation of the solutions by solving one or several univariate equations. For this computation, it is preferable to use a representation that involves solving only one univariate polynomial per solution, because computing the roots of a polynomial which has approximate coefficients is a highly unstable problem.

Extensions

[edit]

Trigonometric equations

[edit]

A trigonometric equation is an equation g = 0 where g is a trigonometric polynomial. Such an equation may be converted into a polynomial system by expanding the sines and cosines in it (using sum and difference formulas), replacing sin(x) and cos(x) by two new variables s and c and adding the new equation s2 + c2 – 1 = 0.

For example, because of the identity

solving the equation

is equivalent to solving the polynomial system

For each solution (c0, s0) of this system, there is a unique solution x of the equation such that 0 ≤ x < 2π.

In the case of this simple example, it may be unclear whether the system is, or not, easier to solve than the equation. On more complicated examples, one lacks systematic methods for solving directly the equation, while software are available for automatically solving the corresponding system.

Solutions in a finite field

[edit]

When solving a system over a finite field k with q elements, one is primarily interested in the solutions in k. As the elements of k are exactly the solutions of the equation xqx = 0, it suffices, for restricting the solutions to k, to add the equation xiqxi = 0 for each variable xi.

Coefficients in a number field or in a finite field with non-prime order

[edit]

The elements of an algebraic number field are usually represented as polynomials in a generator of the field which satisfies some univariate polynomial equation. To work with a polynomial system whose coefficients belong to a number field, it suffices to consider this generator as a new variable and to add the equation of the generator to the equations of the system. Thus solving a polynomial system over a number field is reduced to solving another system over the rational numbers.

For example, if a system contains , a system over the rational numbers is obtained by adding the equation r22 – 2 = 0 and replacing by r2 in the other equations.

In the case of a finite field, the same transformation allows always supposing that the field k has a prime order.

Algebraic representation of the solutions

[edit]

Regular chains

[edit]

The usual way of representing the solutions is through zero-dimensional regular chains. Such a chain consists of a sequence of polynomials f1(x1), f2(x1, x2), ..., fn(x1, ..., xn) such that, for every i such that 1 ≤ in

  • fi is a polynomial in x1, ..., xi only, which has a degree di > 0 in xi;
  • the coefficient of xidi in fi is a polynomial in x1, ..., xi −1 which does not have any common zero with f1, ..., fi − 1.

To such a regular chain is associated a triangular system of equations

The solutions of this system are obtained by solving the first univariate equation, substituting the solutions in the other equations, then solving the second equation which is now univariate, and so on. The definition of regular chains implies that the univariate equation obtained from fi has degree di and thus that the system has d1 ... dn solutions, provided that there is no multiple root in this resolution process (fundamental theorem of algebra).

Every zero-dimensional system of polynomial equations is equivalent (i.e. has the same solutions) to a finite number of regular chains. Several regular chains may be needed, as it is the case for the following system which has three solutions.

There are several algorithms for computing a triangular decomposition of an arbitrary polynomial system (not necessarily zero-dimensional)[4] into regular chains (or regular semi-algebraic systems).

There is also an algorithm which is specific to the zero-dimensional case and is competitive, in this case, with the direct algorithms. It consists in computing first the Gröbner basis for the graded reverse lexicographic order (grevlex), then deducing the lexicographical Gröbner basis by FGLM algorithm[5] and finally applying the Lextriangular algorithm.[6]

This representation of the solutions are fully convenient for coefficients in a finite field. However, for rational coefficients, two aspects have to be taken care of:

  • The output may involve huge integers which may make the computation and the use of the result problematic.
  • To deduce the numeric values of the solutions from the output, one has to solve univariate polynomials with approximate coefficients, which is a highly unstable problem.

The first issue has been solved by Dahan and Schost:[7][8] Among the sets of regular chains that represent a given set of solutions, there is a set for which the coefficients are explicitly bounded in terms of the size of the input system, with a nearly optimal bound. This set, called equiprojectable decomposition, depends only on the choice of the coordinates. This allows the use of modular methods for computing efficiently the equiprojectable decomposition.[9]

The second issue is generally solved by outputting regular chains of a special form, sometimes called shape lemma, for which all di but the first one are equal to 1. For getting such regular chains, one may have to add a further variable, called separating variable, which is given the index 0. The rational univariate representation, described below, allows computing such a special regular chain, satisfying Dahan–Schost bound, by starting from either a regular chain or a Gröbner basis.

Rational univariate representation

[edit]

The rational univariate representation or RUR is a representation of the solutions of a zero-dimensional polynomial system over the rational numbers which has been introduced by F. Rouillier.[10]

A RUR of a zero-dimensional system consists in a linear combination x0 of the variables, called separating variable, and a system of equations[11]

where h is a univariate polynomial in x0 of degree D and g0, ..., gn are univariate polynomials in x0 of degree less than D.

Given a zero-dimensional polynomial system over the rational numbers, the RUR has the following properties.

  • All but a finite number linear combinations of the variables are separating variables.
  • When the separating variable is chosen, the RUR exists and is unique. In particular h and the gi are defined independently of any algorithm to compute them.
  • The solutions of the system are in one-to-one correspondence with the roots of h and the multiplicity of each root of h equals the multiplicity of the corresponding solution.
  • The solutions of the system are obtained by substituting the roots of h in the other equations.
  • If h does not have any multiple root then g0 is the derivative of h.

For example, for the system in the previous section, every linear combination of the variable, except the multiples of x, y and x + y, is a separating variable. If one chooses t = xy/2 as a separating variable, then the RUR is

The RUR is uniquely defined for a given separating variable, independently of any algorithm, and it preserves the multiplicities of the roots. This is a notable difference with triangular decompositions (even the equiprojectable decomposition), which, in general, do not preserve multiplicities. The RUR shares with equiprojectable decomposition the property of producing an output with coefficients of relatively small size.

For zero-dimensional systems, the RUR allows retrieval of the numeric values of the solutions by solving a single univariate polynomial and substituting them in rational functions. This allows production of certified approximations of the solutions to any given precision.

Moreover, the univariate polynomial h(x0) of the RUR may be factorized, and this gives a RUR for every irreducible factor. This provides the prime decomposition of the given ideal (that is the primary decomposition of the radical of the ideal). In practice, this provides an output with much smaller coefficients, especially in the case of systems with high multiplicities.

Contrarily to triangular decompositions and equiprojectable decompositions, the RUR is not defined in positive dimension.

Solving numerically

[edit]

General solving algorithms

[edit]

The general numerical algorithms which are designed for any system of nonlinear equations work also for polynomial systems. However the specific methods will generally be preferred, as the general methods generally do not allow one to find all solutions. In particular, when a general method does not find any solution, this is usually not an indication that there is no solution.

Nevertheless, two methods deserve to be mentioned here.

  • Newton's method may be used if the number of equations is equal to the number of variables. It does not allow one to find all the solutions nor to prove that there is no solution. But it is very fast when starting from a point which is close to a solution. Therefore, it is a basic tool for the homotopy continuation method described below.
  • Optimization is rarely used for solving polynomial systems, but it succeeded, circa 1970, in showing that a system of 81 quadratic equations in 56 variables is not inconsistent.[12] With the other known methods, this remains beyond the possibilities of modern technology, as of 2022. This method consists simply in minimizing the sum of the squares of the equations. If zero is found as a local minimum, then it is attained at a solution. This method works for overdetermined systems, but outputs an empty information if all local minimums which are found are positive.

Homotopy continuation method

[edit]

This is a semi-numeric method which supposes that the number of equations is equal to the number of variables. This method is relatively old but it has been dramatically improved in the last decades.[13]

This method divides into three steps. First an upper bound on the number of solutions is computed. This bound has to be as sharp as possible. Therefore, it is computed by, at least, four different methods and the best value, say , is kept.

In the second step, a system of polynomial equations is generated which has exactly solutions that are easy to compute. This new system has the same number of variables and the same number of equations and the same general structure as the system to solve, .

Then a homotopy between the two systems is considered. It consists, for example, of the straight line between the two systems, but other paths may be considered, in particular to avoid some singularities, in the system

.

The homotopy continuation consists in deforming the parameter from 0 to 1 and following the solutions during this deformation. This gives the desired solutions for . Following means that, if , the solutions for are deduced from the solutions for by Newton's method. The difficulty here is to well choose the value of Too large, Newton's convergence may be slow and may even jump from a solution path to another one. Too small, and the number of steps slows down the method.

Numerically solving from the rational univariate representation

[edit]

To deduce the numeric values of the solutions from a RUR seems easy: it suffices to compute the roots of the univariate polynomial and to substitute them in the other equations. This is not so easy because the evaluation of a polynomial at the roots of another polynomial is highly unstable.

The roots of the univariate polynomial have thus to be computed at a high precision which may not be defined once for all. There are two algorithms which fulfill this requirement.

  • Aberth method, implemented in MPSolve computes all the complex roots to any precision.
  • Uspensky's algorithm of Collins and Akritas,[14] improved by Rouillier and Zimmermann [15] and based on Descartes' rule of signs. This algorithms computes the real roots, isolated in intervals of arbitrary small width. It is implemented in Maple (functions fsolve and RootFinding[Isolate]).

Software packages

[edit]

There are at least four software packages which can solve zero-dimensional systems automatically (by automatically, one means that no human intervention is needed between input and output, and thus that no knowledge of the method by the user is needed). There are also several other software packages which may be useful for solving zero-dimensional systems. Some of them are listed after the automatic solvers.

The Maple function RootFinding[Isolate] takes as input any polynomial system over the rational numbers (if some coefficients are floating point numbers, they are converted to rational numbers) and outputs the real solutions represented either (optionally) as intervals of rational numbers or as floating point approximations of arbitrary precision. If the system is not zero dimensional, this is signaled as an error.

Internally, this solver, designed by F. Rouillier computes first a Gröbner basis and then a Rational Univariate Representation from which the required approximation of the solutions are deduced. It works routinely for systems having up to a few hundred complex solutions.

The rational univariate representation may be computed with Maple function Groebner[RationalUnivariateRepresentation].

To extract all the complex solutions from a rational univariate representation, one may use MPSolve, which computes the complex roots of univariate polynomials to any precision. It is recommended to run MPSolve several times, doubling the precision each time, until solutions remain stable, as the substitution of the roots in the equations of the input variables can be highly unstable.

The second solver is PHCpack,[13][16] written under the direction of J. Verschelde. PHCpack implements the homotopy continuation method. This solver computes the isolated complex solutions of polynomial systems having as many equations as variables.

The third solver is Bertini,[17][18] written by D. J. Bates, J. D. Hauenstein, A. J. Sommese, and C. W. Wampler. Bertini uses numerical homotopy continuation with adaptive precision. In addition to computing zero-dimensional solution sets, both PHCpack and Bertini are capable of working with positive dimensional solution sets.

The fourth solver is the Maple library RegularChains, written by Marc Moreno-Maza and collaborators. It contains various functions for solving polynomial systems by means of regular chains.

See also

[edit]

References

[edit]
  1. ^ Bates et al. 2013, p. 4
  2. ^ Bates et al. 2013, p. 8
  3. ^ Songxin Liang, J. Gerhard, D.J. Jeffrey, G. Moroz, A Package for Solving Parametric Polynomial Systems. Communications in Computer Algebra (2009)
  4. ^ Aubry, P.; Maza, M. Moreno (1999). "Triangular Sets for Solving Polynomial Systems: a Comparative Implementation of Four Methods". J. Symb. Comput. 28 (1–2): 125–154. doi:10.1006/jsco.1999.0270.
  5. ^ Faugère, J.C.; Gianni, P.; Lazard, D.; Mora, T. (1993). "Efficient Computation of Zero-Dimensional Gröbner Basis by Change of Ordering". Journal of Symbolic Computation. 16 (4): 329–344. doi:10.1006/jsco.1993.1051.
  6. ^ Lazard, D. (1992). "Solving zero-dimensional algebraic systems". Journal of Symbolic Computation. 13 (2): 117–131. doi:10.1016/S0747-7171(08)80086-7.
  7. ^ Xavier Dahan and Eric Schost. Sharp Estimates for Triangular Sets. Moreover, recent algorithms for decomposing polynomial systems into triangular decompositions produce regular chains with coefficients matching the results of Dahan and Schost. In proc. ISSAC'04, pages 103--110, ACM Press, 2004
  8. ^ Dahan, Xavier; Moreno Maza, Marc; Schost, Eric; Wu, Wenyuan; Xie, Yuzhen (2005). "Lifting techniques for triangular decompositions" (PDF). Proceedings of ISAAC 2005. ACM Press. pp. 108–105.
  9. ^ Changbo Chen and Marc Moreno-Maza. Algorithms for Computing Triangular Decomposition of Polynomial Systems.In proc. ISSAC'2011, pages 83-90, ACM Press, 2011 and Journal of Symbolic Computation (to appear)
  10. ^ Rouillier, Fabrice (1999). "Solving Zero-Dimensional Systems Through the Rational Univariate Representation". Appl. Algebra Eng. Commun. Comput. 9 (9): 433–461. doi:10.1007/s002000050114. S2CID 25579305.
  11. ^ Saugata Basu; Richard Pollack; Marie-Françoise Roy (2006). Algorithms in real algebraic geometry, chapter 12.4. Springer-Verlag.
  12. ^ Lazard, Daniel (2009). "Thirty years of Polynomial System Solving, and now?". J. Symb. Comput. 44 (3): 2009. doi:10.1016/j.jsc.2008.03.004.
  13. ^ a b Verschelde, Jan (1999). "Algorithm 795: PHCpack: A general-purpose solver for polynomial systems by homotopy continuation" (PDF). ACM Transactions on Mathematical Software. 25 (2): 251–276. doi:10.1145/317275.317286. S2CID 15485257.
  14. ^ George E. Collins and Alkiviadis G. Akritas, Polynomial Real Root Isolation Using Descartes' Rule of Signs. Proceedings of the 1976 ACM Symposium on Symbolic and Algebraic Computation
  15. ^ Rouillier, F.; Zimmerman, P. (2004). "Efficient isolation of polynomial's real roots". Journal of Computational and Applied Mathematics. 162 (1): 33–50. Bibcode:2004JCoAM.162...33R. doi:10.1016/j.cam.2003.08.015.
  16. ^ Release 2.3.86 of PHCpack
  17. ^ Bates et al. 2013
  18. ^ Bertini: Software for Numerical Algebraic Geometry
  • Bates, Daniel J.; Sommese, Andrew J.; Hauenstein, Jonathan D.; Wampler, Charles W. (2013). Numerically solving polynomial systems with Bertini. Philadelphia: Society for Industrial and Applied Mathematics. ISBN 978-1-61197-269-6.
  • Cox, David; Little, John; O'Shea, Donal (1997). Ideals, varieties, and algorithms : an introduction to computational algebraic geometry and commutative algebra (2nd ed.). New York: Springer. ISBN 978-0387946801.
  • Morgan, Alexander (1987). Solving polynomial systems using continuation for engineering and scientific problems (SIAM ed.). Society for Industrial and Applied Mathematics (SIAM, 3600 Market Street, Floor 6, Philadelphia, PA 19104). ISBN 9780898719031.
  • Sturmfels, Bernd (2002). Solving systems of polynomial equations. Providence, RI: American Mathematical Soc. ISBN 0821832514.