0
$\begingroup$

I am trying to solve a model using a constant-elasticity-of-substitution production function, but when I try to solve the first order conditions, I just keep getting back what I typed.

Solve[-i - q + p s^(-1 + a) (1 + s^a)^(-1 + 1/a) - t == 0, s]
Solve[-i - q + p s^(-1 + a) (1 + s^a)^(-1 + 1/a) - t == 0, s]

Any help on how to tackle this problem would be great.

$\endgroup$
3
  • $\begingroup$ I get the message "Solve::nsmet: This system cannot be solved with the methods available to Solve. >>". $\endgroup$
    – Michael E2
    Commented Aug 6, 2014 at 15:39
  • 7
    $\begingroup$ You should be aware that there are many apparently simple equations with solutions that are not expressible in closed form. One such example is Solve[Cos[x]==x,x]. On the other hand, Solve[Cos[x]==x,x,Reals] produces a useful result. Thus, it's nice to now if your variables and parameters satisfy any useful assumptions. Lacking a symbolic expression, perhaps you'd be happy with a function that produces an estimate for s as a function of the input parameters? $\endgroup$ Commented Aug 6, 2014 at 15:40
  • 2
    $\begingroup$ For a=1 the solution is easy, but for arbitrary a it isn't. So information about a would be needed. $\endgroup$
    – Jens
    Commented Aug 6, 2014 at 21:07

1 Answer 1

1
$\begingroup$

Here's a way that mimics the by-hand method. The idea is to replace common subexpressions by symbols until it gets to the point where Solve will work. In some places I'm assuming that quantities are real and positive.

eqn = -i - q + p s^(-1 + a) (1 + s^a)^(-1 + 1/a) - t == 0 /.  s -> u^(1/a) // PowerExpand
eqn = eqn /. a -> 1/(1 - r) // Simplify
(*
  -i - q - t + p u^((-1 + a)/a) (1 + u)^(-1 + 1/a) == 0
  i + q + t == p (u/(1 + u))^r
*)

sol = s -> u^a /. Solve[eqn, u] /. r -> (a - 1)/a // Simplify

Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. >>

(*  {s -> (1/(-1 + ((i + q + t)/p)^(a/(1 - a))))^a}  *)
$\endgroup$
3
  • $\begingroup$ Very nice. Wish I had thunk of that. $\endgroup$ Commented Nov 16, 2014 at 16:27
  • $\begingroup$ @DanielLichtblau Well, thanks. I don't know what it says that I had to solve it by hand to figure out how to help M get to the answer. Seems backwards. Devendra showed an example at WTC that gave me the idea that one could coax Solve over the hill in this way. In case he likes feedback. :) $\endgroup$
    – Michael E2
    Commented Nov 16, 2014 at 18:18
  • $\begingroup$ I sent a link to him (Devendra). $\endgroup$ Commented Nov 16, 2014 at 22:44

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.