Эффективный расчет косинуса в питоне

Я генерирую некоторые временные ряды из теоретической спектральной плотности мощности.

По сути, моя функция в пространстве-времени определяетсяX(t) = SUM_n sqrt(a_n) + cos(w_n t + phi_n), гдеa_n это значениеPSD в данный моментw_n а такжеphi какая-то случайная фаза. Чтобы получить реалистичные временные ряды, я должен подвести итог2^25 мод и мойt конечно размер2^25 также.

Если я сделаю это с Python, это займет несколько недель ...

Есть ли способ ускорить это? Как какой-то векторный расчет?

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)) 

где dataCOS это sqrt a_n, w = w и random.uniform представляет случайный фазовый сдвиг

Ответы на вопрос(1)

Ваш ответ на вопрос