I have an issue of how to interpret the solution of the following nonlinear system in a matrix:


where $w>0$ is a scalar, $F=(F_1,F_2)$, $P=(P_1,P_2)$, and $L=(L_1,L_2)$ are all a row vector and $A$ is a $2\times2$ matrix of $a_{ij}$ and $X=diag(x_1,x_2)$ is a diagonal matrix. All the matrices and vectors are strictly positive.

$X$ is the unknown while the rest are all taken as given. To find the solution for $x_1$ and $x_2$, I have the following Mathematica code:

A = {{a11, a12}, {a21, a22}};
l = {{l1, l2}};
F = {{F1, F2}};
P = {{P1, P2}};
X = DiagonalMatrix[{x1, x2}];
Solve[F == P.Inverse[X].A.X + w*l, {x1, x2}]

The result is simply:


Does this mean that the above equation is always true regardless of the value of $x_1$ and $x_2$? But we can verify that this is not the case. To see this, suppose $X$ given and $P$ unknown; the code to find the solution for $P$ is

Solve[F == P.Inverse[X].A.X + w*l, {P1, P2}]

which yields

{{P1 -> -((-a21 F2 x1 + a21 l2 w x1 + a22 F1 x2 - a22 l1 w x2)/((a12 a21 - a11 a22) x2)), P2 -> (-a11 F2 x1 + a11 l2 w x1 + a12 F1 x2 - a12 l1 w x2)/((a12 a21 - a11 a22) x1)}}

If you look at this solution for $P_1$ and $P_2$, it does not seem to be the case that the values of $x_1$ and $x_2$ do not matter; i.e. changing the values of $x_1$ and $x_2$ would change the solution for $P_1$ and $P_2$. This observation seems to contradict the solution when $X$ was unknown.

Am I missing something?

  • $\begingroup$ Replacing Solve with Reduce doesn't give an empty list as a solution, but getting the output from Reduce into a matrix form can be challenging. Mathematica has internal default rules to interpret a list as a row or a column and adding extra {} does not change this. $\endgroup$
    – Bill
    Jun 24, 2019 at 19:44

1 Answer 1


Look at the equations you're trying to solve:

F == P.Inverse[X].A.X + w l // Simplify

{{F1, F2}} == {{a11 P1 + l1 w + (a21 P2 x1)/x2, a22 P2 + l2 w + (a12 P1 x2)/x1}}

So, from:

F1 == a11 P1 + l1 w + a21 P2 (x1/x2)

you can solve for x1/x2:

x1x2sol = First @ Solve[F1 == a11 P1 + l1 w + a21 P2 (x1/x2) /. x1/x2->x1x2, x1x2]

{{x1x2 -> (F1 - a11 P1 - l1 w)/(a21 P2)}}

Plugging this into the second equation:

F2 == a22 P2 + l2 w + a12 P1/x1x2 /. x1x2sol

{F2 == a22 P2 + l2 w + (a12 a21 P1 P2)/(F1 - a11 P1 - l1 w)}

There is no way to solve this equation for x1 or x2. Hence, there is no solution for your equation. This is what {} means, as you can see from the documentation:

enter image description here

  • $\begingroup$ Thanks, Carl! Follow-up questions: (1) Can we know why the system has no solution? Any implication? (2) Can we generalize this result and say that there is no solution in the $n \times n$ case, either? $\endgroup$
    – ppp
    Jun 25, 2019 at 2:57

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.