如何为任何通用f创建数学函数f(x)?

时间:2013-10-10 16:25:10

标签: java function math

我尝试通过谷歌和这里搜索它,但我没有找到我的意思的问题(搜索引擎不理解我的意思功能的上下文)。

基本上我想做以下

double f(String function, double a){
    return function.Function(a);
}

字符串函数的形式为“x ^ 2 + 2”,它可能会以某种方式转换为“x.pow(2)+ 2”然后x被替换为a和结果函数返回。

是否有任何Java类或方法可以完成我所说的(或简单的方法)?或者来自其他来源的任何代码,我做了我所说的或变体。

我没有编写我所说的代码,我只需要f(x)来解决作为输入传递的任何函数字符串的根查找问题。我以为Java会在某处找到这样的方法,但我找不到它。

1 个答案:

答案 0 :(得分:1)

因此,在Java中,您有一个基本问题,因为您无法直接将String转换为数学表达式。您的选择如下:

  • 搜索可以将特别格式化的字符串转换为数学表达式的库。
  • 自己解析字符串。字符串解析很困难且容易出错,并且围绕这个问题很困难。
  • 使用Scala,它允许您直接编写函数以传递到函数中,而不是尝试从人类可读字符串到机器可解释函数进行昂贵的转换。请注意,Scala可与Java互操作,但有一点学习曲线。其他功能语言也可以处理这种情况,但可能缺乏互操作性。