类 SingularValueDecomposition
java.lang.Object
org.hipparchus.linear.SingularValueDecomposition
计算矩阵的紧奇异值分解。
矩阵A的奇异值分解是一组三个矩阵:U、Σ和V,使得A = U × Σ × VT。设A为m × n矩阵,则U是一个m × p正交矩阵,Σ是一个p × p对角矩阵,其元素为正数或零,V是一个p × n正交矩阵(因此VT也是正交的),其中p=min(m,n)。
这个类类似于JAMA库中具有类似名称的类,但有以下更改:
- 将被重命名为
getNorm
的norm2
方法, - 将被重命名为
getConditionNumber
的cond
方法, - 将被重命名为
getRank
的rank
方法, - 添加了一个
getUT
方法, - 添加了一个
getVT
方法, - 添加了一个
getSolver
方法, - 添加了一个
getCovariance
方法。
- 另请参阅:
-
构造器概要
-
方法概要
修饰符和类型方法说明double
返回矩阵的条件数。getCovariance
(double minSingularValue) 返回n × n协方差矩阵。double
计算条件数的倒数。double
getNorm()
返回矩阵的L2范数。int
getRank()
返回有效数值矩阵秩。getS()
返回分解的对角矩阵Σ。double[]
返回分解的矩阵Σ的对角元素。获取用于在最小二乘意义下找到A × X = B解的求解器。getU()
返回分解的矩阵U。getUT()
返回分解的矩阵U的转置。getV()
返回分解的矩阵V。getVT()
返回分解的矩阵V的转置。
-
构造器详细资料
-
SingularValueDecomposition
计算给定矩阵的紧奇异值分解。- 参数:
-
matrix
- 要分解的矩阵。
-
-
方法详细资料
-
getU
返回分解的矩阵U。U是一个正交矩阵,即其转置也是其逆。
- 返回:
- U矩阵
- 另请参阅:
-
getUT
返回分解的矩阵U的转置。U是一个正交矩阵,即其转置也是其逆。
- 返回:
- U矩阵(如果分解的矩阵是奇异的则返回null)
- 另请参阅:
-
getS
返回分解的对角矩阵Σ。Σ是一个对角矩阵。奇异值按非递增顺序提供,以与Jama兼容。
- 返回:
- Σ矩阵
-
getSingularValues
public double[] getSingularValues()返回分解的矩阵Σ的对角元素。奇异值按非递增顺序提供,以与Jama兼容。
- 返回:
- Σ矩阵的对角元素
-
getV
返回分解的矩阵V。V是一个正交矩阵,即其转置也是其逆。
- 返回:
- V矩阵(如果分解的矩阵是奇异的则返回null)
- 另请参阅:
-
getVT
返回分解的矩阵V的转置。V是一个正交矩阵,即其转置也是其逆。
- 返回:
- V矩阵(如果分解的矩阵是奇异的则返回null)
- 另请参阅:
-
getCovariance
返回n × n协方差矩阵。协方差矩阵是V × J × VT,其中J是奇异值的平方的倒数的对角矩阵。
- 参数:
-
minSingularValue
- 忽略奇异值的阈值(0或负值表示将使用所有奇异值) - 返回:
- 协方差矩阵
- 抛出:
-
IllegalArgumentException
- 如果minSingularValue大于最大奇异值,表示所有奇异值都被忽略
-
getNorm
public double getNorm()返回矩阵的L2范数。L2范数是max(|A × u|2 / |u|2),其中|.|2表示矢量的2-范数(即传统的欧几里德范数)。
- 返回:
- 范数
-
getConditionNumber
public double getConditionNumber()返回矩阵的条件数。- 返回:
- 矩阵的条件数
-
getInverseConditionNumber
public double getInverseConditionNumber()计算条件数的倒数。在秩不足的情况下,条件数
将变为未定义。- 返回:
- 条件数的倒数
-
getRank
public int getRank()返回有效数值矩阵秩。有效数值秩是非可忽略奇异值的数量。用于识别非可忽略项的阈值是max(m,n) × ulp(s1),其中ulp(s1)是最大奇异值的最不显著位。
- 返回:
- 有效数值矩阵秩
-
getSolver
获取用于在最小二乘意义下找到A × X = B解的求解器。- 返回:
- 一个求解器
-