Dear All, problem is as following: I have a simple equation that Mathematica cannot solve - I found problem when trying to calculate equation with real powers instead of integers or simple fraction (as in attached example with x^0.5 and x^0.5000001). I suspect that it’s trivial but I couldn’t find the solution:/ Any ideas?
Regards,
Darek
In[1]:= FindRoot[
5.9 (x + 0.007)^0.565 + 0.00413*x^1.33 - 0.367 == 10, {x, 3}]
Out[1]= {x -> 2.69776}
NSolve is for (numerically) solving polynomial equations (as seen from the first description returned by ?NSolve). The given (original) equation is not a polynomial. Therefore we must resort to explicitly finding the roots as Frank has done with FindRoot. FindRoot is not restricted to polynomials, therefore it returns an answer.
Reading the posting again, I am not completely convinced of my answer above because NSolve[5.9x^0.5-x==1,x] returns a solution when the equality is not a polynomial per PolynomialQ[5.9x^0.5 - x].
Maybe someone else can explain better?
NSolve will make a polynomial by adding auxiliary equations and variables to handle the radicals, e.g. newvar[1][^100==x^133` (so `newvar[1]` is an alias for `x^1.33`. Suffice it to say that high degree polynomials lead to more work.
Here is an approximation that completes in 2-3 minutes.
Ee[X_] := 5.9 (X + 0.007)^(1/2 + 2/15) + 0.00413 X^(4/3) - 0.367;
NSolve[Ee[x] == 10, x, Reals]
(* Out[12]= {{x -> 2.68986312775}} *)
If we use 1/2+13/100 for that first exponent my guess is it will take considerably longer. I did not check to see whether specification of real solutions led to a significant change, either direction, in speed.
