Java 如何在import org.apache.commons.math3.analysis.integration.SimpsonIntegrator中使用标准SimpsonIntegrator;

Java 如何在import org.apache.commons.math3.analysis.integration.SimpsonIntegrator中使用标准SimpsonIntegrator;,java,integration,apache-commons,numerical-integration,numerical-computing,Java,Integration,Apache Commons,Numerical Integration,Numerical Computing,我手动设计了一个IntSimpson()函数,但我想使用标准库!如何操作以及在何处可以找到它?如果要实际使用integrator对象,需要调用,它以的实例为例。如果您使用的是Java8,那么这是一个单一的方法接口,因此它自动成为一个功能接口。因此,可以传递lambda或方法引用,如中所示: public double evalute(double distance){ /** * equation (3.2) */ this.from = 0; th

我手动设计了一个IntSimpson()函数,但我想使用标准库!如何操作以及在何处可以找到它?

如果要实际使用integrator对象,需要调用,它以的实例为例。如果您使用的是Java8,那么这是一个单一的方法接口,因此它自动成为一个功能接口。因此,可以传递lambda或方法引用,如中所示:

public double evalute(double distance){

    /**
     * equation (3.2)
     */
    this.from = 0;
    this.to = distance;
    this.n = 2;
    return - 10 * Math.log10(Math.exp(-IntSimpson(this.from, this.to, this.n)));
}
否则,您必须自己创建接口的实现,或者让类实现接口,或者使用匿名类:

final SimpsonIntegrator si = new SimpsonIntegrator();
final double result = si.integrate(50, x -> 2*x, 0, 10);
System.out.println(result + " should be 100");

如果您想要实际使用integrator对象,则需要调用,它以的实例为例。如果您使用的是Java8,那么这是一个单一的方法接口,因此它自动成为一个功能接口。因此,可以传递lambda或方法引用,如中所示:

public double evalute(double distance){

    /**
     * equation (3.2)
     */
    this.from = 0;
    this.to = distance;
    this.n = 2;
    return - 10 * Math.log10(Math.exp(-IntSimpson(this.from, this.to, this.n)));
}
否则,您必须自己创建接口的实现,或者让类实现接口,或者使用匿名类:

final SimpsonIntegrator si = new SimpsonIntegrator();
final double result = si.integrate(50, x -> 2*x, 0, 10);
System.out.println(result + " should be 100");
它起作用了

final double result = si.integrate(50, new UnivariateFunction() {
        @Override public double value(double x) {
            return 2*x;
        }
    }, 0, 10);
System.out.println(result + " should be 100");
谢谢

有效

final double result = si.integrate(50, new UnivariateFunction() {
        @Override public double value(double x) {
            return 2*x;
        }
    }, 0, 10);
System.out.println(result + " should be 100");

谢谢

我可以使用单变量函数形式org.apache.commons.math3吗?如果我想使用sin(x),我应该把它分解成泰勒级数吗?我可以使用单变量函数形式org.apache.commons.math3吗?如果我想使用sin(x),我应该把它分解成泰勒级数吗?