java - 如何计算 apache commons math3 库中函数的集成?

标签 java integral apache-commons-math

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

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
***/

最佳答案

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

介于 0 和 1 之间的面积为 0.5。在整个空间中,上方和下方的积分抵消为 0。

enter image description here

关于java - 如何计算 apache commons math3 库中函数的集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16896961/

相关文章:

java - 为什么 Apache-Commons-Math 库中的 BigFraction 类返回不正确的除法结果?

java - 统计查询

java - 如何从 Apache Commons Math - Java 库中找到伪逆

java - EhCache BigMemory 与 RAM 磁盘上的 Diskstore

java - 有什么方法可以使用另一台计算机上的 exe4j 运行由 jar 制作的 exe?

Java 6 相当于 Integer.compare

matlab - 在Matlab中实现积分方程的迭代求解

java - 从 Android 中的 SQL 查询中的 CursorAdapter 支持的 Spinner 获取字符串值

java - 将整数转换为字符

python - Python 对数下降曲线上的梯度下降