gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 03:07:39 24 4
gpt4 key购买 nike

我正在尝试集成一个非常简单的功能。积分(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com