微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。