Apache Commons Math:获取派生/集成功能

时间:2015-06-04 16:41:53

标签: java apache-commons-math

我正在使用PolynomialFunction。我以下一种方式派生/整合我的函数f

// derivation ...
new PolynomialFunction(vector).value(x).getPartialDerivative(derivationOrder)
// integration ...
UnivariateIntegrator integrator = new IterativeLegendreGaussIntegrator(pointsNumber, relativeAccuracy, absoluteAccuracy, minIterations, maxIterations);
integrator.integrate(128, f, from, to);

但是如何在不指定实际值的情况下从函数f获得派生/积分结果?

即。衍生物(8 + 3x + x ^ 2)=> 3 + 2x

2 个答案:

答案 0 :(得分:1)

我不相信Apache Math Commons Library支持符号派生/集成。但是,如果您使用的是多项式,如问题所示,这在计算上非常简单。如果你将多项式表示为像PolyxomialFunction那样的系数数组,那么这很容易。

衍生物:

  1. 将每个系数乘以其相应的单项式的次数(恰好是系数的指数)。
  2. 删除数组开头的0。
  3. 集成:

    1. 将每个系数除以其对应的单项+ 1的程度(即指数+ 1)。
    2. 将一个未确定的常量添加到数组的开头(除非您从0到您的变量进行积分,然后您可以将其设为0)。
    3. 为任意函数执行此操作变得更加困难,有时甚至是不可能的。有一些非常擅长的程序,比如SageMath。我会查阅微积分文本以获取更多信息。我希望有所帮助!

答案 1 :(得分:1)

对于多项式函数,您可以使用polynomialDerivative类的PolynomialFunction方法直接获得导数(作为多项式)。在Commons Math用户指南的analysis部分中还有一个更为通用的区分设置。