用于返回X和公式输入的Y值的算法或函数

时间:2015-07-18 17:40:17

标签: java android function equation graphing

我正在创建一个图形计算器,我需要一种算法来解释用户输入的方程式。例如,如果用户键入“x ^ 3 + 5x ^ 2-4x-9”,则算法应采用字符串输入并返回(0,-9),(1,-7)等。我该怎么做呢?我可以使用任何开源库吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以实施Shunting-Yard Algorithm,但已经有很多mathematical parsers。在软件开发中有一句非常着名的说法:

  

"不要重新发明轮子。"

我在开发自己的应用时遇到了这个问题。如果那里已经有开源库,你肯定应该利用它们。话虽这么说,如果你想要双精度,我会推荐MathEval库。在Double方面,precision通常就足够了,因为precision之后的double,例如BigDecimal,这是表示数字的确切方式非常昂贵的speedmemory而言,您希望在计算中减少两件事。

生成解决方案的最简单的O(n)方法是在for循环中设置范围,并使用MathEval's setVariable方法基于x循环中的迭代并通过MathEval's evaluate方法检索结果。等式中可能存在一些边界,因此请确保计算必要的限制并将其置于循环内。

查看此链接Terrance,提及MathEval库: Built-in method for evaluating math expressions in Java

如果您需要任何帮助,请告诉我,因为我已从头开始实施algorithmexternal library