0
$\begingroup$

I would like to maximize the following expression: $$\sum_{k = 1}^4\int_{\mathbb{S^4}}|u - \mathbf{e}_k.u_k||\nabla u_k|.\Big(1 - \frac{1}{8}\Big(\langle{v, \mathbf{e}_k}\rangle^2 + \langle{ e_k,\frac{\nabla u_k}{|\nabla u_k|}}\rangle^2 + \langle{\frac{\nabla u_k}{|\nabla u_k|}, \frac{u - u_k.\mathbf{e}_k}{u - u_k.\mathbf{e}_k}}\rangle^2 + \langle{\frac{u - u_k.\mathbf{e}_k}{u - u_k.\mathbf{e}_k}, v}\rangle^2\Big)\Big).dS$$ where $dS$ denotes the normalised measure of $\mathbb{S}^4$, $u = u_1.\mathbf{e}_1 + u_2.\mathbf{e}_2 + u_3.\mathbf{e}_3 + u_4.\mathbf{e}_4$, where $\mathbf{e}_i$ are the standard vector and $\nabla$ is the gradient on $\mathbb{S}^4$. For the maximization we ask that $|u|^2 = u_1^2 + u_2^2 + u_3^2 + u_4^2$ integrates to $1$ over $\mathbb{S}^4$ AND that $u_i$ are spherical harmonics of degree 3 over $\mathbb{S}^4$.

To do this with Mathematica, I am using a package by Sheldon Axler (https://www.axler.net/HFT_Math.html) that generates an orthonormal basis of spherical harmonics of degree 3 for me. The first step is to integrate the term for $k = 1$.

m = 4;
n = 3;
setDimension[x, n];
d = dimHarmonic[m, n];
basis = basisH[m, x, 
   Sphere] /. \
{\[LeftDoubleBracketingBar]x\[RightDoubleBracketingBar]^2 -> 
    x^2 + y^2 + z^2 + t^2, x[1] -> x, x[2] -> y, x[3] -> z, x[4] -> t};
weight[a_?(VectorQ[#, NumericQ] &), b_?(VectorQ[#, NumericQ] &), 
   c_?(VectorQ[#, NumericQ] &), d_?(VectorQ[#, NumericQ] &)] := 
  1 - 1/8*(x^2 
      + ({x, y, z, t} . unit[{0, b . basis, c . basis, d . basis}])^2
      + (unit[spheregrad[a . basis]] . {1, 0, 0, 0})^2
      + (unit[spheregrad[a . basis]] . 
         unit[{0, b . basis, c . basis, d . basis}])^2);
term[a_?(VectorQ[#, NumericQ] &), b_?(VectorQ[#, NumericQ] &), 
   c_?(VectorQ[#, NumericQ] &), 
   d_?(VectorQ[#, NumericQ] &)] := (1/surfaceArea[n])*
   NIntegrate[
    Sqrt[(b . basis)^2 + (c . basis)^2 + (d . basis)^2]*
     norm[spheregrad[a . basis]]*
     weighta[a, b, c, d], {x, y, z, t} \[Element] Sphere[n], 
    WorkingPrecision -> 15, MaxPoints -> 10000];

Here unit denotes the re-scaling of a vector to norm $1$, spheregrad is the function that return the spherical gradient. Evaluating the function term at a random point on $\mathbb{S}^{64}$ ($d = 16$ is the dimension of spherical harmonics of degree $3$ on $\mathbb{S}^4$, so writing $(a,b,c,d) \in \mathbb{S}^{64}$ with $u_1 = a.basis$, $u_2 = b.basis$ and so on) simply gives Warnings ``enter image description here enter image description here and the function returns no answer. I suspect the reason is that the function weight is complicated. Any help in making term return some value is much appreciated!!

$\endgroup$
4
  • 1
    $\begingroup$ To integrate a function $f(x,y,z,w)$ over the unit 4-sphere's surface you can integrate it in explicit hyperspherical coordinates: NIntegrate[f[Cos[θ], Cos[χ]*Sin[θ], Cos[φ]*Sin[θ]*Sin[χ], Sin[θ]*Sin[φ]*Sin[χ]] * Sin[θ]^2*Sin[χ], {θ, 0, π}, {χ, 0, π}, {φ, 0, 2 π}]. $\endgroup$
    – Roman
    Aug 21, 2021 at 16:11
  • $\begingroup$ Thanks! That might help... $\endgroup$
    – Ceka
    Aug 21, 2021 at 16:53
  • $\begingroup$ Thank you, that indeed works and I can accept that as an aswer. Do you perhaps know how to run NMaximize now with this? It seems that NMaximize[improvement[a[[1 ;; d]], a[[d + 1 ;; 2*d]], a[[2*d + 1 ;; 3*d]], a[[3*d + 1 ;; 4*d]]], a [Element] Sphere[4*d]] goes through only one iteration and returns NMaximize::ivar: True is not a valid variable., and then NMaximize[4.90928724127370, True]. Improvement is the sum of term functions as above for $k = 1, 2, 3, 4$. Thank you again! $\endgroup$
    – Ceka
    Aug 22, 2021 at 10:42
  • $\begingroup$ Please ask a separate question for this follow-up! $\endgroup$
    – Roman
    Aug 22, 2021 at 15:18

1 Answer 1

1
$\begingroup$

As mentioned in the comments, hyperspherical coordinates give a direct parametrization of the surface of the unit 4-sphere. To integrate a function $f(x,y,z,w)$ on this hyperspherical surface $x^2+y^2+z^2+w^2=1$, we use the coordinates

$$ x = \cos (\theta )\\ y = \sin (\theta ) \cos (\chi )\\ z = \sin (\theta ) \sin (\chi ) \cos (\phi)\\ w = \sin (\theta ) \sin (\chi ) \sin (\phi ) $$

to give the 4-surface integral

NIntegrate[f[Cos[θ], Sin[θ]*Cos[χ], Sin[θ]*Sin[χ]*Cos[φ], Sin[θ]*Sin[χ]*Sin[φ]] *
           Sin[θ]^2*Sin[χ], {θ, 0, π}, {χ, 0, π}, {φ, 0, 2π}]

To get more uniform sampling, use $(x,y,\phi)$ as parameters and thus eliminate the Jacobian:

NIntegrate[f[x, y, Sqrt[1-x^2-y^2]*Cos[φ], Sqrt[1-x^2-y^2]*Sin[φ]],
           {x, -1, 1}, {y, -Sqrt[1-x^2], Sqrt[1-x^2]}, {φ, 0, 2π}]

There is a lot of symmetry in this integral, and you are allowed to permute all arguments if it makes your integral simpler.

$\endgroup$
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.