java 中的无限区间如何近似值的总和
How can the sum of values be approximated for infinite intervals in 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
也包含小数值,在 [the] 循环中必须使用什么最小值来递增 K
?
这是根据K
的类型。如果是double
,它最多可以有15位小数。
另外,在求和的时候,你应该移动一个,而不是一个分数。看
https://upload.wikimedia.org/math/d/f/2/df26e1cf51b67fbedd01ce9c68cbbef5.png
https://en.wikipedia.org/wiki/Summation
我正在尝试在 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
也包含小数值,在 [the] 循环中必须使用什么最小值来递增K
?
这是根据K
的类型。如果是double
,它最多可以有15位小数。
另外,在求和的时候,你应该移动一个,而不是一个分数。看 https://upload.wikimedia.org/math/d/f/2/df26e1cf51b67fbedd01ce9c68cbbef5.png https://en.wikipedia.org/wiki/Summation