Minimality of tensors of fixed multilinear rank

As a (very) special case of the main theorem of https://arxiv.org/abs/2007.08909, the set of \(2\times 2\) matrices of rank \(1\) is a minimal submanifold of \(\mathbb{R}^4\) under the Frobenius norm. Minimal submanifolds are a mathematical model of soap films, since they locally minimize volume given a fixed boundary. A minimal submanifold can be defined by the requirement that its mean curvature vector field be everywhere vanishing. In fact, the set of all tensors of any fixed multilinear rank forms a minimal submanifold of its ambient Euclidean space, which yields \(2 \times 2\) matrices of rank one as the special case we examine computationally in this notebook.

First, we will see a mean curvature vector field which is not everywhere vanishing. We accomplish this by examining the set of \(2 \times 2\) matrices of rank one, whose entries are required to sum to one. This set is of interest in statistics, for example, and will not be a minimal submanifold, as we will visually see.

To begin, we use a local parametrization of the set \(\mathcal{M}\) of matrices whose rank is one, and whose entries sum to one.

[1]:
u1,u2 = var('u1 u2')
x = vector([u1*u2, u1*(1-u2), u2*(1-u1), (1-u1)*(1-u2)])
show(x)
[1]:
[2]:
sum(x).expand()
[2]:
1

Below we calculate a basis for the tangent space of \(\mathcal{M}\) from our local parametrization. We also calculate the Gram matrix \(G\) in the basis coming from our local parametrization.

[3]:
v1 = derivative(x,u1)
v2 = derivative(x,u2)

a11 = derivative(v1,u1)
a12 = derivative(v1,u2)
a21 = derivative(v2,u1)
a22 = derivative(v2,u2)

G = matrix(2,2,[v1.dot_product(v1), v1.dot_product(v2), v2.dot_product(v1), v2.dot_product(v2)])
show(G)
[3]:

Below we calculate the second derivative vectors, and project them onto the normal space of \(\mathcal{M}\).

[4]:
V2 = v2 - v2.dot_product(v1)*v1/v1.dot_product(v1) # orthogonalize our tangent space basis...

proja11 = a11 - a11.dot_product(v1)*v1/v1.dot_product(v1) - a11.dot_product(V2)*V2/V2.dot_product(V2)
proja12 = a12 - a12.dot_product(v1)*v1/v1.dot_product(v1) - a12.dot_product(V2)*V2/V2.dot_product(V2)
proja21 = a21 - a21.dot_product(v1)*v1/v1.dot_product(v1) - a21.dot_product(V2)*V2/V2.dot_product(V2)
proja22 = a22 - a22.dot_product(v1)*v1/v1.dot_product(v1) - a22.dot_product(V2)*V2/V2.dot_product(V2)

Below, the mean curvature vector \(h\) is calculated using the inverse of the Gram matrix and the projections of the second derivative vectors onto the normal space. We print out the first entry of the vector \(h\) to show that it is evidently nonzero. This proves that \(\mathcal{M}\) is not a minimal submanifold.

[5]:
Ginv = G.inverse()
h = Ginv[0,0]*proja11 + Ginv[0,1]*proja12 + Ginv[1,0]*proja21 + Ginv[1,1]*proja22

entry = h[0]
print(entry.expand().full_simplify().expand()) # the only observation is that it is nonzero
16*u1^2*u2/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9) + 16*u1*u2^2/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9) - 8*u1^2/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9) - 40*u1*u2/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9) - 8*u2^2/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9) + 16*u1/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9) + 16*u2/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9) - 6/(16*u1^4 + 32*u1^2*u2^2 + 16*u2^4 - 32*u1^3 - 32*u1^2*u2 - 32*u1*u2^2 - 32*u2^3 + 40*u1^2 + 32*u1*u2 + 40*u2^2 - 24*u1 - 24*u2 + 9)
[6]:
# special points zero mean curvature
subz = {u1:1/2, u2:1/3}
h.subs(subz)
[6]:
(0, 0, 0, 0)
[7]:
# most points have nonzero mean curvature vectors
subz = {u1:1/4, u2:1/5}
h.subs(subz)
[7]:
(-1800/3703, 5400/25921, 6600/25921, 600/25921)

Now we can take a look at the mean curvature vector field at various points along \(\mathcal{M} \subset \mathbb{R}^4\) by projecting the entire picture onto the affine hyperplane \(P \subset \mathbb{R}^4\) where \(P = \{ x \in \mathbb{R}^4 : \sum_{i=1}^4 x_i = 1 \}\).

[8]:
Q,_ = matrix(RDF,4,1,[1,1,1,1]).QR() # for projecting

plt = Graphics()
N = 25
step = 1/N
for s in [0,0+step..,1]:
    for t in [0,0+step..,1]:
        subz = {u1:s, u2:t}
        X = (Q.T*x.subs(subz))[1:4]
        H = (Q.T*h.subs(subz))[1:4]
        plt += point(X, color="black")
        plt += arrow(X,(X+H), width=0.25)

Below there should be an interactive three-dimensional plot of the mean curvature vector field of \(\mathcal{M}\). In case something goes wrong in your browser, we include a static picture farther below.

[9]:
show(plt, frame=False)
[9]: