При использовании интеграции я получаю ValueError
, но я не могу понять, почему. Вот мой упрощенный код:ValueError при определении функции лямбда в python
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.
Может кто-то объяснить причину ошибки и предложить альтернативный способ осуществления этой интеграции?
Просто пропустите лямбда и пусть NumPy выполнит всю работу? – Divakar
Выполнение только штрафа на python2 и python3, не может воспроизвести. –
Мои извинения, я ошибся в строке, в которой происходит ошибка. См. Edit – splinter