2012-01-31 5 views
5

У меня теперь есть идея, что я использую функцию как строку, и я вычисляю реальный интеграл от руки и задаю пользователю вопрос, что такое определенный интеграл, но это не настоящее решение.Самый эффективный способ вычисления интегралов/производных введенных функций в Java?

Мне было интересно, есть ли способ ввести функцию и вывести интеграл/производную (в зависимости от выбора пользователя). Мой первоначальный шаг заключался в том, чтобы как-то поместить его в массив, но, учитывая многие типы функций, этого не происходило.

Я исследовал всюду, и я не нашел метод, который на самом деле делает это без дополнительного кода, ни кода, который на самом деле делает это, периода.

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

Спасибо :)

ответ

1

То, что вы описываете, как известно, символической интеграции. В настоящее время нет полностью общего способа его реализации, но есть некоторые доступные методы. Одним из таких является Risch algorithm.

В качестве альтернативы, более легкая задача, чем символическая интеграция [символическое дифференциации - и, если дифференциал пользовательского ввода эквивалентен * для выражения, которое им было предложено интегрировать, то их интеграл, вероятно, правильно.

Вы также можете рассмотреть возможность использования существующего CAS **, такого как Mathematica, для его реализации. Они уже внедрили большинство инструментов, которые вам нужны.

*: Имейте в виду, что два математических выражения могут быть эквивалентными, не будучи идентичными ни тривиальным образом (например, термины в другом порядке), более сложными (например, большими выражениями, факторизованными по-разному), либо (например, триггерные функции заменены сложными экспонентами или наоборот).

**: Компьютерная система

+0

Я считаю, что Matlab имеет Java API на самом деле, не уверен, может ли он решить этот тип проблемы, поскольку я не пользователь, но он был очень популярен в математическом отделе, когда я был в университете. – haskovec