Solve
and NSolve
attempt to find all solutions, but they are mainly concerned with polynomial or analytical functions. I doubt they work with interpolation functions. Here is an attempt at automation of the graphical part, that works, although slowly, in the Sin
case:
fo[x] = Sin[x];
firstEq = Cases[ContourPlot[fo'[x2] == (fo[x1] - fo[x2])/(x1 - x2),
{x1, 0, 16}, {x2, 0, 8}][[1]] // Normal, _Line, All];
secondEq = Cases[ContourPlot[fo'[x1] == fo'[x2],
{x1, 0, 16}, {x2, 0, 8}][[1]] // Normal, _Line, All];
Complement[Flatten@Outer[RegionIntersection, firstEq, secondEq],
{EmptyRegion[2]}]
It converts the ContourPlots
of the two equations into Line
object, and then finds the RegionIntersection
of the couples of lines. After that you can start FindRoot
from the points you have found. I don't know if this solution is practical in your situation.