小さな行列、たとえば2x2の最初の固有値と固有ベクトルを計算する関数を備えたPythonパッケージ(numpyなど)があるかどうか疑問に思いました。numpyでlinalgパッケージを次のように使用できます。
import numpy as np
def whatever():
A = np.asmatrix(np.rand(2, 2))
evals, evecs = np.linalg.eig(A)
#Assume that the eigenvalues are ordered from large to small and that the
#eigenvectors are ordered accordingly.
return evals[0], evecs[:, 0]
しかし、これには非常に長い時間がかかります。これは、numpyが何らかの反復プロセスを通じて固有ベクトルを計算するためだと思います。したがって、最初の(最大の)固有値と固有ベクトルのみを返すはるかに高速なアルゴリズムがあるかどうか疑問に思いました。最初のものだけが必要だからです。
もちろん、2x2行列の場合、固有値と固有ベクトルを分析的に計算する関数を自分で作成できますが、浮動小数点の計算には問題があります。たとえば、非常に大きな数を非常に小さな数で割ると、無限大またはNaNになります。 。誰かがこれについて何か知っていますか?助けてください!前もって感謝します!