我在寻找快速的Java线性代数库。我尝试了很多(jblas,ujmp,ejml等)。最终,在性能方面,我发现jeigen(c ++ eigen库的Java包装器)更可靠。但是包装器没有Cholesky分解。但是它具有原始特征。有没有一种方法可以向包装器添加分解?
答案 0 :(得分:0)
我不知道执行Cholesky分解的Java包装器。也许其他用户会在我后面发布,他对Java和jeigen的知识更加丰富。
但是,我可以为您的潜在问题(即进行Cholesky分解)提供一些帮助。我最近编写了一个C ++程序,该程序在真实的,对称的,正定的矩阵上执行Cholesky分解。源代码可在GitHub上免费获得:
https://github.com/dcb2015/dpotrf_ak1/blob/master/dpotrf_ak1.cpp
您可以:
1)在您自己的C ++编译器中按原样使用完整的C ++程序,或者,如果您知道C ++,则在自己的程序中使用C ++源代码。
2)将C ++例程转换为Java,以便在您自己的程序中使用。执行分解的子例程很小。 Java语法与C / C ++语法非常相似,因此翻译并不难。 (实际上,我通常会尽量避免使语言和代码的“ ++”方面尽可能接近简单的“ C”。)如果编写Java程序是您工作或分配的一部分,那么这也许是您的最佳选择。
3)使用该程序的现成JavaScript版本,该版本可在线获得(请参阅我的网站的个人资料。)如果您不必自己编写此程序,而只需要分解结果,试试看。它可以帮助您走出困境。