2
$\begingroup$

I have three non-homogeneous trivariate polynomials in $\mathbb Z[x,y,z]$ and I want to eliminate the variables $y$ and $z$ to get a polynomial in $x$. The monomials of the polynomials are $\{1,x^4,x^2,x^2y,x^2z\}$ and I want to reduce to univariate polynomial over $\mathbb Z[x]$.

Is there an automatic algorithm for these purposes?

Is there any useful python library package available?

If not what is the best software for these tasks?

$\endgroup$
4
  • 1
    $\begingroup$ Btw, this problem can be posed as iterative computing of resultants: $$\mathrm{res}_y(\mathrm{res}_z(f_1(x,y,z),f_2(x,y,z)),\mathrm{res}_z(f_1(x,y,z),f_3(x,y,z))).$$ $\endgroup$ Commented Apr 12, 2022 at 22:32
  • $\begingroup$ Usually taking iterated resultants like this produces extraneous factors, as figured out by Etienne Bezout. One should take the multivariate resultant with respect to the pair (y,z). $\endgroup$ Commented Apr 13, 2022 at 17:00
  • $\begingroup$ @AbdelmalekAbdesselam Can you explain as answer below on what is meant by multivariate resultant? $\endgroup$
    – Turbo
    Commented Apr 13, 2022 at 17:19
  • 2
    $\begingroup$ See my answer mathoverflow.net/questions/51534/multipolynomial-resultants/… $\endgroup$ Commented Apr 14, 2022 at 13:52

3 Answers 3

6
$\begingroup$

This can be done, e.g., in SageMath - here are documentation and examples. The code can be run online at SageMathCell.

$\endgroup$
5
  • $\begingroup$ Would there be any python package? $\endgroup$
    – Turbo
    Commented Apr 12, 2022 at 22:33
  • 2
    $\begingroup$ Not sure what python package you mean, but SageMath is python-based and it can be used as a python module. $\endgroup$ Commented Apr 12, 2022 at 22:35
  • $\begingroup$ Actually it seemed I can use 'linear algebra' to eliminate monomial $x^2y$ and then $x^2z$ since $y$ and $z$ depends only on these monomials. Is that correct way to do? $\endgroup$
    – Turbo
    Commented Apr 12, 2022 at 22:39
  • 1
    $\begingroup$ In your case, yes. You can view your polynomials as linear combinations of $1, y, z$ with coefficients being polynomials in $x$, then you'd need to form a $3\times 3$ matrix with those coefficients and compute its determinant. $\endgroup$ Commented Apr 12, 2022 at 22:43
  • 1
    $\begingroup$ The specific Sage command you're after is "elimination_ideal", see doc.sagemath.org/html/en/reference/polynomial_rings/sage/rings/… $\endgroup$ Commented Apr 13, 2022 at 14:11
1
$\begingroup$

You can also eliminate variables using Mathematica. There is a dedicated stackexchange for Mathematica, so if you post your problem there, someone might even solve this for you.

$\endgroup$
1
$\begingroup$

Several software packages can do this (SageMath, Mathematica, Maple, CoCoA, etc.). For Python, I've found https://github.com/mlweiss/buchberger_algorithms, by Michael Weiss. See the accompanying PDF for some explanation.

For more on this topic, see Ideals, Varieties, and Algorithms or its sequel Using Algebraic Geometry by Cox, Little & O'Shea. Cox's website for the first book is: https://dacox.people.amherst.edu/iva.html. You can also look up Buchberger's algorithm and Gröbner bases (e.g. http://www.scholarpedia.org/article/Buchberger%27s_algorithm).

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .