【问题标题】:How to compute integration of a function in apache commons math3 library?如何计算 apache commons math3 库中函数的集成?
【发布时间】:2013-06-03 12:40:54
【问题描述】:

我正在尝试集成一个非常简单的功能。积分(x.dx)。当我包含从 0 到 1 的限制时,我得到的答案不是 1,而是 0 或 0.5。我对 apache commons 库中集成的实现有什么误解吗?

import org.apache.commons.math3.analysis.integration.*;
import org.apache.commons.math3.analysis.polynomials.*;

public static void main(String args[])
{
    SimpsonIntegrator simpson = new SimpsonIntegrator();
    TrapezoidIntegrator trapezoid = new TrapezoidIntegrator();
    double[] vector = new double[2];
    vector[0] = 0;
    vector[1] = 1;

    PolynomialFunction f = new PolynomialFunction(vector);
    UnivariateFunction uf = (UnivariateFunction)new PolynomialFunction(vector);
    System.out.println("To String " + uf.toString());
    System.out.println("Degree: " + f.degree());

    double i = simpson.integrate(10, uf, -Float.MAX_VALUE, Float.MAX_VALUE);
    double j = trapezoid.integrate(10, uf, 0, 1);
    System.out.println("Simpson integral : " + i);        
    System.out.println("Trapezoid integral : " + j);        
}
/*** OUTPUT 
To String x
Degree: 1
Simpson integral : 0.0
Trapezoid integral : 0.5
***/

【问题讨论】:

    标签: java integral apache-commons-math


    【解决方案1】:

    我认为这是按预期运行的。您正在积分的函数是斜率 1 的直线。

    0 和 1 之间的面积为 0.5。在所有空间上,上面和下面的积分相消得到 0。

    【讨论】:

    • @medPhys-pl 我不是 Java 的数学家和新手。有没有办法得到梯形的区间数和每个区间的大小??
    猜你喜欢
    • 2018-08-27
    • 2015-05-08
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    相关资源
    最近更新 更多