Разреженная матричная реализация и операции в Java - PullRequest
0 голосов
/ 26 августа 2011

Я должен реализовать разреженную матрицу и выполнить некоторые разложения, такие как Разложение Холецкого, Разложение Лу, Разложение QR на нем.

На самом деле я нашел библиотеку под названием JAMA, которая способна сделать это для плотной матрицы.

Но я должен реализовать разреженную матрицу.

Может ли кто-нибудь поделиться своим опытом реализации разреженной матрицы или есть какая-либо библиотека для ее реализации.

Ответы [ 2 ]

1 голос
/ 11 февраля 2013

Существует библиотека la4j (Линейная алгебра для Java), которая поддерживает разреженные матрицы.В la4j используются самые распространенные и эффективные разреженные представления, такие как CRS (хранилище сжатых строк) и CCS (хранилище сжатых столбцов) .Вот соответствующие классы в la4j: CRSMatrix и CCSMatrix .Таким образом, вы можете искать источники или использовать разреженные матрицы la4j непосредственно с упомянутыми разложениями.

Вот краткий пример:

Matrix a = new CRSMatrix(new double[][]{
    { 1.0, 0.0, 0.0 },
    { 0.0, 2.0, 0.0 },
    { 0.0, 0.0, 3.0 }
});

Matrix[] qr = a.decompose(Matrices.QR_DECOMPOSITOR); // qr[0] = Q, qr[1] = R

Matrix[] u = a.decompose(Matrices.CHOLESKY_DECOMPOSITOR); // u[0] = U
1 голос
/ 27 августа 2011

Вы уже видели Кольт или Matrix-Toolkits-Java ?Это может вам помочь.

...