私はコレスキー分解を使用して、多次元ガウス分布からランダム変数をサンプリングし、ランダム変数のパワースペクトルを計算します。私がnumpy.linalg.cholesky
から得た結果は、常にscipy.linalg.cholesky
より高い周波数でより高いパワーを持っています。numpyとscipyのコレスキーの違いは何ですか?
これらの2つの機能の違いは、この結果を引き起こす可能性がありますか?どちらが数値的に安定していますか?ここで
は、私が使用するコードです:np.linalg.cholesky
はあなたに下三角バージョンを与えているのに対し、あなたはデフォルトで上三角分解を
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)
scipyから[NumPyとSciPyの違いは何ですか](http://new.scipy.org/faq.html#what-is-the-difference-between-numpy-and-scipy) : "いずれにしても、SciPy co線形代数モジュールや他の多くの数値アルゴリズムのより完全な機能を備えたバージョンを提供しています。 See also [numpy.linalg'と 'scipy.linalg'の両方の理由は?違いは何ですか?](http://new.scipy.org/faq.html#why-both-numpy-linalg-and-scipy-linalg-what-s-the-difference)。 –