Re: FindRoot anomaly (example from Mathematica Tutorial)
- To: mathgroup at smc.vnet.net
- Subject: [mg72237] Re: FindRoot anomaly (example from Mathematica Tutorial)
- From: "dimitris" <dimmechan at yahoo.com>
- Date: Fri, 15 Dec 2006 07:06:45 -0500 (EST)
- References: <elophb$nie$1@smc.vnet.net>
In my opinion is not an anomaly! It just happens the implemented algorithm to return a complex number for this seed choise. The important is that Mathematica returns the correct answer! The following cell demonstrates Mathematica's cabability: f[x_] := 3*Cos[x] - Log[x] Print[StyleForm["the function", FontColor -> Blue]]; f[x] Print[StyleForm["a plot of the function", FontColor -> Blue]]; Plot[f[x], {x, 0, 60}] plot = Plot[f[x], {x, 1, 60}, DisplayFunction -> Identity]; Print[StyleForm["the points used by the Plot function ", FontColor -> Blue]]; points = Cases[plot, {(x_)?NumberQ, (y_)?NumberQ}, Infinity] Print[StyleForm["find where the function changes sign", FontColor -> Blue]]; seeds = Position[Apply[Times, Partition[points[[All,2]], 2, 1], {1}], x_ /; x <= 0] Print[StyleForm["between this points in x axis there is a change in sign of f[x]", FontColor -> Blue]]; samples = Extract[Partition[points[[All,1]], 2, 1], seeds] Print[StyleForm["the roots, at last!", FontColor -> Blue]]; (FindRoot[f[x] == 0, {x, #1[[1]], #1[[2]]}] & ) /@ samples Regards Dimitris Ï/Ç howardfink at gmail.com Ýãñáøå: > FindRoot[3Cos[x] == Log[x], {x, 1}] is on page 12 of the tutorial that > starts up in Mathematica 5. > I was interested in how the seed affects the answer, so I made a table > > sol = Table[FindRoot[3Cos[x] == Log[x], {x, b}], {b, 100}]; > > and then plotted the solutions > > ListPlot[x /. sol] > > I got a nice table, but the seed of 22 returns {x -> -207.932 + > 1.39227 i]} > > so the plot returns the error: > Graphics::gptn: Coordinate -207.932 + 1.39227\\[ImaginaryI] in {22, > -207.932 \ > + 1.39227\\[ImaginaryI]} is not a floating-point number. > > The other 99 results make a nice plot.