类 EigenDecompositionNonSymmetric
java.lang.Object
org.hipparchus.linear.EigenDecompositionNonSymmetric
计算非对称实矩阵的特征分解。
矩阵A的特征分解是一组两个矩阵:\(V\) 和 \(D\),使得 \(A V = V D\),其中 $\(A\), \(V\) 和 \(D\) 都是 \(m \times m\) 矩阵。
这个类在精神上类似于来自 JAMA 库的 EigenvalueDecomposition
类,具有以下更改:
- 添加了一个
getVInv
方法, - 添加了一个选择单个特征值的
getEigenvalue
方法, - 添加了一个选择单个特征向量的
getEigenvector
方法, - 添加了一个
getDeterminant
方法。
这个类支持具有复特征值的非对称矩阵。对称矩阵的支持由 EigenDecompositionSymmetric
提供。
由于 \(A\) 不对称,因此特征值矩阵 \(D\) 是块对角线矩阵,其中实特征值在 1×1 块中,任何复特征值,\(\lambda \pm i \mu\),在 2×2 块中:
\[ \begin{bmatrix} \lambda & \mu\\ -\mu & \lambda \end{bmatrix} \]
矩阵 \(V\) 的列表示特征向量,即 \(A V = V D\),即 A.multiply(V)
等于 V.multiply(D)
。矩阵 \(V\) 可能病态,甚至是奇异的,因此方程 \(A = V D V^{-1}\) 的有效性取决于 \(V\) 的条件。
这个实现基于 A. Drubrulle, R.S. Martin 和 J.H. Wilkinson 的论文 "The Implicit QL Algorithm",收录在 Wilksinson 和 Reinsch (1971) 的手册中,卷 2,线性代数,Springer-Verlag,纽约。
- 从以下版本开始:
- 3.0
- 另请参阅:
-
字段概要
-
构造器概要
构造器说明计算给定实矩阵的特征分解。EigenDecompositionNonSymmetric
(RealMatrix matrix, double epsilon) 计算给定实矩阵的特征分解。 -
方法概要
修饰符和类型方法说明getD()
获取分解的块对角线矩阵 D。计算矩阵的行列式。getEigenvalue
(int i) 返回原始矩阵的第 i 个特征值。Complex[]
获取原始矩阵的特征值的副本。getEigenvector
(int i) 获取原始矩阵的第 i 个特征向量的副本。double
获取用于内部测试的 epsilon 值(例如奇异、特征值比率等)。getV()
获取分解的矩阵 V。getVInv()
获取分解的矩阵 V 的逆。
-
字段详细资料
-
DEFAULT_EPSILON
public static final double DEFAULT_EPSILON内部使用的默认 epsilon 值- 另请参阅:
-
-
构造器详细资料
-
EigenDecompositionNonSymmetric
计算给定实矩阵的特征分解。- 参数:
-
matrix
- 要分解的矩阵。 - 抛出:
-
MathIllegalStateException
- 如果算法无法收敛。 -
MathRuntimeException
- 如果对一般矩阵的分解导致具有零范数的矩阵
-
EigenDecompositionNonSymmetric
public EigenDecompositionNonSymmetric(RealMatrix matrix, double epsilon) throws MathRuntimeException 计算给定实矩阵的特征分解。- 参数:
-
matrix
- 要分解的矩阵。 -
epsilon
- 用于内部测试的 epsilon(例如奇异、特征值比率等)。 - 抛出:
-
MathIllegalStateException
- 如果算法无法收敛。 -
MathRuntimeException
- 如果对一般矩阵的分解导致具有零范数的矩阵
-
-
方法详细资料
-
getV
获取分解的矩阵 V。V 是一个矩阵,其列保存特征向量的实部或虚部。- 返回:
- V 矩阵。
-
getD
获取分解的块对角线矩阵 D。D 是一个块对角线矩阵。实特征值在对角线上,而复值在 2x2 块中 { {实部 +虚部}, {-虚部, 实部} }。- 返回:
- D 矩阵。
-
getEpsilon
public double getEpsilon()获取用于内部测试的 epsilon 值(例如奇异、特征值比率等)。- 返回:
- epsilon 值。
-
getVInv
获取分解的矩阵 V 的逆。- 返回:
- V 矩阵的逆。
-
getEigenvalues
获取原始矩阵的特征值的副本。- 返回:
- 原始矩阵的特征值的副本。
- 另请参阅:
-
getEigenvalue
返回原始矩阵的第 i 个特征值。- 参数:
-
i
- 特征值的索引(从 0 开始计数) - 返回:
- 原始矩阵的第 i 个特征值。
- 另请参阅:
-
getEigenvector
获取原始矩阵的第 i 个特征向量的副本。请注意,如果第 i 个是复数,则此方法将抛出异常。
- 参数:
-
i
- 特征向量的索引(从 0 开始计数)。 - 返回:
- 原始矩阵的第 i 个特征向量的副本。
- 另请参阅:
-
getDeterminant
计算矩阵的行列式。- 返回:
- 矩阵的行列式。
-