Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

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

  • To: mathgroup at smc.vnet.net
  • Subject: [mg74334] Re: Possible bug in NSolve[equation, variable, precission] 2
  • From: "dimitris" <dimmechan at yahoo.com>
  • Date: Mon, 19 Mar 2007 01:59:25 -0500 (EST)
  • References: <etg4m9$ioi$1@smc.vnet.net>

Argh!

First I didn't point out that Solve is preferable in low degree
polynomial equations,
now I realize we have two solutions for the equation poly==0.
(Thanks Daniel!)

Yesterday it was a sunny day here in Greece (~20 degrees C ) so
don't misjudge me for my mistakes!

Let's make one more attempt:

In[29]:=
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[poly2 == 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

=CF/=C7 Julian Aguirre =DD=E3=F1=E1=F8=E5:
> 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: Two successive FindMinimum -> Bug?
  • Next by Date: Re: Possible bug in NSolve[equation, variable, precission]
  • Previous by thread: Re: NDSolve doesn't stop
  • Next by thread: computing total[ragged array] fast