0
$\begingroup$

Is there any way to fix or revise this code to find the EXACT optimal bound, and could anyone help find the EXACT optimal bound? Thanks.

generateRandomUnitVector[] := Normalize[RandomReal[{-1, 1}, 5]];

deleteRowsCols[mat_, {i_, j_}] := Module[{dim},
  dim = Length[mat];
  Part[mat, Complement[Range[dim], {i, j}], Complement[Range[dim], {i, j}]]
];

findMinimalUpperBound[numSamples_] := Module[{minEigenValuesList = {}, x, y, z, M, subMatrices, minEigenValues},
  For[n = 1, n <= numSamples, n++,
    x = generateRandomUnitVector[];
    y = generateRandomUnitVector[];
    z = generateRandomUnitVector[];
    
    M = x.x\[Transpose] + y.y\[Transpose] + z.z\[Transpose];
    
    subMatrices = Table[deleteRowsCols[M, {i, j}], {i, 1, 5}, {j, i + 1, 5}];
    
    minEigenValues = Min[Table[Min[Eigenvalues[subMatrices[[i, j - i]]]], {i, 1, 4}, {j, i + 1, 5}]];
    AppendTo[minEigenValuesList, minEigenValues];
  ];
  
  Max[minEigenValuesList]
];

minimalUpperBound = findMinimalUpperBound[1000];
minimalUpperBound

(The above code defines a function to generate random unit vectors in R^5 and Function to delete ith and jth rows and columns from a matrix, ...)

New contributor
Venus is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
$\endgroup$
1
  • $\begingroup$ If I scrape-n-paste your code into Mathematica and run it then all it displays is Eigenvalues[Real[]] Can you do exactly what I did and verify that? And then can you modify your code so that it displays what I assume is supposed to be a non-exact optimal bound and show the result that you got from your example code? Thanks $\endgroup$
    – Bill
    Commented 4 hours ago

0