Я пытаюсь создать способ представления математических уравнений в качестве объектов Java. Это то, что я придумал до сих пор:Представляем математические уравнения как объекты Java
- Срок
- -Включает поля, такие как коэффициент (который может быть отрицательным), показатель и переменной (х, у, г, и т.д.). Некоторые поля могут даже квалифицироваться как их собственные термины alltogether, вводя рекурсию.
-Объекты, расширяющие срок будет включать в себя такие вещи, как TrigTerm представлять тригонометрические функции.
Уравнение
- -Этот представляет собой набор Term сек
- -The ToString() метод уравнения будет вызывать метод ToString() всех его Срок сек и объединить результаты.
Общая идея заключается в том, что я мог бы программно манипулировать уравнениями (например, дирижативным методом, который возвращал бы уравнение, являющееся производной уравнения, для которого он был вызван, или метод оценки, который оценить уравнение для определенной переменной, равную некоторому значению).
То, что я прекрасно работает для простых уравнений:
Это только два Срок s: один с переменной «х» и показателем степени «2», а другой, который только постоянная "3."
Но не так много для более сложных уравнений:
Да, это ужасный пример, но я просто сделать точку.
Так что теперь на вопрос: что было бы лучшим способом представить математические уравнения как объекты Java? Существуют ли библиотеки, которые уже делают это?
Постройте дерево выражений. – NullUserException
Google для контента MathML для одного подхода к вашей проблеме. –
ознакомьтесь с главой 5 «Основы информатики» (http://infolab.stanford.edu/~ullman/focs.html) Ахо и Ульмана для объяснения построения деревьев простого выражения –