我在使用集成時收到ValueError
,但我不明白爲什麼。這裏是我的簡化代碼:在python中定義lambda函數時的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完成所有工作? – Divakar
在python2和python3上運行得很好,無法重現。 –
我很抱歉,我錯誤的發生錯誤。請參閱編輯 – splinter