I'm not sure if this will be convenient in your case, but I sometimes allow Mathematica to interpolate point lists and then decide for the intersection:
findGuesses [pointsTable1_, pointsTable2_]: =
Block [{interpolatingPolyF1, interpolatingPolyF2},
interpolatingPolyF1 =
Function [{x}, Evaluate [InterpolatingPolynomial [pointsTable1, x]]];
interpolatingPolyF2 =
Function [{x}, Evaluate [InterpolatingPolynomial [pointsTable2, x]]];
(* Print [Plot [{interpolatingPolyF1 [x], interpolatingPolyF2 [x]}, {x, 0,2}]]; *)
{x, y} /.
NSolve [{y == interpolatingPolyF1 [x],
y == interpolatingPolyF2 [x]}, {x, y}, Reals]
]
source share