固有値と固有ベクトル
メニューを表示するにはスワイプしてください
固有値と固有ベクトルは線形代数の中心的な概念であり、線形変換がデータにどのような影響を与えるかを分析する際に広く利用されます。正方行列 A に対して、固有ベクトル とは、ゼロでないベクトル x であり、A を乗算したときに元のベクトル x と同じ方向を向き、一定の定数倍(固有値 と呼ばれる)だけ拡大または縮小されるものです。
行列、固有ベクトル、固有値の関係は次の通りです:
Ax=λx
- A:線形変換を表す正方行列
- x:ゼロでない列ベクトル(固有ベクトル)
- λ:スカラー値(固有値)
この式は、A を x に適用すると、x の方向は変わらず、λ 倍に拡大または縮小されることを意味します。固有値と固有ベクトルは、安定性、主軸、特性モードなど、行列の重要な性質を明らかにし、科学や工学の応用において不可欠です。
1234567891011121314import numpy as np from scipy.linalg import eig # Define a square matrix A = np.array([[4, 2], [1, 3]]) # Compute eigenvalues and eigenvectors eigenvalues, eigenvectors = eig(A) print("Eigenvalues:") print(eigenvalues) print("\nEigenvectors (each column corresponds to an eigenvector):") print(eigenvectors)
固有値と固有ベクトルを計算した後、しばしばそれらが基本式 A x = λ x を満たしているかを確認します。scipy.linalg.eig の結果を用いて、各固有値・固有ベクトルの組み合わせについて、元の行列と固有ベクトルの積が、固有値とその固有ベクトルの積と一致するかを検証できます。
1234567891011121314151617181920212223242526import numpy as np from scipy.linalg import eig # Define a square matrix A = np.array([[4, 2], [1, 3]]) # Compute eigenvalues and eigenvectors eigenvalues, eigenvectors = eig(A) # Select the first eigenvalue and eigenvector idx = 0 lambda_ = eigenvalues[idx] x = eigenvectors[:, idx] # Compute A @ x and lambda * x Ax = A @ x lambdax = lambda_ * x print("A @ x:") print(Ax) print("\nλ * x:") print(lambdax) # Check if the two results are approximately equal print("\nAre they approximately equal?", np.allclose(Ax, lambdax))
固有値と固有ベクトルは、物理学や工学の幅広い分野で応用されています。物理学では、微分方程式系の解析、量子力学(エネルギー状態の特定)、機械システムにおける振動や固有モードの研究に不可欠です。工学分野では、安定性解析、データ圧縮のための主成分分析(PCA)、構造物の設計における共振周波数の予測などに利用されます。固有値と固有ベクトルを理解することで、複雑なシステムの解決、プロセスの最適化、現実世界の現象の根本的な挙動の解釈が可能となります。
1. 固有値と固有ベクトルを計算するために使用されるSciPy関数はどれですか?
2. 科学的な応用における固有値の重要性は何ですか?
3. ベクトルが行列の固有ベクトルであることをどのように確認できますか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください