Python:在具有有限点数的区域上近似积分

时间:2018-11-23 15:12:19

标签: python

我有一组覆盖矩形区域的2D网格网格点阵列。 (-100,100)x(-100,100)

>>> x # shape is (4000000, 2)
>>> array([[-100. , -100. ],
           [ -99.9, -100. ],
           [ -99.8, -100. ],
           ...,
           [  99.7,   99.9],
           [  99.8,   99.9],
           [  99.9,   99.9]])

我有一个函数R ^ 2-> R,因此可以在所有这些点上求值;但是,我没有函数的解析形式(您可以将其视为神经网络,可以评估此​​矩形网格上的任何点)

>>> f_x # the evaluation on pts; and its shape is (4000000,)
>>> array([-1.34405857e+47, -1.34137180e+47, -1.33868771e+47, ...,
       -5.54445000e+02, -5.54445000e+02, -5.54445000e+02])

现在;我想在任何子区域上集成我的功能(比如说(-20,20)x(-20,20))。由于我的f_x应该是该区域大部分质量的有效归一化分布,因此该区域上的积分应该接近1

如何在python中有效地做到这一点?谢谢

1 个答案:

答案 0 :(得分:0)

quad似乎是您所需要的:

from scipy.integrate import quad
integration = quad(array, -20, 20)
delta_from_one = 1 - integration

希望有帮助...