# Help explain failure of Solve method to solve economic equation

Below is an economic equation consisting of Y, Ki, Alpha, G, Ki, K, and two parameters Epsilon and Eta. Mathematica's Solve method computes G, in terms of the other variables, but fails to solve for Ki, as shown below. I have included an 'Assuming block' to help push a solution for Ki, yet this addition does not guide the solution.

What makes Ki difficult in solve to this case?

A call to the Solve method for G works with a warning:

Solve[Y == α Ki ((G (Ki/K)^(1 - ϵ))/Ki)^η, G]


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

Here is an acceptable solution for G:

{{G->K (Ki/K)^ϵ (Y/(α Ki))^(1/η)}}


A similiar call for Ki fails. What makes Ki uniquely difficult in this case?

Assuming[{{Y, Ki, G, K, α , ϵ, η} ∈
Reals, 1 >= η >= 0, 1 >= ϵ >= 0, K > 0, Y > 0,
Ki > 0, G > 0, α > 0},
Simplify[
Solve[Y = α Ki ((G (Ki/K)^(1 - ϵ))/Ki)^η, Ki]]]


Solve::nsmet: This system cannot be solved with the methods available to Solve.

• Note: K is a symbol with a predefined meaning. It is better not to use it as a symbolic variable (more generically, try to refrain from using upper case variables; use y,g,ki instead of Y,G,Ki). Note also that equations use == instead of =. – AccidentalFourierTransform May 12 '19 at 16:20

Solve is awesome if the expressions involve rational functions. Otherwise it may need a little assistance.

Solve[Y == α Ki ((G (Ki/K)^(1 - ϵ))/Ki)^η // PowerExpand, Ki]


Including a switch of '//PowerExpand' led to an answer.

Changing the variable names to lower case maybe valuable, yet I did not test this suggestion.

Solve[Y == α Ki ((G (Ki/K)^(1 - ϵ))/Ki)^η // PowerExpand, Ki]

{{Ki->((Y G^-η K^(η (1-ϵ)))/α)^(1/(1-η ϵ))}}

Solve[Y == α Ki ((G (Ki/K)^(1 - ϵ))/Ki)^η // PowerExpand, K]

{{K->((Y G^-η Ki^(η+η (-(1-ϵ))-1))/α)^(1/(η (ϵ-1)))}}