【发布时间】:2017-07-09 14:31:34
【问题描述】:
我在使用集成时收到ValueError,但我不明白为什么。这是我的简化代码:
import numpy as np
import scipy.integrate as integrate
pbar = 1
p = np.arange(0,pbar,pbar/1000)
h = lambda p: p**2/2+p*(1-p)
Kl = lambda p: h(p) +0.02
K = Kl(p)
R = 0.5*h(p) + 0.5*h(pbar)
Vl = lambda p: np.minimum.reduce([p, K, R])
integrate.quad(Vl, 0, pbar)[0]
Vl 是三个数组的元素最小值。最后一行给出了异常:
ValueError: setting an array element with a sequence.
有人可以解释错误并提出另一种集成方式吗?
【问题讨论】:
-
跳过那里的 lambda 并让 NumPy 完成所有工作?
-
在python2和python3上运行正常,无法重现。
-
抱歉,我错了发生错误的那一行。请查看编辑
标签: python-3.x numpy lambda scipy elementwise-operations