現在、Pythonで時系列データを分析しようとしています。そのためのガイドラインとして、やりたいことのほとんどすべてを実行する MATLAB スクリプトを使用することにしました。ここまでは問題なく動作していましたが、そのスクリプトで使用されているルジャンドル多項式に出くわしました。
NumPy の実装を試してみましたが、(多かれ少なかれ) MATLAB functionと同じ結果が得られる方法を見つけることができませんでした。
基本的に、これは私が知りたいことです。Python コードで MATLAB コードと同じ結果を得るにはどうすればよいですか?
ちょっとしたデモンストレーションとして、
k= [0 1 1;1 1 0 ;0 0 1]
legendre(2,k)
与えます:
ans(:,:,1) =
-0.5000 1.0000 -0.5000
0 0 0
3.0000 0 3.0000
ans(:,:,2) =
1.0000 1.0000 -0.5000
0 0 0
0 0 3.0000
ans(:,:,3) =
1.0000 -0.5000 1.0000
0 0 0
0 3.0000 0
私のPythonバージョンは次のようになりますが、私が試した方法は次のようになります:
legendre = np.polynomial.legendre.Legendre([0,1,2])
legendre(k)
そして得られます:
array([[-1., 3., 3.],
[ 3., 3., -1.],
[-1., -1., 3.]])
少し奇妙なことがいくつかありますが、残念ながら、ルジャンドル多項式のようなものについて聞いたのはこれが初めてであり、NumPy のドキュメントもウィキペディアも理解に大きな助けにはならないため、それらをテストする方法についての手がかりがありません。それ。