Matrix Toolkit Java - Matrix Toolkit Java
![]() | Tento článek má několik problémů. Prosím pomozte zlepšit to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Původní autoři | Bjørn-Ove Heimsund |
---|---|
První vydání | 2003 |
Náhled verze | 0.9.14 / 22. listopadu 2011 |
Úložiště | github |
Napsáno | Jáva |
Typ | Aplikační programovací rozhraní (API) |
Licence | LGPL |
Matrix Toolkit Java (MTJ) je open-source Jáva softwarová knihovna pro provádění numerických lineární algebra. Knihovna obsahuje celou sadu standardních operací lineární algebry pro husté matice na základě BLAS a LAPACK kód. Částečná sada řídký operace jsou poskytovány prostřednictvím projektu Šablony. Knihovnu lze nakonfigurovat tak, aby fungovala jako čistá knihovna Java, nebo používat strojově optimalizovaný kód BLAS prostřednictvím Nativní rozhraní Java.
MTJ původně vyvinul Bjørn-Ove Heimsund, který kvůli dalším závazkům udělal krok zpět. Webové stránky projektu uvádějí, že „(Noví správci se) primárně zabývají udržováním udržované knihovny a opravováním chyb, jak jsou objeveny. Neexistuje žádný plán silnic pro budoucí vydání“.[1]
Několik citací pro MTJ lze nalézt ve vědecké literatuře, včetně [2] který používá svůj LU preconditioner. Výkon MTJ byl srovnáván s jinými knihovnami, které lze najít na webu Java Matrix Benchmark.[3]
Schopnosti
Následuje přehled schopností MTJ uvedený na webových stránkách projektu:
- Datové struktury pro husté a strukturované řídké matice v následujících formátech:
- Hustý, hlavní sloupec.
- Pásové matice, které ukládají pouze několik úhlopříček.
- Balené matice, které uchovávají pouze polovinu matic (pro trojúhelníkové nebo symetrické matice).
- Trojúhelníkové a symetrické třířadé matice.
- Transparentní podpora pro symetrické a trojúhelníkové úložiště.
- Datové struktury pro nestrukturované řídké matice v těchto formátech:
- Komprimované úložiště řádků nebo sloupců (CRS / CCS).
- Flexibilní CRS / CCS s využitím růstových řídkých vektorů.
- Úložiště s komprimovanou úhlopříčkou (CDS).
- Husté a strukturované řídké matice jsou postaveny na BLAS a LAPACK a zahrnují následující vnitřní operace:
- Násobení matice / vektoru.
- Násobení matice / matice.
- Pořadí aktualizací podle matic nebo vektorů.
- Řešitelé přímé matice.
- Nestrukturované řídké matice podporují stejné operace jako strukturované, kromě toho, že nemají přímé řešitele. Jejich metody násobení matic / vektorů jsou však optimalizovány pro použití v iteračních řešičích.
- Maticové rozklady hustých a strukturovaných řídkých matic:
- LU a Cholesky.
- Dekompozice vlastních čísel pro nesymetrické husté matice.
- Dekompozice singulární hodnoty pro nesymetrické husté matice.
- Dekompozice vlastních čísel pro symetrické matice (tridiagonální, pruhované, plné a husté).
- Ortogonální matice rozklady pro husté matice (QR, RQ, LQ a QL).
- Iterativní řešiče nestrukturovaných řídkých matic z projektu Templates:
- BiConjugate přechody.
- Přechody BiConjugate se stabilizovaly.
- Konjugujte přechody.
- Konjugované přechody na druhou.
- Čebyševova iterace.
- Zobecněný minimální reziduum (GMRES).
- Iterativní upřesnění (Richardsonova metoda).
- Kvazi-minimální reziduum.
- Výběr algebraických předpokladů:
- Diagonální stabilizace.
- Symetrické postupné overrelaxace.
- Neúplná Cholesky.
- Neúplná LU.
- Neúplná LU s vyplněním pomocí prahování.
- Algebraická multigrid díky vyhlazené agregaci.
Příklady použití
Příklad rozkladu singulární hodnoty (SVD):
SVD svd = Nový SVD(matA.numRows(),matA.numColumns());SVD s = svd.faktor(matA);DenseMatrix U = s.getU();DenseMatrix S = s.getS();DenseMatrix Vt = s.getVt();
Příklad násobení matic:
DenseMatrix výsledek = Nový DenseMatrix(matA.numRows(),matB.numColumns());matA.mult(matB,výsledek);
Viz také
Reference
- ^ „Stránka projektu MTJ“. MTJ. Citováno 30. listopadu 2012.
- ^ McMahan, H.B .; Gordon, G.J. (2005). „Rychlé přesné plánování v rozhodovacích procesech Markov“ (PDF). Proc. 15. mezinárodní konference o automatizovaném plánování a plánování (ICAPS-05).
- ^ „Java Matrix Benchmark“. Citováno 6. prosince 2012.