2016-03-04 7 views
0

Я использую библиотеку apache для вычисления производных. что я хочу сделать, это получить дериваты следующего уравненияКак получить производные с помощью apache lib

2+(2*x^2)+(3*x)+5 

Я следовал ниже отправил код, но я немного смущен относительно параметров, указанных ниже. Пожалуйста, помогите мне узнать, как получить производные от приведенного выше уравнения.

код:

int params = 1; 
int order = 2; 
double xRealValue = 5; 
DerivativeStructure x = new DerivativeStructure(params, order, 0, 
    xRealValue); 
DerivativeStructure y = x.pow(2);     //COMPILE ERROR 
Log.i(TAG, "y = " + y.getValue()); 
Log.i(TAG, "y = " + y.getPartialDerivative(1)); 
Log.i(TAG, "y = " + y.getPartialDerivative(2)); 
+0

, какая версия библиотеки вы используете? – sgpalit

+0

библиотека версия 3.6 – user2121

ответ

1

Обще-math3 версии 3.6 не дает ошибку компиляции, и ваш код работает.

import org.apache.commons.math3.analysis.differentiation.DerivativeStructure; 

ваше уравнение можно записать в виде ниже

int xValue = 5; 

int howManyUnknowParamsHasFunction = 1; 
int howManyDeriviationWillYouTake = 2; 
int whatIsTheIndexOfThisParameterX = 0; 

DerivativeStructure x = new DerivativeStructure(howManyUnknowParamsHasFunction, howManyDeriviationWillYouTake, whatIsTheIndexOfThisParameterX, xValue); 

// x --> x^2. 
DerivativeStructure x2 = x.pow(2); 

//y = 2x^2 + 3x + 7 
DerivativeStructure y = new DerivativeStructure(2.0, x2, 3.0, x).add(7); 
+0

что есть .add (7) ?? почему 7 – user2121

+0

у вас есть 2 и 5, которые суммируются, поэтому я добавил 7, если вы хотите, вы можете отделить его .add (5) .add (2) – sgpalit

+0

i скопировал ваш ответ, но x с hihglighted с красным «can not resolved2», пожалуйста, скажите мне, как определить x – user2121