2016-03-15 70 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。