Efektivní knihovna Java Matrix - Efficient Java Matrix Library

Efektivní knihovna Java Matrix
Původní autořiPeter Abeles
Stabilní uvolnění
0,39 / 6. dubna 2020; Před 8 měsíci (2020-04-06)
Operační systémCross-platform
TypKnihovna
LicenceApache_License
webová stránkaejml.org

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

  1. ^ „Stránka projektu EJML“. EJML. Peter Abeles. Citováno 21. ledna 2019.

externí odkazy