Efektivní knihovna Java Matrix - Efficient Java Matrix Library
Původní autoři | Peter Abeles |
---|---|
Stabilní uvolnění | 0,39 / 6. dubna 2020 |
Operační systém | Cross-platform |
Typ | Knihovna |
Licence | Apache_License |
webová stránka | ejml |
Efektivní knihovna Java Matrix (EJML) je knihovna lineární algebry pro manipulaci se skutečnými / složitými / hustými / řídkými maticemi. Jeho designové cíle jsou; 1) být co nejvíce výpočetně a paměťově efektivní pro malé i velké matice a 2) být přístupný jak nováčkům, tak odborníkům. Těchto cílů je dosaženo dynamickým výběrem nejlepších algoritmů, které se mají použít za běhu, čisté API a více rozhraní. EJML je zdarma, napsaný ve 100% Javě a byl vydán pod licencí Apache v2.0.
EJML má tři odlišné způsoby interakce s ním: 1) procedurální, 2) SimpleMatrix a 3) rovnice. Procedura poskytuje všechny možnosti EJML a téměř úplnou kontrolu nad vytvářením paměti, rychlostí a specifickými algoritmy. SimpleMatrix poskytuje zjednodušenou podmnožinu základních funkcí ve snadno použitelném objektově orientovaném API s průtokovým stylem, inspirovaném Jama. Rovnice je symbolické rozhraní podobné duchu jako Matlab a další CAS, které poskytuje kompaktní způsob psaní rovnic. [1]
Schopnosti
EJML poskytuje následující funkce pro husté matice.
- Základní operátory (sčítání, násobení, ...)
- Maticová manipulace (extrahovat, vkládat, kombinovat, ...)
- Lineární řešiče (lineární, nejmenší čtverce, přírůstkové, ...)
- Dekompozice (LU, QR, Cholesky, SVD, vlastní hodnota, ...)
- Funkce matice (hodnocení, symetrické, definitivní, ...)
- Náhodné matice (kovarianční, ortogonální, symetrické, ...)
- Různé interní formáty (hlavní řádek, blok)
- Testování jednotek
Příklad použití (rovnice)
Výpočet Kalmanova zisku:
ekv.proces("K = P * H '* inv (H * P * H' + R)");
Příklad použití (SimpleMatrix)
Příklad rozkladu singulární hodnoty (SVD):
SimpleSVD s = matA.svd();SimpleMatrix U = s.getU();SimpleMatrix Ž = s.getW();SimpleMatrix PROTI = s.getV();
Příklad násobení matic:
SimpleMatrix výsledek = matA.mult(matB);
Příklad použití (DenseMatrix64F)
Příklad rozkladu singulární hodnoty (SVD):
SingularValueDecomposition_F64<DenseMatrix64F> svd = DecompositionFactory_DDRM.svd(skutečný, skutečný, skutečný);-li (!Továrna na rozklad.rozložitSafe(svd, matA)) házet Nový DetectedException(„Rozklad se nezdařil.“);DenseMatrix64F U = svd.getU(nula, Nepravdivé);DenseMatrix64F S = svd.getW(nula);DenseMatrix64F PROTI = svd.getV(nula, Nepravdivé);
Příklad násobení matic:
CommonOps_DDRM.mult(matA, matB, výsledek);
Viz také
Reference
- ^ „Stránka projektu EJML“. EJML. Peter Abeles. Citováno 21. ledna 2019.