I have a fairly complicated equation that I am trying to solve in Mathematica, but have been unsuccessful so far.
Here is a simplified version of the command I'm trying to run that I think highlights the issue:
exp=y==((x*a)^((z-1)/z)+(x*b)^((z-1)/z))^(z/(z-1));
Solve[exp&&a>0&&b>0&&y>0&&0<z<1,x,Reals]
It returns the error, This system cannot be solved with the methods available to Solve.
Same problem trying to use Reduce
.
There seems to be a clear solution of
x=y*(a^{(z-1)/z}+b^{(z-1)/z})^{z/(1-z)}
What am I overlooking here?
Edit 1:
I've figured out that I can use the following code to arrive at the desired solution:
exp=PowerExpand[Simplify[PowerExpand[exp]]];
Solve[exp,x]
However, this seems like a wonky solution. Are there some obvious major drawbacks to applying this approach generally (keeping in mind the assumptions stated above)?
Edit 2:
If anyone is so inclined, the actual full equation I am trying to solve is:
y==A (q (x^(1-p) ((c p x)/(r-p r))^p)^((-1+z)/z)+(1-q) (((c (-1+q) x (x^(1-p) ((c p x)/(r-p r))^p)^(-1+1/z))/(d (-1+p) q))^z)^((-1+z)/z))^(z/(-1+z))
x
terms, distributing the outer exponent to arrive aty=x(a^{(z-1)/z}+b^{(z-1)/z})^{z/(z-1)}
, then finally rearranging they
andx
. $\endgroup$PowerExpand
withAssumptions
. Could do as follows.In[98]:= assumed = {a > 0, b > 0, y > 0, 0 < z < 1}; exp = y == ((x*a)^((z - 1)/z) + (x*b)^((z - 1)/z))^(z/(z - 1)); Solve[ PowerExpand[exp, Assumptions -> assumed], x] During evaluation of In[98]:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. Out[99]= {{x -> ((a^(1 - 1/z) + b^(1 - 1/z)) y^(-1 + 1/z))^( 1/(-1 + 1/z))}}
$\endgroup$