私のmatlabコード内では、特定の与えられた行列のコレスキー分解を扱わなければなりません。私は一般的にchol(A,'lower')
に下部三角因子を生成するよう呼びかけています。コレスキー因子分解
私のコードをprofiler
で確認すると、特に入力マトリックスのサイズが大きくなると、関数chol
は本当に時間がかかります。
したがって、組み込みのchol
機能に代わるものがあれば、私は知りたいと思います。
私はLAPACK
ライブラリを考えていて、つまりspptrf
の機能を考えています。それはMATLAB
で利用可能ですか?
ヒントやサポートは何でも歓迎されています。
EDIT
は一例として、プロファイラは、この情報を取得:Coh_u
サイズ(1395*1395)
を有する
。また、私は4000
異なる構成のためのコレスキー因子が必要であるので、chol
が4000
回と呼ばれることに注意してください。
バックグラウンドMatlabは一般にBLAS、LAPACKなどの既製ライブラリの精度、精度、スピードが同等(広義にはスピーディー)な高品質数値ライブラリを使用しています。ライブラリ。それは可能性が高いですが、 '' chol'の実装でそのようなコードを使用していることを確認していません。私よりも優れたプログラマー(おそらくあなたよりは優れていないかもしれませんが)はMatlabの数値ルーチンの実装を(何らかの形で)より速く実装しようと努力しており、悲惨に失敗しました。 –
私は自分のコードのパフォーマンスを 'fortran'で書かれた' lppack 'spptrf'を使って別のものと比較しています。feelinfは 'spptrf'が' 'chol''よりも格段に速いということですが、あなたはいつも2つの異なる言語で同様のコードを比較する際には慎重である必要があります。 MATLAB内部で 'LAPACK'ライブラリと呼ばれる疑いがありますが、私はあまりよく分かりません。 – fpe