【发布时间】:2019-11-22 01:29:04
【问题描述】:
我知道如何在 python 中执行双积分
import numpy as np
import scipy.integrate as integrate
integrate.dblquad(x*y, 0, 1, lambda x: -np.sqrt(1-x**2), lambda x: np.sqrt(1-x**2))
其中x 和y 是(200,) numpy 数组。
但是,如果上面的被积函数 (x*y) 是二维数组而不是函数怎么办?就我而言,我有一个数组Z,它在每个坐标(x,y)处都有一个值,即它的形状为(200,200)。但是,我事先并不知道它对应的连续函数。
我将如何执行此积分?谢谢。
【问题讨论】:
-
根据定义,积分是在一个连续域上进行的;在一组离散的值上,它只是一个总和。那么你不能把数组中的所有值乘以每个网格单元的面积相加吗?
-
@Thomas 感谢您的评论。你是绝对正确的。我很愚蠢,也因为工作而筋疲力尽,这是一个危险的组合。再次感谢。
-
有一个类似的question,为此提出了使用辛普森方法的嵌套一维积分(与直接求和的想法相同,但通过假设函数是局部二次的来提高准确性)。但是,集成域仍然是矩形...
标签: python scipy numerical-integration