MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Possible bug in NSolve[equation, variable, precission]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg74308] Re: Possible bug in NSolve[equation, variable, precission]
  • From: "dimitris" <dimmechan at yahoo.com>
  • Date: Sun, 18 Mar 2007 00:45:16 -0500 (EST)
  • References: <etg4m9$ioi$1@smc.vnet.net>

Why use NSolve in your equation? Use Solve instead!


In[1]:=
Clear["Global`*"]
Print[StyleForm["working version", FontColor -> Blue]]
$Version
Print[StyleForm["your polynomial", FontColor -> Blue]]
poly = 171142046150220198693105489 - 16023210221608713837587916*x -
2020825892011586434364754*x^2 +
   190894692033395024364972*x^3 + 6039743423966949379761*x^4 -
568929229651998950400*x^5 - 470066550477520896*x^6 +
   2821109907456*x^7
Print[StyleForm["your second polynomial", FontColor -> Blue]]
poly2 = Expand[poly/9]
Print[StyleForm["solution of the equation poly=0", FontColor -> Blue]]
Timing[sols = Solve[poly == 0, x]]
Print[StyleForm["solution of the equation poly2=0", FontColor ->
Blue]]
Timing[sols2 = Solve[poly == 0, x]]
Print[StyleForm["numerical approximation with 20 digits precision",
FontColor -> Blue]]
(N[#1, 20] & )[x /. sols]
(N[#1, 20] & )[x /. sols2]
Print[StyleForm["numerical approximation with 100 digits precision",
FontColor -> Blue]]
(N[#1, 100] & )[x /. sols]
(N[#1, 100] & )[x /. sols2]


Regards
Dimitris


Julian Aguirre wrote:
> Dear group,
>
> Mathematica 5.2 chokes solving numerically a polynomial equation.
>
> In[1] := $Version
> Out[1]= 5.2 for Mac OS X (64 bit) (June 20, 2005)
>
> In[2]:= poly=171142046150220198693105489-16023210221608713837587916
> x-2020825892011586434364754 x^2+190894692033395024364972
> x^3+6039743423966949379761 x^4-568929229651998950400
> x^5-470066550477520896 x^6+2821109907456 x^7;
>
> In[3]:= poly2=Expand[poly/9];
>
> In[4]:= NSolve[poly==0,x]
> Out[4]= {-1211.83, -13.0015, -13.0014, 11.923, 12.0809, 12.2509,
> 167826.}
>
> (* Up to this moment, everything is O.K. But *)
>
> In[5]:= NSolve[poly==0,x,20]
> Out[5]= $Aborted (* after a loooong time *)
>
> (* However, the following works as expected*)
>
> In[6]:= x/.NSolve[poly2==0,x,20]
> Out[6]= {-1211.8267955098487289, -13.001455891126, -13.001441554521,
> 11.92303189062617, 12.08089051352363, 12.25087466630727,
> 167826.26017849924816}
>
> Let me say that I have used Mathematica to solve thousands (probably
> millions) of equations like the one above. There must be some magic in
> the coefficients!
>
> Julian Aguirre
> University of the Basque Country



  • Prev by Date: Re: Re: fastest way to add up a billion numbers
  • Next by Date: Re: Replacing list elements while retaining structure
  • Previous by thread: Re: Possible bug in NSolve[equation, variable, precission]
  • Next by thread: Re: Re: Possible bug in NSolve[equation, variable, precission]