MATLAB: Hello, I plotted 400 curves in a plot and I need to find the best intersection point for all those curves

intersection pointmultiple plots common point

I have 400 graphs, most of them are exponential. As shown in the figure
most of the graphs intersect at some points around (150,1.45)
So I want to find the exact point where most of them are intersecting.
Can anyone give solution please. thank you

Best Answer

There is no exact point, as you well know.
There is only an approximation, an estimate of that location.
A simple solution is to pick pairs of curves and find their intersections. Doug Schwarz's intersections tool for that on the file exchange is an excellent choice here. You have 400 curves, so there will be
400*399/2
ans =
79800
A lot of curve pairs, but very doable simply with a nested pair of for loops. If it takes too long, make random choices for the pairs to reduce the problem.
Each pair of curves will produce one solution, or perhaps none. Then use some tool to find the center of the blob of points. Given the problem, I'd look for a clustering tool that can work robustly to exclude the outliers. If you don't find one, it would be trivial to write for a one center problem.
1. Compute the mean in x and y.
2. Compute the distance to every point in the sample.
3. Choose the k largest distances, and discard those points from the set.
4. Return to step 1, and repeat until you have sufficiently trimmed away the outliers.
Related Question