У меня есть произвольная функция или неравенство (состоящее из ряда тригонометрических, логарифмических, экспоненциальных и арифметических терминов), которое принимает несколько аргументов, и я хочу получить его диапазон, зная области всех аргументов. Существуют ли библиотеки Java, которые могут помочь решить проблему? Каковы наилучшие методы для этого? Правильно ли, что для произвольной функции единственное, что можно сделать, это приближение грубой силы? Кроме того, меня интересуют функции, которые могут строить пересечения и дополнения для заданных доменов.Как найти диапазон функций?
Обновление. Функции вводятся пользователем, поэтому сложность не может быть предсказана. Однако, если библиотека будет обрабатывать как минимум простые случаи (1-2 переменные, 1-2 члена), все будет в порядке. Я предлагаю, что функции будут в основном определять интервалы и содержать не более 2 независимых переменных. Например, такие определения, как
y > (x+3), x ∈ [-7;8]
y <= 2x, x ∈ [-∞; ∞]
y = x, x ∈ {1,2,3}
будет обработан в 99% случаев, и покрытия на них будет достаточно.
Ну, может быть, быстрее написать простую грубую силу для рассмотрения таких случаев. Вероятно, это будет удовлетворительным для моего случая, но если есть лучшие варианты, я бы хотел их изучить.
не смог удержаться от желания сказать, что функция должна быть дифференцируемой - есть монстры, которые являются непрерывными, но нигде не дифференцируемыми, http://en.wikipedia.org/wiki/Nowhere_differentiable – Krystian