2016-03-15 34 views
-2

我正在研究累积分布函数,我需要能够解决Java中的积分问题。如何在java中集成?

我已经在Apache Commons中尝试了Math3,但我无法弄清楚。

我需要解决的积分类型是从下界到上界的积分,我需要它对变量进行积分,比如'T'。

其余我可以弄清楚,就像在等式中使用变量一样。但是当我尝试Math3的Simpson Integration时,构造函数中有2个参数或4个参数。使用这些:

// Construct an integrator with default settings. 
SimpsonIntegrator() 

// Build a Simpson integrator with given accuracies and iterations counts. 
SimpsonIntegrator(double relativeAccuracy, double absoluteAccuracy, 
    int minimalIterationCount, int maximalIterationCount) 

// Build a Simpson integrator with given iteration counts. 
SimpsonIntegrator(int minimalIterationCount, int maximalIterationCount) 

我也不知道这是什么意思的准确性。而且我对Integrals不是很擅长,因为我只是用它来计算Google Play商店中的计算公式。

+5

通常这是一个非常糟糕的主意,实施你不明白的东西;没有计算机程序可以为你解决这个问题。 – SJuan76

+0

android标签令人讨厌,请删除 –

+1

为什么不使用默认设置进行试用?尝试撰写一个最简单的工作示例,并将其编辑到您的问题中。 – LutzL

回答

0

对于你的积分,有一个真值I。 Simpson结果S(n)2n样本数值整合。

绝对精度界定错误

abs(S(n)-I) 

的相对精度是一个界

abs(S(n)-I)/abs(I). 

的绝对误差双打倍增被积时,相对误差保持这种定标下是不变的。两种错误类型都有其用途,为了显示目的,相对错误应该更重要,因为它给出了有效数字的数量。例如,如果结果为0.01,那么0.01的绝对误差给出0.00和0.03之间的结果。在相同情况下0.1的相对误差限制了0.009和0.011之间的数字结果。


其他两个数字给出n(或2n)起点和救助值。


由于I是未知的,它的值和误差必须被估计。对于它被使用的辛普森有错误顺序4,这意味着,渐近

S(n) = I + C·n^(-4)+O(n^(-6)) 

使得

16·S(2n)-S(n) = 15·I + O(n^(-6)) 

给出I和改进的值

16·n^4·(S(n)-S(2n)) = 15·C + O(n^(-2)) 

上给出的估计值系数C,其然后允许对满足误差界限所需的最佳n进行良好估计。

C*nopt^(-4) <= min(absacc, relacc*abs(I)) 

nopt = ceil(pow(C/min(absacc, relacc*abs(I)), 0.25)) 

所以计算第一近似与最小n,然后计算最优n(如果不是最大n更小),并确认第一误差估计。如果失败,则用新的近似值计算新的最优n。