R中计算1/x在(-∞,∞)的积分,三个函数结果各异,孰是孰非?
关于积分∫(-∞,∞)1/x dx的R函数结果分析
首先明确数学结论:∫(-∞,∞)1/x dx在常规黎曼积分意义下是发散的,不存在有限的积分值。以下是三个R函数结果的具体分析:
各函数结果解读
- base R的
integrate函数:返回的0是柯西主值,而非常规黎曼积分的结果。柯西主值是一种特殊的积分定义,通过取极限$\lim_{\varepsilon \to 0^+} \left( \int_{-\infty}^{-\varepsilon} \frac{1}{x}dx + \int_{\varepsilon}^{\infty} \frac{1}{x}dx \right)$得到,此时左右两部分的发散量相互抵消,结果为0。但这并不意味着积分在黎曼意义下收敛,只是一种特殊定义下的结果。 - pracma包的
quadinf函数:返回的-106.227是错误的数值近似结果。从其给出的relerr = 108.0135可以看出,相对误差已经远大于结果本身,说明该算法没有正确处理x=0处的奇点,导致计算出了一个无意义的有限值,完全不可信。 - cubature包的
cubintegrate函数:返回的Inf是正确的结果。它准确识别到积分在x=0附近的部分无法收敛,整个积分是发散的,符合数学上的结论。
结果差异的原因
三个函数采用了不同的数值积分算法,处理无穷区间和奇点的逻辑不同:
integrate默认会对包含奇点的积分尝试计算柯西主值,因此得到了0;quadinf的算法可能未有效检测或处理x=0处的奇点,导致错误的近似;cubintegrate的算法更严谨地判断出积分的发散性,返回了代表无穷大的Inf。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

