I am trying to find a matrix that satisfies six matrix equations.
The equations are as follows:
(Conjugate[ConjugateTranspose[B1]].X.ConjugateTranspose[B1]) == TotalPrB1, (Conjugate[ConjugateTranspose[B2]].X.ConjugateTranspose[B2]) == TotalPrB2, (Conjugate[ConjugateTranspose[B3]].X.ConjugateTranspose[B3]) == TotalPrB3, (Conjugate[ConjugateTranspose[B4]].X.ConjugateTranspose[B4]) == TotalPrB4, (Conjugate[ConjugateTranspose[B5]].X.ConjugateTranspose[B5]) == TotalPrB5, (Conjugate[ConjugateTranspose[B6]].X.ConjugateTranspose[B6]) == TotalPrB6
Where, every matix is 8*8. I want to find a X that satisfies all the above equations.
I tried to use FindRoot and Nsolve function but was unable to get the desired result. FindRoot can only solve for X satisfying one matrix equation.
Can you suggest a way to find X solving the above system?
In a fraction of a second this
B1=RandomReal[{-1,1},{8,8}];B2=RandomReal[{-1,1},{8,8}];B3=RandomReal[{-1,1},{8,8}];
B4=RandomReal[{-1,1},{8,8}];B5=RandomReal[{-1,1},{8,8}];B6=RandomReal[{-1,1},{8,8}];
X=Array[x,{8,8}];
{TotalPrB1,TotalPrB2,TotalPrB3,TotalPrB4,TotalPrB5,TotalPrB6}=RandomReal[{-10,10},6];
Reduce[{
Conjugate[ConjugateTranspose[B1]].X.ConjugateTranspose[B1]==TotalPrB1,
Conjugate[ConjugateTranspose[B2]].X.ConjugateTranspose[B2]==TotalPrB2,
Conjugate[ConjugateTranspose[B3]].X.ConjugateTranspose[B3]==TotalPrB3,
Conjugate[ConjugateTranspose[B4]].X.ConjugateTranspose[B4]==TotalPrB4,
Conjugate[ConjugateTranspose[B5]].X.ConjugateTranspose[B5]==TotalPrB5,
Conjugate[ConjugateTranspose[B6]].X.ConjugateTranspose[B6]==TotalPrB6},
Flatten[X]]
returns False, indicating that there is no solution for those particular coefficients. If I fake my matricies to ensure there is a solution then it finds it in the same fraction of a second. Based on experience, with this many variables you are VERY lucky that it is able to find any solution at all, I suspect that is only because the form of your problem is simple. BUT I have no idea what your six matricies and six coefficients are, yours probably aren't Real, and whether a solution exists for those nor not.
So what happens when you use this code with your coefficients?