在python中我想执行一个复杂函数的一维集成,它不具有分析反导数,不仅取决于积分变量,还取决于某些参数。
我想要整合的一个非常简单的例子是:
def f(t, x):
return -(x-t)**2
我希望将功能与t
进行整合,但对于许多不同的x
来说。
当然,我可以像这样明确的循环
for i, x in enumerate(x_array):
F(i) = quad(f, 0, 3, args=(x,))
但这需要很长时间。相反,我想计算隐式循环中所有参数的积分:
F = quad(f, 0, 3, args=(x_array,))
这给了我一个TypeError:不能将序列乘以< float'类型的非int。 从消息中我猜到用隐式循环来做这件事并不简单。我认为这将是一个非常普遍的问题,但我找不到任何可以帮助我的事情。
如果重要,实际上我想在多个参数上执行这些集成,每个参数都是一个数组:
def f(t, x, y, z):
return -(x-t)**2 - y**2 - z**2
F = quad(f, 0, 3, args=(x_array, y_array, z_array))