Python 计算二维高斯积分的四边形法

Python 计算二维高斯积分的四边形法,python,arrays,python-3.x,numerical-integration,Python,Arrays,Python 3.x,Numerical Integration,我用这个软件包来计算振荡高斯型积分。我意识到这个计算很难用数字计算,但我也知道MMA可以做我要求quadpy做的那些。我想知道我是否只是用错了软件包 这里有一个简单的代码来计算形式为的2D积分: 相应的代码是: import numpy as np import quadpy scheme = quadpy.e2r2.get_good_scheme(3) val = scheme.integrate(lambda x: x[0]/x[1]) print(val) 然而,它产生了nan。它

我用这个软件包来计算振荡高斯型积分。我意识到这个计算很难用数字计算,但我也知道MMA可以做我要求quadpy做的那些。我想知道我是否只是用错了软件包

这里有一个简单的代码来计算形式为的2D积分:

相应的代码是:

import numpy as np
import quadpy

scheme = quadpy.e2r2.get_good_scheme(3)
val = scheme.integrate(lambda x: x[0]/x[1])

print(val)
然而,它产生了nan。它是可以修复的吗?如果它不简单,也许还有另一个包可以做类似的事情,可以处理比x和y的多项式更高级的积分器


如果任何人有使用此软件包的经验,请发表评论。到目前为止,阅读文档对我帮助不大。提前谢谢

你可以把积分分成两个一维积分, $$ \iint{-\infty}{-\infty}\frac{x}{y}\exp(-x^2-y^2)\,dx\,dy=\int{-\infty}{x\exp(-x^2)\,dx+\int{-\infty}^{\infty}\frac{1}\y}\exp(-y^2)\,dy $$

(渲染为。)

第一个积分是0,第二个积分是未定义的,所以整个积分是未定义的


这意味着,无论您采用何种正交方案,该值始终是虚假的。在您选择的方案中,您很幸运,它返回了一个NaN,告诉您出了问题。(它试图在
y=0
处求值)其他方案可能会返回一些值,但它永远不会有任何意义。

是什么让你认为这个积分收敛?我看到了
1/y
,所以可能没有。好吧,我正在复制一篇论文……然后论文就错了。积分没有很好的定义。MMA计算它。严格来说,有一整类振荡积分在数学上没有很好的定义。这些积分是光学的基础。Sooo,光学并没有很好的定义,但它可以工作=)我不是在寻找数学上严格的解决方案。我正在寻找一个足够好的估计。