我正在尝试将 commons-math 库用于一些数值微分任务。我使用我认为可行的 DerivativeStructures 构建了一个非常简单的函数;显然我错了。
public static void main(String[] args) {
DerivativeStructure x0 = new DerivativeStructure(2, 2, 2.0);
DerivativeStructure y0 = new DerivativeStructure(2, 2, 4.0);
DerivativeStructure xi = x0.pow(2);
DerivativeStructure yi = y0.pow(2);
DerivativeStructure f = xi.add(yi);
System.out.println(f.getValue());
System.out.println(f.getPartialDerivative(1, 0)); // (?)
System.out.println(f.getPartialDerivative(0, 1)); // (?)
}
我试图在点 (2.0, 4.0) 处获得多元函数 f(x)=x^2+y^2 的一阶和二阶偏导数。因此,我希望 df/dx 为 4.0,df/dy 为 8.0 作为一阶部分。2.0 用于二阶部分。但是,我得到了正确的 f(x,y) 值,而且我什至没有从这个 javadoc 中获得丝毫的想法。我在 stackoverflow 上看到了几个问题,其中有一些关于 commons-math 的不透明文档的评论,但不是关于多元函数的工作示例。单变量我可以解决,但不是这个......
任何提示将不胜感激!