Skuteczne obliczanie cosinusa w pytonie

Generuję kilka szeregów czasowych z teoretycznej gęstości widmowej mocy.

Zasadniczo, moja funkcja w czasoprzestrzeni jest podana przezX(t) = SUM_n sqrt(a_n) + cos(w_n t + phi_n), gdziea_n jest wartościąPSD w danymw_n iphi jest jakaś losowa faza. Aby uzyskać realistyczne czasy, muszę podsumować2^25 tryby i mójt oczywiście ma rozmiar2^25 także.

Jeśli zrobię to za pomocą Pythona, zajmie to kilka tygodni ...
Czy jest jakiś sposób, żeby to przyspieszyć? Jak niektóre obliczenia wektorowe?

t_full = np.linspace(0,1e-2,2**12, endpoint = False) 
signal = np.zeros_like(t_full)
 for i in range(w.shape[0]):
        signal += dataCOS[i] * np.cos(2*np.pi* t_full * w[i] + random.uniform(0,2*np.pi)) 

gdzie dataCOS jest sqrt a_n, w = w i random.uniform reprezentuje phi losowego przesunięcia fazowego

questionAnswers(1)

yourAnswerToTheQuestion