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$ 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$ Apr 13, 2022 at 17:00
  • $\begingroup$ @AbdelmalekAbdesselam Can you explain as answer below on what is meant by multivariate resultant? $\endgroup$
    – Turbo
    Apr 13, 2022 at 17:19
  • 2
    $\begingroup$ See my answer mathoverflow.net/questions/51534/multipolynomial-resultants/… $\endgroup$ 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
    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$ 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
    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$ 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$ 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$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.