4
$\begingroup$

I would like to mechanically Solve[a y == (1 - a) x && u0 == x^a y^(1 - a),{x,y}], given 1>a>0 and u0>0. The emphasis is on mechanically: I know it is simple in this case to do a log transform and get solution to the transformed system. I'd like a simple approach to the original system. I want only the positive real solution.

But Solve encounters a problem:

Solve::incnst: "Inconsistent or redundant transcendental equation. After reduction, the bad equation is x - a x - a y == 0."

Restricting the domain to Reals does not help. As well as learning the proper approach to this problem, I would appreciate better understanding why the system is seen as inconsistent or redundant.

$\endgroup$
4
  • $\begingroup$ That is a weird ( and really incorrect ) error message. The problem is that the system can only be solved for a in the specified range, but Solve has no mechanism to specify that restriction. $\endgroup$
    – george2079
    Commented Jul 20, 2015 at 19:33
  • $\begingroup$ @belisarius Why can you make the assumption that $x$ and $y$ are non-zero and positive? Also, is it as a consequence of that assumption that you canceled out an $x$ factor in the first equation? $\endgroup$
    – MarcoB
    Commented Jul 21, 2015 at 1:21
  • $\begingroup$ @belisarius Oh I see; no, I think you are right in that interpretation. I missed that in the OP. Nevertheless, when I try to use Reduce on the OP's expression (with the $x$ in the first equation), and adding your conditions, MMA churns and churns but doesn't really return a solution. Does it work on your side? $\endgroup$
    – MarcoB
    Commented Jul 21, 2015 at 1:37
  • $\begingroup$ @MarcoB deleting comments. I pasted the equation wrongly $\endgroup$ Commented Jul 21, 2015 at 14:01

1 Answer 1

1
$\begingroup$

As you're interested only in Real and positive solutions, the following will do:

eq = {a y == (1 - a) x && u0 == x^a y^(1 - a)};
assum = {y > 0 && x > 0 && 1 > a > 0};
s0 = Solve[eq[[1, 1]], x];
sy = Solve[FullSimplify[eq[[1, 2]] /. s0[[1]], Assumptions -> assum], y];
js = Join[s0 /. sy, sy] // Flatten

(* {x -> -(((-1 + a^-1)^a a u0)/(-1 + a)), 
    y ->    (-1 + a^-1)^a u0}
*)
$\endgroup$
3
  • $\begingroup$ @Alan Check it now, please $\endgroup$ Commented Jul 21, 2015 at 13:59
  • $\begingroup$ Although this is not quite as "mechanical" as I hoped, it gets me there without explicit transformation of the functional form. The key was the FullSimplify after the substitution. Thanks. I recommend editing so that eq and assum are not lists, so you won't need multiple indexes for Part. Thanks. $\endgroup$
    – Alan
    Commented Jul 21, 2015 at 15:31
  • $\begingroup$ @Alan Thanks! As you know, in this site you can edit other people's posts if you find it convenient! $\endgroup$ Commented Jul 21, 2015 at 16:02

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.