我在 java 中使用 UnivariateFunctionDifferentiator 接口时遇到问题。
引用自 Commons 主页:
“用户可以通过多种方式创建 UnivariateDifferentiableFunction 接口的实现。第一种方法是直接使用 DerivativeStructure 中的适当方法直接编写它来计算加法、减法、正弦、余弦……这通常很简单,而且无需记住微分规则:用户代码只代表函数本身,微分将在后台自动计算。第二种方法是编写一个经典的 UnivariateFunction 并将其传递给 UnivariateFunctionDifferentiator 接口的现有实现检索相同功能的不同版本。第一种方法更适合用户已经控制所有底层代码的小功能。第二种方法更适合使用 DerivativeStructure API 编写繁琐的大型函数,或者用户无法控制完整底层代码的函数(例如调用外部库的函数)。”
现在,我的问题很简单。上面描述的第一个方法实现起来非常简单,但不适合我的情况。原因是双重的。首先,我有一个非常大的函数(大约 40 个元素),其次,我已经花了几个小时计算导数。因此,我对使用 UnivariateFunctionDifferentiator 接口很感兴趣。
但是,我找不到任何示例或方法来使用此 UnivariateFunctionDifferentiator 接口来实现我的单变量函数 f 及其导数。究竟如何使用这个界面让我感到困惑。我的总体目标是使用 newton-raphson 方法解决 f(x) = 0。
有没有人有任何实施这个可以帮助我的经验?提前感谢您的帮助,如果有任何不清楚的地方,请告诉我!