SciPy 的 dblquad 需要什么格式矢量、网格或其他格式进行 2D 集成?

问题描述

我有一个函数 myfunc_Cartesian,它是使用 RectBivariateSpline 在笛卡尔网格上插值的,现在我需要使用 SciPy 的 dblquad 将它集成到极坐标中。我应该能够通过定义一个从极坐标转换为笛卡尔坐标的中间函数来实现这一点,然后计算插值。

下面我有一个函数,它对径向和角坐标 rrtheta 的网格进行转换。

def myfunc_polar(rr,theta):
    # Transform polar to Cartesian
    xx = rr*np.cos(theta)
    yy = rr*np.sin(theta)
    # Evaluate the spline on these points
    return myfunc_Cartesian(xx,yy,grid=False)

但是,我不知道 dblquad 如何期望函数接受参数。当我检查文档时,我没有看到这个答案。是否应该编写 myfunc_polar 以便它期望 rrtheta 是网格网格,或者跨越网格网格的向量,或者其他什么?我怎样才能以 dblquad 正确处理的方式编写它?

编辑:要清楚,我会做一个积分

myfunc = lambda theta,r: chi0_static_polar(r,theta)
dblquad(myfunc,rmin,rmax,thmin,thmax)

按照 hpaulj 的建议,当我为这两个参数输入打印语句时,我得到了一个标量流,因此 dblquad 像 hpaulj 所说的那样对标量参数进行操作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)