This question follows my last post.
I have a function $ \vec{f}: S^6 \times S^6 \rightarrow \mathbb{R}^{13} $ defined on two 6-dim hyperspheres. We will denote the function $ \vec{f}(\vec{x},\vec{y}) $, where $ \vec{x} $ and $ \vec{y} $ are points in the two spheres: so $ \vec{x} \cdot \vec{x} = 1 $ and $ \vec{y} \cdot \vec{y} = 1 $.
This function is saved in this file .wbx
(download it) that you can import with the command
f= Uncompress @ Import["vector.wbx", "String"]
(If you have problems with the Import
, you can copy the function here
The problem
This function appears in a infinite dimension system of strictly-positive inequalities
$$ \vec{f}(\vec{x},\vec{y}) \cdot \vec{\alpha}>0 $$ where $\vec{\alpha}$ is the vector of the unknowns. Each choice of $\vec{x},\vec{y}$ gives an inequality which must be consistent with all the possible inequalities you can get by varying the points $\vec{x},\vec{y}$.
If you import the function on your notebook, you see there are no consistent solutions for $\vec{X}=(X_1,X_2,0,0,0,0,0)$ and $\vec{Y}=(Y_1,Y_2,0,0,0,0,0)$, since these are zeros of the function $f(x,y)$. Indeed, if you find a zero, this contradicts the sign of the inequality (namely you get $0>0$).
Let us focus instead on points on the spheres which do not live on the space of zeros I have already found; that is, $ \vec{x}\neq \vec{X}$ and $\vec{y}\neq \vec{Y}$.
My aim is to show whether this system admits solutions or not for ANY choice of the points of the spheres $(\vec{x},\vec{y})\neq(\vec{X},\vec{Y})$
The strategy
- If there exist two points such that $\vec{f}(\vec{x}_i,\vec{y}_i)=-\vec{f}(\vec{x}_j,\vec{y}_j)$, then the system is impossible.
- However, it may not be possible two find such two points. Then, the system is impossible if, and only if, the convex-hull of the image of $\vec{f}(\vec{x},\vec{y})$ contains zero. This means that there is a set of points $\{x_n,y_n\}$ and positive coefficients $c_n>0$ such that
$$ \sum_n c_n\, \vec{f}(\vec{x}_n,\vec{y}_n) =0 $$
I want then to check if the convex-hull contains zero (notice the point 1 is a special case of the point 2).
I have tried following this post, which explains nicely how to compute the convex-hull in higher dimensions. However, their method takes a lot of time for a 15-dim vector.
So, this is my strategy I have thought to decrease the computational time: compute the convex-hull of all possible subvectors of $\vec{f}(\vec{x},\vec{y})$. If I find a convex-hull of these subvectors which does not include the zero, then the answer of my original question is negative.
Is there a better way to speed-up the computation?
Two possible scenarios
If the zero vector belongs to the convex-hull, then my problem is solved. If however this is not the case, then the system is consistent and may admit a solution. In this latter case, I want to get which are the values of $(\vec{x},\vec{y})$ such that the maximal numbers of zero appears in the entries of $\vec{f}(x,y)$. In this way, I can get simpler inequalities involving a less number (then 15) of unknowns. How can I do that with Mathematica?
My attempts
obj[x1_, x2_, x3_, x4_, x5_, x6_, x7_, y1_, y2_, y3_, y4_, y5_, y6_, y7_] := Uncompress@Import["vector.wdx", "String"];
SeedRandom[0];
listPoints = Table[Apply[obj, {Normalize@RandomReal[{-1, 1}, 7], Normalize@RandomReal[{-1, 1}, 7]} // Flatten], {i, 1, 1000}];
<< "https://gist.githubusercontent.com/jasondbiggs/c3d9410af3195da514a442be5b563ab8/raw/80ac5074077f0d4b1366540c8c710e35cb530ddd/NDConvexHull.m"
hull1 = CHNQuickHull[listPoints[[All, {1, 2, 3, 4, 5, 6, 7}]]];
hull2 = CHNQuickHull[Append[listPoints[[All, {1, 2, 3, 4, 5, 6, 7}]], {0, 0, 0, 0, 0, 0,0}]];
hull1 == hull2
(*False*)
As you see, the point {0, 0, 0, 0, 0, 0,0}
does modify the convex-hull. This should mean that it does not belong to the convex-hull. Is this result robust? It may be that the zero belongs to a very narrow corner and the simulated points do not reach the corner. Any suggestion?
Import
. $\endgroup$Uncompress
. The result, when factored, has a leaf count around 7K, so not excessively large. $\endgroup$