Używam dekompozycji Cholesky'ego do próbkowania zmiennych losowych z wielowymiarowego Gaussa i obliczania widma mocy zmiennych losowych. Wynik jaki uzyskałem z numpy.linalg.cholesky
zawsze ma wyższą moc w wysokich częstotliwościach niż od scipy.linalg.cholesky
.Jaka jest różnica między cholesky in numpy a scipy?
Jakie są różnice między tymi dwiema funkcjami, które mogą powodować ten wynik? Który z nich jest bardziej stabilny liczbowo?
Oto kod używam:
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)
Z scipy faq [Jaka jest różnica między NumPy i SciPy?] (Http://new.scipy.org/faq.html#what-jest-difting-between-numpy-and-scipy) : "W każdym razie, SciPy co zawiera więcej w pełni funkcjonalnych wersji modułów algebry liniowej, a także wiele innych algorytmów numerycznych. " Zobacz także [Dlaczego oba 'numpy.linalg' i' scipy.linalg'? Jaka jest różnica?] (Http://new.scipy.org/faq.html#why-both-numpy-linalg-and-scipy-linalg- what-s-the-difference). –