2
我想在java中編寫一段代碼,需要按照以下方式計算範圍[-∞,+∞]的值的總和在java中如何可以近似無窮區間的值的總和
K= +∞
∑ [ f((2K+1)*x) - f((2K-1)*x) ]
K= -∞
有兩個混淆,我與計算面臨產生計算上是可行和有效的解決方案:
必須承擔什麼樣的價值爲∞近似爲上述計算?
假設K也保持小數值,必須使用什麼最小值來增加循環內的K值。
我想在java中編寫一段代碼,需要按照以下方式計算範圍[-∞,+∞]的值的總和在java中如何可以近似無窮區間的值的總和
K= +∞
∑ [ f((2K+1)*x) - f((2K-1)*x) ]
K= -∞
有兩個混淆,我與計算面臨產生計算上是可行和有效的解決方案:
必須承擔什麼樣的價值爲∞近似爲上述計算?
假設K也保持小數值,必須使用什麼最小值來增加循環內的K值。
首先,爲了得到近似值,您需要顯着降低的值。例如,-1/x
。如果x
增加很多答案將接近零。
∞
必須假定什麼值才能近似上述計算?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
}
但是這會導致一個無限循環。您可以在循環中每次更換x
與1/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
你知道,這是一個可伸縮之和實際上的'F(2M + 1)'的(單獨)限制的差異,'F(2N-1)'? – LutzL
你能告訴我們'f'是什麼嗎? – 2015-11-05 12:38:46
@RC f()是累積分佈函數 –