У меня есть функция F
, определенная как:
def F(x, A_0, A_1, phi_1, freq):
return (A_0 + A_1 * np.sin(2 * np.pi * 1 * freq * x + phi_1))
Иногда мне хотелось бы расширить ее до этой формы:
def F(x, A_0, A_1, phi_1, A_2, phi_2, freq):
return (A_0 + A_1 * np.sin(2 * np.pi * 1 * freq * x + phi_1)
+ A_2 * np.sin(2 * np.pi * 2 * freq * x + phi_2))
Я хочу иметь возможностьрасширить функцию до произвольного множества sin
членов.Математически, я хотел бы, чтобы функция возвращала:
![enter image description here](https://i.stack.imgur.com/TVSAr.png)
Как это сделать с помощью pythonic?
Мой способ сделатьэто:
def F(x, A_0, As, phis, freq):
terms=[]
for i, A_i in enumerate(As):
terms.append(A_i*np.sin(2*np.pi*i*freq * x +phis[i]))
return A_0 + sum(terms)
Как сделать это лучше?