Мне нужно интегрировать матричную функцию, как в примере ниже:
def func(a1, a2, a3):
return np.array([a1, (a1 + a2), a3])
Неэффективный способ сделать это - использовать три цикла for. Хотя я бы хотел сделать его более эффективным. Я думал об использовании "карты", как:
def integral(func, a1, a2, a3, w):
f = np.array(list(map(func, a1, a2, a3)))
I = np.zeros((3, ))
for fi, wi in zip(f, w):
I = I + wi*np.array(fi)
return I
a1
, a2
, a3
и w
- это массивы одинакового размера (a - это точки выборки, а w - веса)
Это самый оптимизированный способ сделать это?