I have read in some places about the errors associated with FindRoot, but the closest thing I can find on this website seems to be due to the imaginary unit. I am dealing with what should be a relatively simple function for Mathematica to handle, namely a sum of Bessel functions of the first and modified first kinds. My code is
Zeros[z_] = (BesselJ[0, z] - BesselJ[2, z])*(3*BesselI[1, z] +
BesselI[3, z]) - (BesselI[0, z] +
BesselI[2, z])*(3*BesselJ[1, z] - BesselJ[3, z]);
FindRoot[Zeros[z]==0,{z,1}]
which returns 1.4371. But Zeros[1.4371]=-2.0754. I can also find roots by looking at the graph and basically bisecting by hand. My question is, should I rely on the plot, or the findroot algorithm? I am very familiar with Newton's Method (which is what I think FindRoot uses), but it does not make sense to me how it could guess such an erroneous root; this section of the plot shows none of the typical pitfalls of Newton's method. The second root on the other hand is at ~4.4, which the FindRoot algorithm finds to be 4.77493, which isn't a bad estimate given the slope of the function at this location.
So, I guess my question boils down to, should I check (and believe) the plot or the FindRoot algorithm, or perhaps neither?

FindRoot[Zeros[z] == 0, {z, 1}]and4.43216forFindRoot[Zeros[z] == 0, {z, 4}], both of which appear to be correct. – rm -rf Nov 14 '13 at 03:36