Я пытаюсь использовать commons-math library для какой-то задачи численного дифференцирования. Я построил очень простую функцию, используя DerivativeStructures, которая, как я думал, будет работать; видимо, я ошибся.commons-math результат дифференциации 0
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)); // (?)
}
Я пытаюсь получить 1-й и 2-го порядка в частных производных многомерная функция f (х) = х^2 + у^2 в точке (2,0, 4,0). В результате я ожидал бы 4.0 для df/dx и 8.0 для df/dy как частичный порядок первого порядка. 2.0 для частичных заказов второго порядка. Однако я получаю правильное значение f (x, y), и у меня даже нет ни малейшего представления об этом javadoc. Я видел пару вопросов здесь, в stackoverflow с некоторыми комментариями о непрозрачной документации для commons-math, но не рабочий пример для многомерных функций. Univariate Я могу разработать, но не это ...
Любые советы будут оценены!