Java 如何为任何一般的f生成一个数学函数f(x)?

Java 如何为任何一般的f生成一个数学函数f(x)?,java,function,math,Java,Function,Math,我试着通过谷歌在这里搜索它,但我没有找到我所指的问题(搜索引擎不理解我所指的功能的上下文) 基本上我想做以下几点 double f(String function, double a){ return function.Function(a); } 字符串函数的形式是“x^2+2”,它可能会以某种方式转换为“x.pow(2)+2”,然后用a替换x,并返回函数的结果 是否有任何Java类或方法可以实现我所说的(或简单的实现方式)?或者其他源代码中执行我所说的或变体的代码 我不必编写我所说

我试着通过谷歌在这里搜索它,但我没有找到我所指的问题(搜索引擎不理解我所指的功能的上下文)

基本上我想做以下几点

double f(String function, double a){
    return function.Function(a);
}
字符串函数的形式是“x^2+2”,它可能会以某种方式转换为“x.pow(2)+2”,然后用a替换x,并返回函数的结果

是否有任何Java类或方法可以实现我所说的(或简单的实现方式)?或者其他源代码中执行我所说的或变体的代码


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

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

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

您需要为数学表达式编写解析器这不是Java核心的一部分。您需要一个库来解析字符串并对其求值。搜索“解析器”或“方程求值器”之类的术语