msolveRUR(I)
This functions uses the msolve package to compute the rational univariate representation (RUR) of a zero dimensional polynomial ideal with either integer or rational coefficients.
The RUR gives a parametrization for all complex solutions to the input system. For a complete definition of the RUR see the paper: Rouillier, Fabrice (1999). "Solving Zero-Dimensional Systems Through the Rational Univariate Representation". Appl. Algebra Eng. Commun. Comput. 9 (9): 433–461.
If I is a zero dimensional ideal in QQ[x_1..x_n] then the RUR is given by:
(x_1,..,x_n)={ (-v_1(T)/w'(T), .. , -v_n(T)/w'(T)) | w(T)=0}
The output is a hash table with 6 keys.
The key "degree" is the number of solutions to I, counted with multiplicity.
The key "findRootsUniPoly" gives the polynomial w(T) above.
The key "denominator" gives the polynomial w'(T), which is the derivative of w(T) and is the denominator of each coordinate above.
The key "numerator" gives a list {v_1(T), .. , v_n(T)} of length n above, with n the number of variables, where the polynomial v_i(T) gives the numerator of the ith coordinate.
The key "var" gives the variable name in the univariate polynomial ring; by default this is: "T".
The key "T" gives the linear relation between the variables of the ring of I and the single variable, which is denoted T above.
A simple example, where the input ideal is zero dimensional and radical.
|
|
|
|
|
|
|
|
|
|
|
|
In cases where the input ideal has dimension greater than zero an error will be returned.
The object msolveRUR is a method function with options.