MATLAB: Solving an implicit function with two variables

equationsymbolic

Hi, I am trying to solve the equation below for a value of P. If I use the command solve, the code is taking too long to run. After half an hour I stopped running the code. Is there a better way to go about this?
syms C Q y P r real
eqn1=(C/r)*((P)^(-r))*(Q^(1-r))+((y)^(1-2*r))*(P)^r*Q^r-(y)^(1-r)==0;
solP=solve(eqn1,P)

Best Answer

Multiply by P^r and substitute P^r = x. You'll get a quadratic equation in x.
Solutions are
P1 = ( (Q^(-r)) / 2 * (1 + sqrt(1 - 4 * C/r * Q* y^(r-1) ) ) ) ^(1/r)
P2 = ( (Q^(-r)) / 2 * (1 - sqrt(1 - 4 * C/r * Q * y^(r-1) ) ) ) ^(1/r)