I am trying to solve a system of non-linear equations using some easy assumptions. My code is:
ClearAll[a, b, x, y, a12, a22]
Assuming[
{a > 0, b > 0, a12 > 0, a22 > 0},
Solve[a12 == (x*(x + y))/(a*(a + b)) && a22 == (y*(x + y))/(b*(a + b)) && x > 0 && y > 0, {x, y}, Reals]
]
Unfortunately Mathematica basically ignores the assumptions and also spits out invalid conditions:
{
{x->ConditionalExpression[
-(((a a22^2 b^2+a22^2 b^3)/(a a12+a22 b)-a a22 b-a22 b^2)/Sqrt[((a a22^2 b^2+a22^2 b^3)/(a a12+a22 b))]),
(a>0\[And]a+b<0\[And]a12<0\[And]b<0\[And]a22>0)\[Or]
(a>0\[And]a12>0\[And]b>0\[And]a22>0)\[Or]
(a<0\[And]a+b>0\[And]a12<0\[And]b>0\[And]a22>0)\[Or]
(a<0\[And]a12>0\[And]b<0\[And]a22>0)\[Or]
(a+b>0\[And]a12>0\[And]b<0\[And]a22<0)\[Or]
(a+b<0\[And]a12>0\[And]b>0\[And]a22<0)],
y->ConditionalExpression[Sqrt[(a a22^2 b^2+a22^2 b^3)/(a a12+a22 b)],
(a>0\[And]a+b<0\[And]a12<0\[And]b<0\[And]a22>0)\[Or]
(a>0\[And]a12>0\[And]b>0\[And]a22>0)\[Or]
(a<0\[And]a+b>0\[And]a12<0\[And]b>0\[And]a22>0)\[Or]
(a<0\[And]a12>0\[And]b<0\[And]a22>0)\[Or]
(a+b>0\[And]a12>0\[And]b<0\[And]a22<0)\[Or]
(a+b<0\[And]a12>0\[And]b>0\[And]a22<0)]
}
}
I realize that I can get rid of the unneeded solutions by adding the assumptions directly to the Solve command like
Solve[a12 == (x*(x + y))/(a*(a + b)) && a22 == (y*(x + y))/(b*(a + b)) && x > 0 && y > 0 && a>0 && b>0 && a12>0 && a22>0, {x, y}, Reals]
But the result is still a conditional expression:
{
{x->ConditionalExpression[
-(((a a22^2 b^2+a22^2 b^3)/(a a12+a22 b)-a a22 b-a22 b^2)/Sqrt[((a a22^2 b^2+a22^2 b^3)/(a a12+a22 b))]),
b>0\[And]a>0\[And]a22>0\[And]a12>0],
y->ConditionalExpression[
Sqrt[(a a22^2 b^2+a22^2 b^3)/(a a12+a22 b)],
b>0\[And]a>0\[And]a22>0\[And]a12>0]
}
}
I feel like I missed something fundamentally. Any help would be appreciated.
Cheers
Simplify:Assuming[{a > 0, b > 0, a12 > 0, a22 > 0}, Simplify[Solve[ a12 == (x*(x + y))/(a*(a + b)) && a22 == (y*(x + y))/(b*(a + b)) && x > 0 && y > 0, {x, y}, Reals]]]– Anjan Kumar Mar 16 '17 at 08:59