Я застрял с проблемой, когда мне нужно вычислить интеграцию и запустить цикл тысячи раз.
Прототип этой функции будет:
func_integrated = lambda t: scipy.integrate.quad(func, t, 1)
но затем, если я хочу передать func_integrated
в массив, это означает, что мне придется выполнять эту интеграцию тысячи раз, что не очень эффективно. В конце концов, серия от t
до t-dt
примерно равна func(t) *dt
.
Я бы хотел написать что-то вроде этого:
def function_integration(func, arr):
arr = np.flip(arr, 0) # flip to count form back to front
out_arr = np.array([0])
for i in range(1,len(arr)):
increment = arr[i-1] -arr[i]
out_arr = np.hstack((out_arr, increment * func(arr[i-1])))
return np.cumsum(out_arr)
Однако это не является общим и все еще нуждается в цикле. Мне было интересно, есть ли scipy
или numpy
способ справиться с этим более эффективно.
P.S. Мне известен подход sympy
. Однако это в значительной степени зависит от встроенных функций, поэтому метод вряд ли может быть в целом адаптирован.