[解決済み] NumPy:linalg.eig()とlinalg.eigh()の違いについて
2022-02-10 04:32:50
質問
Python 3 アプリケーションで、対称実数行列の固有値と固有ベクトルを計算するためにNumPyを使用しています。
以下は私のデモコードです。
import numpy as np
a = np.random.rand(3,3) # generate a random array shaped (3,3)
a = (a + a.T)/2 # a becomes a random simmetric matrix
evalues1, evectors1 = np.linalg.eig(a)
evalues2, evectors2 = np.linalg.eigh(a)
符号を除けば、同じ固有ベクトルと固有値を得ることができました。
np.linalg.eig
と
np.linalg.eigh
. では、この2つの方法の違いは何でしょうか?
ありがとうございます
EDITです。
ここのドキュメントを読みました
https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html
とこちら
https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eigh.html
を使用する必要があるのか、理解できません。
eigh()
対称的な配列がある場合。
どのように解決するのですか?
eigh
は、固有値がソートされていることを保証し、行列が対称であることを利用した、より高速なアルゴリズムを使用します。
行列が対称であることが分かっている場合は、この関数を使用してください。
注意事項
,
eigh
は、行列が本当に対称であるかどうかをチェックしません。デフォルトでは、行列の下三角形部分を受け取り、上三角形部分が行列の対称性によって定義されていると仮定します。
eig
は一般的な行列に対して動作するので、より遅いアルゴリズムが使用されます。
%timeit
. より大きな行列でテストすると,一般に固有値はソートされないことがわかります.
関連
-
[解決済み】TensorFlow:dataset.train.next_batchはどのように定義されていますか?
-
[解決済み】なぜELIF Invalid Syntax Errorが発生するのでしょうか?
-
[解決済み] Pythonで "filter "オブジェクトの長さを求める方法
-
[解決済み] ValueError: pysparkを使用してsparkで複数のSparkContextsを同時に実行できません。
-
[解決済み] PyCharmでpython 3.4を使用する際にInvalid Python SDK Errorが発生する。
-
[解決済み] Pythonのエラーメッセージ io.UnsupportedOperation: not readable(読めません
-
[解決済み] python3のdateutil.parserの代わりとなるものは何ですか?
-
[解決済み] シンタックスエラーと変数アノテーションのターゲットが不正であるというエラーが発生します。どうすれば直せますか?[クローズド]
-
[解決済み] Jupyterノートブックで別ディレクトリのpyファイルをインポートする
-
[解決済み] Python 3 のバイト列変数を通常の文字列に変換するにはどうすればよいですか?重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Virtualenv - workon コマンドが見つかりません。
-
[解決済み] Dockerイメージの実行中にそのようなファイルやディレクトリがないエラーが発生する
-
[解決済み] ImportError: tkinter'という名前のモジュールがありません、python3-tkパッケージをインストールしてください。
-
[解決済み] PyCharmでpython 3.4を使用する際にInvalid Python SDK Errorが発生する。
-
[解決済み] Radd法によるクラス間加算
-
[解決済み] Pythonのエラーメッセージ io.UnsupportedOperation: not readable(読めません
-
[解決済み] condaからpip3用のrequirements.txtを作成する。
-
[解決済み] テキストファイルに辞書を書き込む?
-
[解決済み] スクレイピングで何が間違っているのでしょうか。私のコードのために値を返さない
-
[解決済み] モジュール 'pandas' には 'scatter_matrix' という属性がない」 というエラーはどうすれば解決できますか?