np.linalg.eig() taking a lot time to run
Formaly the algorithm should scale as O(N^3) for an N-by-N matrix. So if N takes T time, then 2N takes 2^3T = 8T time, and 10N takes 10^3T = 1000T time. On my old laptop N=1500 takes 3.7 seconds. N=3000 takes 22 seconds, which is not really 8*3.7, but close enough.
Now 3000*5 = 15000, and 22*5^3 = 2750 seconds = 46 minutes. So that's the time it should take on my computer. So your computer is faster, but 15 minutes seems ok!
Is it normal for the np.linalg.eig() function to take more than 10 minutes to work on a (15000, 15000) matrix? I'm running this on the colab environment with standard runtime.