Ok, try this to see if works for you. Made a function in P
(wish you used lowerLetterCase) and plotted it. For some values of P
, the function is complex valued.
One can see the roots at around 0 and .1. Hence use FindRoot to pick them up.
Clear[g, C1, C2, C3, C4, c, e, P0, h0, exp, P]
parms = {g -> 9.8, C1 -> 3.6, C2 -> 0.25, C3 -> 666, C4 -> 2, c -> -36, e -> 0.86,
P0 -> 24.44, h0 -> 0.1, exp -> 4.65};
h = h0*(1 + C3*P^C4);
f[P_?NumericQ] := P/P0 - ((1 - e*(1 - h/e))/(1 - e))^((2 + c)/3)/(1 - h/e)^exp;
(*verify*)
Simplify[f[P] /. parms]
Not a nice looking function in P. If you can simply it a little it will help. You can see the numerator on the second term is almost zero. The limit of the second term as P->0
is 0.0039
, so may be you can simplify this whole function to a linear function (straight line) in P around zero.
Here is a plot of f[P]
Plot[Re[f[P] /. parms], {P, -.25, .25}, Exclusions -> None]
Plot[Im[f[P] /. parms], {P, -.25, .25}, Exclusions -> None]
use FindRoot
FindRoot[(f[P] /. parms) == 0, {P, .01}]
(* {P -> 0.0236849} *)
FindRoot[(f[P] /. parms) == 0, {P, .11}]
(* {P -> -0.0256356 + 0.0197882 I} *)
FindRoot[(f[P] /. parms) == 0, {P, -.11}]
(* {P -> 0.0236849 + 1.34501*10^-27 I} *)
may be someone will see a better way to handle this.