# Multivariate resultant in Mathematica?

Is there any command in Mathematica 7 which can compute the (McCaulay) resultant of a parametric system of multivariate polynomial equations? In fact, it would be great if there is also a way to compute the discriminant of such a system in Mathematica as well. Thanks, - dbm

-
@belisarius, That gives two polynomials! I don't know what that means. – dbm Oct 28 '13 at 14:39
Could try MultivariateResultantMacaulayResultant. Just don't get worked up if your Mathematica kernel crashes: this stuff is old and unmaintained. Quite likely also untested. – Daniel Lichtblau Oct 28 '13 at 15:14
@DanielLichtblau, How can I use this package? I don't seem to have it in Mathematica 7. – dbm Oct 28 '13 at 23:20
I thought it was there in the Mathematica kernel. I guess it could be new to version 8 or 9. That would be good insofar as it would indicate that this might be tested, working functionality. – Daniel Lichtblau Oct 29 '13 at 15:20

There is an undocumented command (Mma V9). Use it at your own risk, YMMV. I found it following @Daniel's hint above:

pols = {x - a, x - b y, y - k};
mvr = InternalMultivariateResultant[pols, {x, y}]
(* -a + b k *)


We can test that that is effectively the condition for common roots:

Solve[And @@ Thread[(pols /. First@Solve[mvr == 0]) == 0], {x, y}]
(* {{x -> b k, y -> k}} *)


It works in much more complicated cases.

eq1 = a6 x y + a5 x z + a4 y z + a3 x + a2 y + a1 z + a0;
eq2 = x y z + b6 x y + b5 x z + b4 y z + b3 x + b2 y + b1 z + b0;
eq3 = c6 x y + c5 x z + c4 y z + c3 x + c2 y + c1 z + c0;
(mvr = InternalMultivariateResultant[{eq1, eq2, eq3}, {x, y, z}]) // Short
(*
a6^2 b2 b3 c0^2 - a3 a6 b2 b6 c0^2 - a2 a6 b3 b6 c0^2 + <<2978>> +  a1 a4 b4 c5^2 z^6
*)
`
-
I am glad to see you located that function and also got sensible results. Or resultants. Whatever. – Daniel Lichtblau Aug 28 '15 at 14:18
@DanielLichtblau Only up to three vars :( – Dr. belisarius Aug 28 '15 at 14:20
Well, you are using purely symbolic coefficients in your example, so it is going to be a difficult one. Problems with rational coeffs might fare better, maybe allow for more polynomials and variables. Or maybe those crash. It's been a long time since I even looked (briefly) at that code; I didn't write it and was not up to the task of debugging it. – Daniel Lichtblau Aug 28 '15 at 14:22
@DanielLichtblau The limit of three polys/vars seems hardcoded somewhere (strange). It doesn't matter if the input is symbolic or not: with more than three polys it spits out the input. Anyway, it's too easy to crash, so I think the version I've here is just barely debugged. – Dr. belisarius Aug 28 '15 at 14:30