# numericalImageDim -- computes the dimension of the image of a variety

## Synopsis

• Usage:
numericalImageDim(F, I, p)
numericalImageDim(F, I)
• Inputs:
• F, a matrix, or list, or ring map, specifying a map
• I, an ideal, which is prime, specifying a source variety $V(I)$
• p, , a sample point on the source $V(I)$
• Optional inputs:
• Software => ..., default value M2engine, specify software for homotopy continuation
• Outputs:
• an integer, the dimension of $F(V(I)))$

## Description

The method computes the dimension of the image of a variety numerically. Even if the source variety and map are projective, the affine (Krull) dimension is returned. This ensures consistency with dim.

The following example computes the affine dimension of the Grassmannian $Gr(2,4)$ of $P^1$'s in $P^3$, under its Pl&uuml;cker embedding in $P^5$.

 i1 : R = CC[x_(1,1)..x_(2,4)]; i2 : F = (minors(2, genericMatrix(R, 2, 4)))_*; i3 : numericalImageDim(F, ideal 0_R) o3 = 5

For comparison, here is how to do the same computation symbolically.

 i4 : R = QQ[x_(1,1)..x_(2,4)]; i5 : F = (minors(2, genericMatrix(R, 2, 4)))_*; i6 : dim ker map(R,QQ[y_0..y_(#F-1)],F) o6 = 5

Next is an example where direct symbolic computation fails to terminate quickly. Part of the Alexander-Hirschowitz theorem states that the $14$th secant variety of the $4$th Veronese of $P^4$ has affine dimension $69$, rather than the expected $14*4 + 13 + 1 = 70$. See J. Alexander, A. Hirschowitz, $Polynomial interpolation in several variables$, J. Alg. Geom. 4(2) (1995), 201-222. We numerically verify this below.

 i7 : R = CC[a_(1,1)..a_(14,5)]; i8 : F = sum(1..14, i -> basis(4, R, Variables=>toList(a_(i,1)..a_(i,5)))); -- warning: experimental computation over inexact field begun -- results not reliable (one warning given per session) 1 70 o8 : Matrix R <--- R i9 : time numericalImageDim(F, ideal 0_R) -- used 0.141962 seconds o9 = 69

## Ways to use numericalImageDim :

• "numericalImageDim(List,Ideal)"
• "numericalImageDim(List,Ideal,Point)"
• "numericalImageDim(Matrix,Ideal)"
• "numericalImageDim(Matrix,Ideal,Point)"
• "numericalImageDim(RingMap,Ideal)"
• "numericalImageDim(RingMap,Ideal,Point)"

## For the programmer

The object numericalImageDim is .