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= -∞

在生成计算上可行且高效的解决方案的计算中,我遇到了两个困惑:

  1. ∞必须假设什么值才能近似如上计算?

  2. 必须使用什么最小值才能在循环内递增 K,假设 K 也包含小数值。

首先,为了获得近似值,您需要大幅降低该值。例如,-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
}

但这会导致死循环。您可以将 x 替换为 1/x 并在循环中每次增加 x 。代码变为

if ( (sum - lastsum) < 0.001 )
{
    break;
}
    lastsum = sum;
}
  1. 假设 K 也包含小数值,在 [the] 循环中必须使用什么最小值来递增 K

这是根据K的类型。如果是double,它最多可以有15位小数。

另外,在求和的时候,你应该移动一个,而不是一个分数。看 https://upload.wikimedia.org/math/d/f/2/df26e1cf51b67fbedd01ce9c68cbbef5.png https://en.wikipedia.org/wiki/Summation