Message Boards Message Boards


Why Mathematica cannot solve simple power eqation?:(

Posted 9 years ago
3 Replies
5 Total Likes

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


POSTED BY: Darek Aksamit
3 Replies

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?

POSTED BY: Isaac Abraham

NSolve will make a polynomial by adding auxiliary equations and variables to handle the radicals, e.g.newvar[1][^100==x^133(sonewvar[1]is an alias forx^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.

POSTED BY: Daniel Lichtblau
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}
POSTED BY: Frank Kampas
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract