Vector la4j需要多少时间来解50k*50k作为A(稀疏)和B作为50k的线性方程,以得到AX=B的X

Vector la4j需要多少时间来解50k*50k作为A(稀疏)和B作为50k的线性方程,以得到AX=B的X,vector,matrix,linear-algebra,Vector,Matrix,Linear Algebra,我附上了求解稀疏矩阵的代码,但似乎它花费了太多的时间来求解方程。如果我做错了什么,请告诉我 Code 1: //given to the below function //int[] row_inds, int[] col_inds, double[] vals, double[] x, double[] b; value=49152; Matrix A= new CCSMatrix(value,value); for(i=0;i<value;i++){ A.set(row_in

我附上了求解稀疏矩阵的代码,但似乎它花费了太多的时间来求解方程。如果我做错了什么,请告诉我

Code 1:
//given to the below function 
//int[] row_inds, int[] col_inds, double[] vals, double[] x, double[] b;

value=49152;
Matrix A= new CCSMatrix(value,value);
for(i=0;i<value;i++){
   A.set(row_inds[i], col_inds[i], val[i]);
}
Vector B = new BasicVector(b);
GaussianSolver solvers=new GaussianSolver(A);
Vector Y=solvers.solve(B, LinearAlgebra.SPARSE_FACTORY);
for (i = 0; i < Y.length(); i++) {
    x[i]=Y.get(i);
}

Code 2:
//given to the below function 
//int[] row_inds, int[] col_inds, double[] vals, double[] x, double[] b;
value=49152;
Matrix A= new CCSMatrix(value,value);
for(i=0;i<value;i++){
   A.set(row_inds[i], col_inds[i], val[i]);
}
Vector B = new BasicVector(b);
LinearSystemSolver solver = A.withSolver(LinearAlgebra.FORWARD_BACK_SUBSTITUTION);
Vector X = solver.solve(B, LinearAlgebra.SPARSE_FACTORY);
System.out.println("solved for vector X");
for (i = 0; i < X.length(); i++) {
   x[i]=X.get(i);
}
代码1:
//给出了以下函数
//int[]行,int[]列,双[]VAL,双[]x,双[]b;
数值=49152;
矩阵A=新的CCS矩阵(值,值);

对于(i=0;ila4j中存在一个性能缺陷。已在中修复。现在应该可以正常工作(尤其是对于密度较低的稀疏矩阵)。

此处讨论此问题: