Ich benutze Cholesky-Zerlegung, um Zufallsvariablen aus Multi-Dimension-Gaussian zu erfassen und das Leistungsspektrum der Zufallsvariablen zu berechnen. Das Ergebnis, das ich von numpy.linalg.cholesky
bekomme, hat immer eine höhere Leistung in hohen Frequenzen als von scipy.linalg.cholesky
.Was ist der Unterschied zwischen Cholesky in numpy und scipy?
Welche Unterschiede zwischen diesen beiden Funktionen könnten möglicherweise zu diesem Ergebnis führen? Welcher ist numerisch stabiler? Hier
ist der Code, den ich verwenden:
n = 2000
m = 10000
c0 = np.exp(-.05*np.arange(n))
C = linalg.toeplitz(c0)
Xn = np.dot(np.random.randn(m,n),np.linalg.cholesky(C))
Xs = np.dot(np.random.randn(m,n),linalg.cholesky(C))
Xnf = np.fft.fft(Xn)
Xsf = np.fft.fft(Xs)
Xnp = np.mean(Xnf*Xnf.conj(),axis=0)
Xsp = np.mean(Xsf*Xsf.conj(),axis=0)
Aus der scipy faq [Was ist der Unterschied zwischen NumPy und SciPy?] (Http://new.scipy.org/faq.html#what-ist-the-difference-between-numpy-and-scipy) : "SciPy co Es enthält mehr Funktionen der linearen Algebra-Module sowie viele andere numerische Algorithmen. " Siehe auch [Warum numpy.linalg' und 'scipy.linalg'? Was ist der Unterschied?] (Http://new.scipy.org/faq.html#why-both-numpy-linalg-and-scipy-linalg-what-s-the-difference). –