I have the following system, where I want to find the solution set consisting of real, nonzero, symmetric positive semidefinite matrices $G$ and $DD$ such that the block matrix $X$ defined below is symmetric and positive semidefinite. I am not sure how to really impose these requirements (for example when I use Solve[] or Reduce[]). Any suggestion?
A = {{1/2, 0}, {4/3, 1/2}};
U = {{1, -1/2}, {1, -5/6}};
B = {{19/16, 9/16}, {1/4, 3/4}};
V = {{1, -3/4}, {0, 0}};
DD = {{d11, d12}, {d21, d22}};
G = {{g11, g12}, {g21, g22}};
X11 = DD . A + Transpose[A] . DD - Transpose[B] . G . B;
X12 = DD . U - Transpose[B] . G . V;
X21 = Transpose[U] . DD - Transpose[V] . G . B;
X22 = G - Transpose[V] . G . V;
X = {{X11, X12}, {X21, X22}};
Edit
I tried the following, but it produced a trivial solution. I understand that it solves the problem but how can I get a nontrivial solution?!
A = {{1/2, 0}, {4/3, 1/2}};
U = {{1, -1/2}, {1, -5/6}};
B = {{19/16, 9/16}, {1/4, 3/4}};
V = {{1, -3/4}, {0, 0}};
DD = {{d11, d12}, {d21, d22}};
G = {{g11, g12}, {g21, g22}};
X11 = DD . A + Transpose[A] . DD - Transpose[B] . G . B;
X12 = DD . U - Transpose[B] . G . V;
X21 = Transpose[U] . DD - Transpose[V] . G . B;
X22 = G - Transpose[V] . G . V;
X = {{X11, X12}, {X21, X22}};
Solve[{X == Transpose[X], X >= 0, DD == Transpose[DD], DD >= 0,
G == Transpose[G], G >= 0}, {g11, g12, g21, g22, d11, d12, d21,
d22}, Reals]
{{g11 -> 0, g12 -> 0, g21 -> 0, g22 -> 0, d11 -> 0, d12 -> 0, d21 -> 0, d22 -> 0}}
X = {{X11, X12}, {X21, X22}};you need to useX = ArrayFlatten[{{X11, X12}, {X21, X22}}]to make it a proper matrix. 2) You can make both DD and G symmetric to begin with e.g replace them withDD = {{d1, d2}, {d2, d3}}andG = {{g1, g2}, {g2, g3}}; 3) If you do this you'll find thatX == Transpose[X]is automatically true. So it only remains to prove that the eigenvalues of all three matrices are all non-negative. – flinty Dec 22 '22 at 21:44Solvehas no algorithm to solve optimization problem. Try some of NNLS algorithms linked above. – Alex Trounev Dec 23 '22 at 04:32Xis zero and it always takes negative values. I can't prove this because the eigenvalues take a very complicatedRootform which will notReduce, but numerically it looks worrying:evalsX=Eigenvalues[X]; NMaximize[evalsX[[1]], vars]- and try the various methods . Having also done hours ofFindInstancetoo I'm going out on a limb and saying your problem has no solution except the trivial one. – flinty Dec 23 '22 at 13:00