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 = rationalMap {f,g}; o4 : MultirationalMap (rational map from PP^4 to PP^7 x PP^4) |
i5 : time Z = image Phi; -- used 0.275437 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), ({1, 2}, 3), ({2, 0}, 5), ({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 9.69388 seconds o7 : ProjectiveVariety, 4-dimensional subvariety of PP^7 x PP^4 |
i8 : assert(Z == Z') |