Найти пересечение (я) любых двух функций - решение уравнений

Представьте, что у вас есть две функции. Вам нужно найти пересечения этих функций. Вы определенно не хотите попробовать все значения х, чтобы проверить f(x)==g(x), Обычно в математике вы создаете уравнения, полученные из f(x)==g(x), Но я не вижу способа, как реализовать уравнения на любом языке программирования.
Итак, еще раз, что я ищу:

  1. Концептуальный алгоритм решения уравнений.
  2. То же самое для одновременных и квадратных уравнений.

Я считаю, что должен быть какой-то обходной путь, использующий деривации функций, но я недавно изучил концепцию деривации в школе, и я не знаю, как использовать ее в этом случае.

2 ответа

Решение

Это гораздо сложнее, чем вы думаете. Хорошее место для начала изучения этих вещей - метод Ньютона-Рафсона, который дает числовые приближения к уравнениям вида h(x) = 0, (Когда вы установите h(x) = g(x) - f(x)это обеспечивает решение проблемы, о которой вы спрашиваете.)

Точное, алгебраическое решение уравнений (как, например, реализовано в Mathematica) еще сложнее, вам в основном приходится воссоздавать все, что вы будете делать в своей голове при решении уравнения на листе бумаги.

Очевидно, что эта проблема не разрешима в общем случае, потому что вы можете построить "функцию", которая будет произвольно сложной. Например, если у вас есть "функция" с 5 триллионами терминов, включая различные трансцендентные и сложные преобразования, компьютеру может потребоваться годы, чтобы вычислить одно значение, а тем более пересечь его с другой подобной функцией.

Итак, прежде всего вам нужно определить, что вы подразумеваете под "функцией". Если вы имеете в виду многочлен степени меньше 4, то проблема становится намного проще. В таких случаях вы объединяете члены многочлена и находите корни уравнения, которые будут пересечениями.

Если многочлен имеет более 5 членов (квинтик или больше), то нет простого символического решения. В этом случае члены объединяются, и вы находите корни с помощью итеративного приближения. См. Алгоритмы поиска корня.

Если функция включает в себя трансцендентные значения, такие как sin/cos/log/e^x и т. Д., Вы можете найти пересечение, представив функции в виде ряда или непрерывной дроби. Затем вы вычитаете одну серию из другой и устанавливаете значение на ноль. Решение непрерывного уравнения дает приближение корня (ов).

Другие вопросы по тегам