类 RRQRDecomposition
java.lang.Object
org.hipparchus.linear.QRDecomposition
org.hipparchus.linear.RRQRDecomposition
计算矩阵的揭示秩QR分解,带有列置换。
矩阵A的揭示秩QR分解由三个矩阵Q、R和P组成,使得AP=QR。其中Q是正交的(QTQ = I),R是上三角矩阵。如果A是m×n矩阵,则Q是m×m矩阵,R是m×n矩阵,P是n×n矩阵。
具有列置换的QR分解会产生一个揭示秩QR分解,可以使用getRank(double)
方法返回输入矩阵A的秩。
该类使用Householder反射来计算分解。
为了提高效率,分解以紧凑形式进行转置。这允许内部循环在行内进行迭代,在Java中这样做更加高效。
该类基于来自JAMA库的同名类,做出以下更改:
- 添加了一个
getQT
方法, - 用
getSolver
方法替换了solve
和isFullRank
方法,并提供了返回的DecompositionSolver
的等效方法。
- 另请参阅:
-
构造器概要
构造器说明RRQRDecomposition
(RealMatrix matrix) 计算给定矩阵的QR分解。RRQRDecomposition
(RealMatrix matrix, double threshold) 计算给定矩阵的QR分解。 -
方法概要
修饰符和类型方法说明protected void
decompose
(double[][] qrt) 分解矩阵。getP()
返回在矩阵A的QR分解中使用的置换矩阵P,使得AP = QR。int
getRank
(double dropThreshold) 返回有效的数值矩阵秩。获取用于在最小二乘意义下找到A × X = B解的求解器。protected void
performHouseholderReflection
(int minor, double[][] qrt) 对A的子矩阵A(minor, minor)执行Householder反射。从类继承的方法 org.hipparchus.linear.QRDecomposition
getH, getQ, getQT, getR
-
构造器详细资料
-
RRQRDecomposition
计算给定矩阵的QR分解。奇异阈值默认为零。- 参数:
-
matrix
- 要分解的矩阵。 - 另请参阅:
-
RRQRDecomposition
计算给定矩阵的QR分解。- 参数:
-
matrix
- 要分解的矩阵。 -
threshold
- 奇异阈值。 - 另请参阅:
-
-
方法详细资料
-
decompose
protected void decompose(double[][] qrt) 分解矩阵。- 覆盖:
-
decompose
在类中QRDecomposition
- 参数:
-
qrt
- 转置矩阵
-
performHouseholderReflection
protected void performHouseholderReflection(int minor, double[][] qrt) 对A的子矩阵A(minor, minor)执行Householder反射。- 覆盖:
-
performHouseholderReflection
在类中QRDecomposition
- 参数:
-
minor
- 子矩阵索引 -
qrt
- 转置矩阵
-
getP
返回在矩阵A的QR分解中使用的置换矩阵P,使得AP = QR。如果在此分解中未使用任何置换,则P等于单位矩阵。- 返回:
- 一个置换矩阵。
-
getRank
public int getRank(double dropThreshold) 返回有效的数值矩阵秩。有效的数值秩是非可忽略奇异值的数量。
此实现查看右下子矩阵序列的Frobenius范数。当看到范数大幅下降时,将返回秩。下降计算如下:
(thisNorm/lastNorm) * rNorm < dropThreshold
其中thisNorm是当前子矩阵的Frobenius范数,lastNorm是上一个子矩阵的Frobenius范数,rNorm是完整矩阵的Frobenius范数
- 参数:
-
dropThreshold
- 触发秩计算的阈值 - 返回:
- 有效的数值矩阵秩
-
getSolver
获取用于在最小二乘意义下找到A × X = B解的求解器。最小二乘意义意味着可以为超定系统计算一个求解器(即方程数多于未知数的系统,对应于具有比列数更多行的高瘦A矩阵)。在任何情况下,如果矩阵在
构造
中设置的容差内是奇异的,则在调用solve
方法时将触发错误。- 覆盖:
-
getSolver
在类中QRDecomposition
- 返回:
- 一个求解器
-