如何在java中无限区间近似值的总和

时间:2015-11-05 12:30:34

标签: java math approximation calc

我正在尝试在java中编写一段代码,需要按照以下方式计算值的总和[-∞,+∞]

K= +∞

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

K= -∞

我在计算中遇到两个混淆,以产生计算上可行和有效的解决方案:

  1. 如上所述,∞必须假定接近计算的值是什么值?

  2. 假设K也包含小数值,必须使用什么最小值来增加循环中的K.

1 个答案:

答案 0 :(得分:0)

首先,为了获得近似值,您需要将值显着降低。例如,-1/x。如果x增加很多,答案将接近零。

  1. 如上所述近似计算必须假设什么值?
  2. 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也包含小数值,必须使用什么最小值才能在[循环]中递增K
    2. 这是根据K的类型。如果是double,则最多可以包含15个小数位。

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