This question bears resemblance to a few other questions on mathematica.SE about finding points of intersection of crossing curves. I know that the guidebook of numerics has an entry about the whole curve crossing thingy (can't seem to find the link right now).
However, my question is a little different. Yes, crossing curves are involved.
I have two curves that cross each other at two points:
curve1 = 3 x^2 + 3 x;
curve2 = 1.8 x ^2 + 2;
Plot[
{curve1, curve2},
{x, -5, 5},
PlotRange -> All
]

With Roots[...] I can find the points at which these curves cross each other, so:
Roots[curve1 == curve2, x]
x==-3.04699||x==0.546988
So this is nice and happy! Now, if I were to get data out of the individual plots, interpolate this data and fold it into and InterpolatingFunction, I am unable to use FindRoot[...] to do the same as Root[...]
pic1 = Plot[curve1, {x, -5, 5}];
Data1 = Cases[Normal[pic1], Line[Data1_] :> Data1, Infinity];
intplC1 = Data1 // Flatten // Interpolation
pic1 = Plot[curve2, {x, -5, 5}];
Data2 = Cases[Normal[pic1], Line[Data2_] :> Data2, Infinity];
intplC2 = Data2 // Flatten // Interpolation
FindRoot[intplC1 == intplC2, {x, 0.2}]
FindRoot::nlnum: The function value {InterpolatingFunction[{{1.,528.}},{4,7,0,{528},{4},0,0,0,0,Automatic},{{<<1>>}},{Developer`PackedArrayForm,{<<1>>},{-5.,60.,-4.99693,59.9172,<<43>>,3.80528,-1.7292,3.78277,<<478>>}},{Automatic}]-<<1>>} is not a list of numbers with dimensions {1} at {x} = {0.2}. >>
So my question(s) are:
I am thinking I am not using
Cases[...]correctly here despite the fact thatData1//ListLinePlotandData2//ListLinePlotseem to plot fine enough.How can I use
FindRoot[...]on myInterpolatingFunctionsto find the multiple roots in this case?For this situation, am I right to assume that
Roots[...]is well and sufficient?



FindRoot, like{x, {0.2, -3.}}and booth roots will be found. – BoLe Apr 19 '13 at 12:45Interpolation[Flatten[curve1,1],x]. This worked. I forgot that I needed to tell it to use x:P– dearN Apr 19 '13 at 12:54FindRoot[...]. I noticed thatFindRoot[...]doesn't allow for more than 2 guess values. I can use an{x,xmin,xstart,xend}but that didn't quite help. – dearN Apr 19 '13 at 14:34