#python #scipy #numerical-integration
Вопрос:
Я пытаюсь интегрировать Integrand
функцию, которая включает в себя интерполяцию. При использовании scipy.integrate.quadrature
я сталкиваюсь с этой ошибкой: TypeError: Cannot cast array data from dtype('O') to dtype('float64') according to the rule 'safe'
. Я не сталкиваюсь с этой ошибкой при использовании scipy.integrate.quad
. Я думаю, что проблема в thing[i]
том, какой объект является объектом «ndInterp». Есть ли какой-нибудь способ решить эту проблему?
def Integrand(x, a, i):
pnt = np.array((a, x)).reshape((1, 2))
return thing[i].eval(pnt)
logpost = scipy.integrate.quadrature(lambda x: Integrand(x, a, i), lower_m, upper_m)[0]
Комментарии:
1. Покажите полную обратную трассировку ошибок. И если вы хотите, чтобы мы протестировали его, убедитесь, что определены все необходимые переменные.
2. Что
lambda x: Integrand(x, a, i)(lower_m)
производит? Он должен создавать поплавок или что-то, что легко преобразуется в такое. Я удивлен, чтоquad
это работает, так как это должно иметь те же ожидания.