|
|
1
2
无穷积分有两个问题:收敛性和收敛值。也就是说,积分是否收敛?如果是,它会收敛到什么值?有保证收敛的积分,但其值不可能精确确定(尝试从e^(-x^2)的1到无穷大的积分)。如果不能精确返回,那么在数学上就不可能得到精确的答案,只剩下近似值。ApacheCommons使用了几种不同的近似方案,但所有这些方案都需要使用有限边界来保证正确性。 得到适当答案的最好方法是反复计算有限积分,不断增加边界,并比较结果。在伪代码中,它看起来像这样:
最后,如果积分收敛,那么你会得到足够多的重要信息,因为进一步扩大边界不会产生有意义的信息。 不过,给聪明人一句话:如果积分不收敛的话,这种情况会非常糟糕。在这种情况下,可能会出现两种情况之一:要么您的终止条件永远不满足,而您陷入无限循环,要么积分的值围绕一个值无限振荡,这可能导致您的终止条件不正确地满足(给出不正确的结果)。 为了避免第一种情况,最好的方法是在返回之前执行一些最大数量的步骤——这样做应该停止可能产生的无限循环。 为了避免第二个,希望它不会发生,或者证明积分必须收敛(为微积分2欢呼三声,有人吗?;-) 要正式回答你的问题,不,在Java中没有其他这样的方法来执行你的计算。事实上,没有保证的方法可以做到这一点 任何 语言,与 任何 算法——数学并不是按照我们想要的方式计算出来的。然而,在实践中,有很多(尽管不是全部!)关于实际积分的收敛性,我的经验是,只有大约20次迭代才能给你一个合理精度的近似值,而Apache应该足够快,能够在不花费荒谬的时间的情况下处理它。 |
|
|
2
2
假设将F(x)在无穷大上积分为1,然后将x=2-1/(1-t)代入,并在0范围内计算。1。注意,检查一下数学课本了解如何做下一步,我有点生疏,现在来不及了。 |
|
|
3
1
数值积分的结果,其中一个边界是无穷大,也有很好的机会是无穷大。证明它需要无限的时间;) 因此,你要么找到一个可以计算的等价公式(使用实数),要么用一个合理的大负值替换下界,然后看看,如果你能得到一个好的积分估计值的话。 如果Apache Commons Math能够在有限时间内对无限界积分进行数值积分,他们就不会免费赠送它;-) |
|
|
4
0
也许这是你的算法。 如果你做了像辛普森法则这样的幼稚的事情,可能需要很长时间。 如果你使用高斯或对数正交,你可能会有更好的运气。 你想集成的函数是什么,你使用的算法是什么? |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |