我正在尝试在java中编写一段代码,需要按照以下方式计算值的总和[-∞,+∞]
K= +∞
∑ [ f( (2K+1)*x ) - f( (2K-1)*x ) ]
K= -∞
我在计算中遇到两个混淆,以产生计算上可行和有效的解决方案:
如上所述,∞必须假定接近计算的值是什么值?
假设K也包含小数值,必须使用什么最小值来增加循环中的K.
答案 0 :(得分:0)
首先,为了获得近似值,您需要将值显着降低。例如,-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