固有値と固有ベクトルを計算する C で書かれた関数がありますが、別のアルゴリズムの一部としてこの関数を数回呼び出すため、多くの CPU 時間がかかります。Apple によると、Accelerate フレームワークを使用して、BLAS と LAPACK を使用して行列から固有値を非常に高速に見つけることができます。
私は Accelerate フレームワークを初めて使用するので、正方行列の固有値と固有ベクトルを見つけるためにどの関数を使用すればよいですか?
固有値と固有ベクトルを計算する C で書かれた関数がありますが、別のアルゴリズムの一部としてこの関数を数回呼び出すため、多くの CPU 時間がかかります。Apple によると、Accelerate フレームワークを使用して、BLAS と LAPACK を使用して行列から固有値を非常に高速に見つけることができます。
私は Accelerate フレームワークを初めて使用するので、正方行列の固有値と固有ベクトルを見つけるためにどの関数を使用すればよいですか?
それは、分解したい行列の性質に少し依存します。Lapack には、対称/エルミート行列、帯状対角行列、または一般行列用のさまざまなルーチンがあります。一般的な行列 (特定の構造を持たない) がある場合は、一般化された Schur 分解ルーチンを使用する必要があります。ルーチンは、単精度と倍精度の間、および実数または複素数の要素を持つ行列の間で分割されます - すべての Lapack がそうであるように。
一般的な固有問題ソルバー ルーチンの名前は次のとおりです。 SGEEV CGEEV DGEEV ZGEEVここで、S = 単精度実数、C = 単精度複素数、D = 倍精度実数、Z = 倍精度複素数。
IBM には、lapack の優れたオンライン リファレンスがあります。上記のルーチンを説明するリンクを次に示します。
幸運を!
ポール