MathGroup Archive 2007

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

Search the Archive

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


Of course I suggested you using Solve for this particular equation (or
in general equations and systems of equations of polynomials of low
degree).

For polynomials of high degree NSolve is much more preferable
concerning timing issues.
I should have pointed out this!

P=2ES.

Thanks a lot for mentioning my vagueness Andrzej!



Faithfully,

Dimitris

=CF/=C7 dimitris =DD=E3=F1=E1=F8=E5:
> 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: Possible bug in NSolve[equation, variable, precission] 2
  • Next by Date: Re: Re: Possible bug in NSolve[equation, variable, precission]
  • Previous by thread: Re: Possible bug in NSolve[equation, variable, precission]
  • Next by thread: Re: Possible bug in NSolve[equation, variable, precission]