Ich schreibe gerade ein kurzes Programm, um eine Analyse von zufälligen Matrixeigenwertverteilungen durchzuführen, aber die Parameterauswahl, die für meine Analyse benötigt wird, hat sich als extrem langsam herausgestellt. Grundsätzlich sollte ich die untenstehende Funktion durchlaufen, idealerweise für ca. 5000 mal, und schließlich die komplette Liste der Eigenwerte am Ende sammeln.Optimiere mittlere äußere Produkte
C = np.zeros((N,N))
time_series = np.random.normal(mu,sigma, (N + B*(M-1)) )
for k in range(int(M)):
C += np.outer(time_series[k*B : (N) + k*B], time_series[k*B : (N) + k*B])
C = C/M
eg_v = np.linalg.eigvalsh(C)
wo ich brauche N = 1000, B um 10, M = 100. jedoch mit dieser Wahl der Parameter das Programm dauert etwas wie 4-5 Stunden auf meinem ziemlich leistungs Laptop laufen zu lassen.
Abgesehen von Hardware-Einschränkungen, gibt es etwas, was ich in Bezug auf den Code tun kann, um das Ganze zu beschleunigen?
Vielen Dank im Voraus!
Das hat wirklich meinen Tag gemacht, vielen Dank. Modifizierter Code läuft jetzt und die Beschleunigung ist offensichtlich. – Luluca