Note that, instead, the image of a standard rational map is the defining ideal of the image (this is done mainly for efficiency reasons).
i1 : ZZ/65521[x_0..x_4]; |
i2 : f = rationalMap {x_2^2-x_1*x_3, x_1*x_2-x_0*x_3, x_1^2-x_0*x_2, x_0*x_4, x_1*x_4, x_2*x_4, x_3*x_4, x_4^2};
o2 : RationalMap (quadratic rational map from PP^4 to PP^7)
|
i3 : g = rationalMap {-x_3^2+x_2*x_4, 2*x_2*x_3-2*x_1*x_4, -3*x_2^2+2*x_1*x_3+x_0*x_4, 2*x_1*x_2-2*x_0*x_3, -x_1^2+x_0*x_2};
o3 : RationalMap (quadratic rational map from PP^4 to PP^4)
|
i4 : Phi = multirationalMap {f,g};
o4 : MultirationalMap (rational map from PP^4 to PP^7 x PP^4)
|
i5 : time Z = image Phi;
-- used 1.01305 seconds
o5 : ProjectiveVariety, 4-dimensional subvariety of PP^7 x PP^4
|
i6 : dim Z, degree Z, degrees Z
o6 = (4, 151, {({1, 1}, 4), ({2, 0}, 5), ({1, 2}, 3), ({2, 1}, 13)})
o6 : Sequence
|
Alternatively, the calculation can be performed using the Segre embedding as follows:
i7 : time Z' = projectiveVariety (map segre target Phi) image(segre Phi,"F4");
-- used 5.88127 seconds
o7 : ProjectiveVariety, 4-dimensional subvariety of PP^7 x PP^4
|
i8 : assert(Z == Z') |