我想做类似于this question的操作。集成一个返回矩阵numpy的函数
Nm, Mm = np.meshgrid(range(3), range(2))
y = lambda x: x*Nm + x*Mm
然后,y
返回3x2矩阵。我想将y从a整合到b,例如我们可以选择a = 0和b = 1。这意味着积分矩阵的i,j分量应该是(x * i + x * j)dx的0到1的整数。如果我考虑到其中一个答案:
>>> a = [sin, cos]
>>> vectorize(quad)(a, 0, pi)
显然a
是功能列表,但是我有什么是返回一个数组,这是不同的函数。我得到:
res = np.vectorize(integrate.quad)(y, 0, 1)
error: Supplied function does not return a valid float.
我该如何解决这个问题?感谢您的帮助
编辑:
期望的结果是
res = np.empty((3,2))
for i in range(3):
for j in range(2):
res[i, j] = quad(lambda x: x*i + x*j, 0, 1)[0]
因此,所期望的结果与'quad'有6次不同的'i'和'j'值吗?参考向我们展示如何用显式循环来做到这一点。 – hpaulj
是@hpaulj这是所需的结果。 –