2015-11-05 21 views
2

我想在java中編寫一段代碼,需要按照以下方式計算範圍[-∞,+∞]的值的總和在java中如何可以近似無窮區間的值的總和

K= +∞ 

∑ [ f((2K+1)*x) - f((2K-1)*x) ] 

K= -∞ 

有兩個混淆,我與計算面臨產生計算上是可行和有效的解決方案:

  1. 必須承擔什麼樣的價值爲∞近似爲上述計算?

  2. 假設K也保持小數值,必須使用什麼最小值來增加循環內的K值。

+2

你知道,這是一個可伸縮之和實際上的'F(2M + 1)'的(單獨)限制的差異,'F(2N-1)'? – LutzL

+0

你能告訴我們'f'是什麼嗎? – 2015-11-05 12:38:46

+0

@RC f()是累積分佈函數 –

回答

0

首先,爲了得到近似值,您需要顯着降低的值。例如,-1/x。如果x增加很多答案將接近零。

  1. 必須假定什麼值才能近似上述計算?
for (float k = 0 ; ; k++) 
{ 
    sum += (((2 * (k) + 1) * x) - ((2 * (k) - 1) * x)); //adding from 1 to infinity 
    sum += (((2 * (-k) + 1) * x) - ((2 * (-k) - 1) * x)); //adding from -1 to infinity 
} 

但是這會導致一個無限循環。您可以在循環中每次更換x1/x並增加x。代碼變得

if ((sum - lastsum) < 0.001) 
{ 
    break; 
} 
    lastsum = sum; 
} 
  • 什麼最小值必須用於遞增內[該]環K,假設K保持分數值嗎?
  • 這是根據K的類型。如果它是double,它可能有多達15位小數。

    此外,在總結中,你應該移動一個,而不是一個分數。見 https://upload.wikimedia.org/math/d/f/2/df26e1cf51b67fbedd01ce9c68cbbef5.png https://en.wikipedia.org/wiki/Summation