我用ojAlgo库开发了一个计算矩阵指数的程序。它包括特征值分解。 ojAlgo是否包括多线程算法?例如,是否可以将多个线程附加到分解任务中以减少分解时间?
eigenvalue = Eigenvalue.PRIMITIVE.make(matrix);
eigenvalue.decompose(matrix); //matrix dimension (3000x3000)发布于 2018-08-16 18:54:48
是的,确实如此。如果您查看工厂方法Eigenvalue.PRIMITIVE.make(matrix);,您将看到它根据矩阵大小切换实现。大型矩阵的实现是多线程的.唯一的问题是,单线程实现非常高效,直到矩阵大于8192时,工厂才会切换到多线程。
你知道矩阵是否对称吗?如果您这样做了,我建议您使用Eigenvalue.PRIMITIVE.make(matrix, boolean);而不是Eigenvalue.PRIMITIVE.make(matrix);。否则,该算法将在每次调用eigenvalue.decompose(matrix);时检查对称性。
https://stackoverflow.com/questions/51878573
复制相似问题