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

在java中,如何近似无限区间的值之和,java,math,approximation,calc,Java,Math,Approximation,Calc,我试图用java编写一段代码,需要按照以下方式计算范围内的值之和[-∞, +∞] K= +∞ ∑ [ f( (2K+1)*x ) - f( (2K-1)*x ) ] K= -∞ 在生成计算上可行且高效的解决方案时,我面临两个困惑: 必须假定的价值是什么∞ 是否按上述方法近似计算 假设K也包含小数,那么在循环中增加K必须使用什么最小值 首先,为了得到一个近似值,你需要大幅减小该值。例如,-1/x。如果x增加很多,答案将接近于零 ∞以近似上述计算 for(float k=0;k++) { 和+

我试图用java编写一段代码,需要按照以下方式计算范围内的值之和[-∞, +∞]

K= +∞

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

K= -∞
在生成计算上可行且高效的解决方案时,我面临两个困惑:

  • 必须假定的价值是什么∞ 是否按上述方法近似计算

  • 假设K也包含小数,那么在循环中增加K必须使用什么最小值


  • 首先,为了得到一个近似值,你需要大幅减小该值。例如,
    -1/x
    。如果
    x
    增加很多,答案将接近于零

  • 以近似上述计算
  • for(float k=0;k++)
    {
    和+=((2*(k)+1)*x)-(2*(k)-1)*x));//从1到无穷大相加
    和+=((2*(-k)+1)*x)-(2*(-k)-1)*x));//从-1到无穷大相加
    }
    
    但这将导致无限循环。您可以将
    x
    替换为
    1/x
    ,并在循环中每次增加
    x
    。代码变为

    if((sum-lastsum)<0.001)
    {
    打破
    }
    lastsum=总和;
    }
    
  • 假设
    K
    也包含分数值,则必须使用哪个最小值来增加[code]循环中的
    K
  • 这取决于
    K
    的类型。如果是
    double
    ,则最多可以有15位小数

    另外,在求和时,你应该移动1,而不是小数。参见

    你知道这是一个可伸缩的和,实际上是
    f(2m+1)
    f(-2n-1)
    的(独立)极限之差。你能告诉我们
    f
    是什么吗?@RC f()累积分布函数你确定K可以有分数吗?求和的索引应该是一个整数,否则这将是一个整数。@realponsir