Не очень все понятно, но тем не менее.
Во-первых, функции могут пересечься и тогда, когда обе они растут или обе падают. Просто с разной скоростью. Вы этот случай отбросили намерено?
В-вторых, непонятно, у вас все точки измерений заранее накоплены или вы решаете задачу по мере поступления точек? Если последнее - то тут и думать нечего, просто меряете расстояние между значениями и принимаете решение.
Кстати, не ясно, у вас данные приходят в один момент, или в разные. Во втором случае просто расстоянием не обойдешься - надо искать возможные пересечения функций между точками замера. Это не сложно но тем не менее.
Далее. Если данные все-таки имеются "пакетно накопленные" - то проще всего используя, к примеру ту-же Pandas построить соответствующий ДатаФрейм, в котором точка пересечения (или точкИ пересечения) находятся с помощью одной строчки логического условия. Да и упорядочение точек, если они не одномоментно измерены, в Pandas - тоже стандартная процедура.