【发布时间】:2020-09-13 11:32:38
【问题描述】:
我正在尝试集成功能
def func(x, y):
return 1 / np.sqrt(x**2 + y**2)
x 和 y 都在 -1 和 1 之间,其数值解约为 7.05。
问题是 x=y=0 的分母是零,我不明白如何处理它。我一直在尝试integrate.nquad的选项点:
integrate.nquad(func, [[-1,1], [-1,1]], points = [[0],[0]])
但这似乎不是正确的语法。我发现了许多使用选项点将一个变量函数与奇点集成的示例(我可以重现),但我不明白如何(以及是否可能)用多个变量的函数来概括这一点。不幸的是,看手册对我没有帮助......
【问题讨论】:
-
我想解决这个问题的一种简单方法是定义你的函数,这样如果
x, y接近奇点,它就会返回 0。 -
谢谢;是的,这确实是一个解决方案。我只是想知道是否有办法在 n>1 个变量中使用积分选项
-
您是否尝试过设置
opts=lambda x, y: {"points": ...}或类似的设置?另见,直接源码:github.com/scipy/scipy/blob/master/scipy/integrate/quadpack.py -
我已经尝试过,但没有成功。目前我只是按照 Mateen 的建议将函数定义为当 x 接近 y 时为零。反正我会继续看的
标签: python scipy numerical-integration