【发布时间】:2014-10-23 04:20:23
【问题描述】:
假设我有一个二维数组 (x,y) 和函数 z=F(x,y) 的值
x = y = array([ 1., 2., 3., 4., 5.])
z= array([[ 1., 2., 3., 4., 5.],
[ 2., 4., 6., 8., 10.],
[ 3., 6., 9., 12., 15.],
[ 4., 8., 12., 16., 20.],
[ 5., 10., 15., 20., 25.]])
现在我想找到的是积分 $P(w)=\int F(x,y) \delta(x-y=w) dx dy $ 为此,我通过 w = x-y 构造 w 矩阵 这给了我类似的东西
w= array([[ 0., 1., 2., 3., 4.],
[-1., 0., 1., 2., 3.],
[-2., -1., 0., 1., 2.],
[-3., -2., -1., 0., 1.],
[-4., -3., -2., -1., 0.]])
现在我必须将与 w 对应的所有 z 值相加,比如 w = 3,我应该得到 4+10=14。
问题是做最后一部分的最佳方法是什么?
附注。这是一个示例,数组通常不相等,并且不具有此示例中的对称性。 我猜,迭代将是一个糟糕的选择,因为这些数组非常大。
【问题讨论】:
-
您必须在math.stackexchange.com 上发布此问题!
-
@Kasra:不,那完全是题外话。
-
我不确定您尝试计算的积分是否有意义,或者您尝试计算它的方式是否有效。在我看来,您会遇到很多浮点舍入错误的问题,并且您的网格无法捕获
w获取您想要的值的点。 -
你能推荐一个更好的方法吗?这仅用于绘图目的,并且可以部分满足我的要求,但任何更好的东西都值得尝试。我只有 F(x,y) 的数值。
标签: python numpy numerical-integration