我正在尝试对大于 10,000 x 10,000 的矩阵进行求逆。
InverterTask<Double> matrixInverter = InverterTask.PRIMITIVE.make(storeM);
try{
storeI = matrixInverter.invert(storeM);
}catch (RecoverableCondition e){
throw new RuntimeException(e);
}
storeM 是一个大小为 10,000 x 10,000 的矩阵。
但是,我遇到了以下错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.ojalgo.array.Primitive64Array.<init>(Primitive64Array.java:368)
at org.ojalgo.matrix.store.PrimitiveDenseStore.<init>(PrimitiveDenseStore.java:482)
at org.ojalgo.matrix.store.PrimitiveDenseStore$1.makeZero(PrimitiveDenseStore.java:255)
at org.ojalgo.matrix.store.PrimitiveDenseStore$1.makeZero(PrimitiveDenseStore.java:95)
at org.ojalgo.matrix.decomposition.GenericDecomposition.makeZero(GenericDecomposition.java:105)
at org.ojalgo.matrix.decomposition.InPlaceDecomposition.setInPlace(InPlaceDecomposition.java:83)
at org.ojalgo.matrix.decomposition.LUDecomposition.compute(LUDecomposition.java:266)
at org.ojalgo.matrix.decomposition.LUDecomposition.decompose(LUDecomposition.java:94)
at org.ojalgo.matrix.decomposition.LUDecomposition.invert(LUDecomposition.java:199)
at distlearn.Inversion.main(Inversion.java:46)
我可以在 ojAlgo 中使用哪些其他方法来执行此类任务?
编辑:我实际上希望使用问题的对偶来执行内核岭回归。这意味着对于 N 个条目的数据集,我可能需要执行 NxN 矩阵的求逆。