【问题标题】:how to calculate integral with apache common math 3.3如何用 apache common math 3.3 计算积分
【发布时间】:2014-05-27 08:20:19
【问题描述】:

我想用 apache commonmath3.3 lib 计算一些实验的积分。

我看到this question.

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);   

我认为我们必须为整数的间隔创建一个双数组。但是当我想创建大小超过 2 的数组时,我会给出以下信息:

Caused by:org.apache.commons.math3.exception.TooManyEvaluationsException: illegal state: maximal        count (10) exceeded: evaluations 05-27 08:11:33.461: E/AndroidRuntime(1349):    at     org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator.computeObjec tiveValue(BaseAbstractUnivariateIntegrator.java:218) 

我错过了什么吗?

如何声明积分函数?
例如,我如何为积分声明“x^2+3”函数?

【问题讨论】:

    标签: java integral apache-commons-math


    【解决方案1】:

    在更复杂的多项式函数的情况下,您需要创建积分器允许的最大评估次数。

    试试这样的:

    SimpsonIntegrator simpson = new SimpsonIntegrator();
    TrapezoidIntegrator trapezoid = new TrapezoidIntegrator();
    double[] vector = new double[3];
    vector[0] = 0;
    vector[1] = 1;
    vector[2] = 2;
    
    PolynomialFunction f = new PolynomialFunction(vector);
    UnivariateFunction uf = (UnivariateFunction)new PolynomialFunction(vector);
    
    double i = simpson.integrate(10, uf, -Float.MAX_VALUE, Float.MAX_VALUE);
    double j = trapezoid.integrate(10000, uf, 0, 1);
    System.out.println("Simpson integral : " + i);        
    System.out.println("Trapezoid integral : " + j); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多