levmar

Szoftver screenshot:
levmar
Szoftver adatai:
Változat: 2.6
Feltöltés dátuma: 15 Apr 15
Fejlesztő: Manolis Lourakis
Engedély: Ingyenes
Népszerűség: 18

Rating: 5.0/5 (Total Votes: 1)

levmar egy megvalósítása a Levenberg-Marquardt nemlineáris legkisebb négyzetek algoritmusok C / C ++.
A lmder rutint Minpack, végre a '80 -as évek elején a Argonne National Lab, talán a legelterjedtebb ingyenes implementációja az LM algoritmust. lmder van írva Fortran77 és az évek során bebizonyította, hogy megbízható szoftver. Tekintettel arra, hogy FORTRAN rutinok hívható C / C ++, felmerül a kérdés, a motiváció írás egy változata LM in C. Nos, a probléma az, hogy amikor FORTRAN hívják a C, a programozó tisztában kell lennie (és megfelelnek a ) több vonatkozó szabályokat nevek szétszedése, az érvelés halad, többdimenziós tömb Memória kialakítása, kapcsolat egyezmények, stb, hogy természetellenes, mint a hagyományos C szabályokat. A második ok az, hogy ez a megközelítés eleve feltételezi, hogy a Fortran fordító a cél programozási környezet elérhető, ami nem feltétlenül igaz. A másik ok, hogy köze van hiba, hogy megértsék a belső működését a FORTRAN végrehajtása: alkalmanként, ha szükséges pontosan érti, mi a Fortran program nem, bizonyos darabokat úgy tűnhet érthetetlen, hogy a programozók ismerete nélkül FORTRAN. Automatikus FORTRAN a C fordítók (pl f2c) nem oldja meg a problémát, mivel az előállított C kód elég olvashatatlan a "beavatott" emberek. Sőt, leíró dokumentáció matematika, amelyen a végrehajtás alapja lehet homályos vagy nehezen megközelíthető. Végül, de nem utolsósorban, a jelölt LM végrehajtás C mentesnek kell lennie, és műszakilag megfelelő. Például a C-változat az LM bemutatott algoritmus a "Numerikus Receptek" könyvet (azaz mrqmin), nem mindig életképes választás: jelleg mellett a szerzői jog által védett, akkor arról híres, hogy hiányzik a robusztusság.
A fenti okok miatt kifejlesztettem a levmar csomag, amely magában C implementáció LM ízek, amelyek szintén használható a C ++. levmar, dupla és egyszeres pontosságú LM megvalósítások, mind az analitikus és a véges differencia közelíteni Jacobians. Úgy térítésmentesen alatt a GNU General Public License. A matematikai elmélet mögött korlátlan levmar részletesen le van írva a jegyzetek című módszerei nem lineáris legkisebb négyzetek problémák, K. Madsen, HB Nielsen és O. Tingleff, Dán Műszaki Egyetem; Matlab megvalósításai bemutatott algoritmusok jegyzet is rendelkezésre állnak. Megjegyzendő azonban, hogy a megfogalmazása minimalizálása probléma itt elfogadott némileg eltér a leírt jegyzeteket.
Függvény használata:
levmar többféle felhasználói névre szóló funkciók engedelmeskedik a következő elnevezési: Az első betű (d, vagy s) meghatározza dupla vagy szimpla pontosságú és az utótag (_der vagy _dif) jelöli analitikus vagy közelítő Jacobi. Ha van, a LEC, bc és BLEC komponensek jelenti lineáris egyenletet, box és egyidejű box és lineáris egyenlet korlátok, ill. Pontosabban, levmar tartalmazza az alábbi funkciókat:
Unconstrained optimalizálási
dlevmar_der (): double precision, analitikus Jacobi
dlevmar_dif (): dupla pontosságú, véges differencia közelíteni Jacobi
slevmar_der (): egyszeres pontosságú, analitikus Jacobi
slevmar_dif (): egyszeres pontosságú, véges differencia közelíteni Jacobi
korlátozott optimalizálási
dlevmar_lec_der () : dupla pontosságú lineáris egyenlet korlátok, analitikus Jacobi
dlevmar_lec_dif (): dupla pontosságú lineáris egyenlet korlátok, véges differencia közelíteni Jacobi
slevmar_lec_der (): egyszeres pontosságú, lineáris egyenlet korlátok, analitikus Jacobi
slevmar_lec_dif (): egyszeres pontosságú, lineáris egyenlet korlátok, véges differencia közelíteni Jacobi
dlevmar_bc_der (): double precision, box korlátok, analitikus Jacobi
dlevmar_bc_dif (): double precision, box korlátok, véges különbség megközelítette Jacobi
slevmar_bc_der (): egyszeres pontosságú, box korlátok, analitikus Jacobi
slevmar_bc_dif (): egyszeres pontosságú, box korlátok, véges differencia közelíteni Jacobi
dlevmar_blec_der (): kétágyas pontosság, box és lineáris egyenletet korlátok, analitikus Jacobi
dlevmar_blec_dif (): double precision, box-lineáris egyenlet korlátok, véges differencia közelíteni Jacobi
slevmar_blec_der (): egyszeres pontosságú, box-lineáris egyenlet korlátok, analitikus Jacobi
slevmar_blec_dif (): egyszeres pontosságú, box-lineáris egyenlet korlátok, véges differencia közelíteni Jacobi
Figyeljük meg, hogy a véges különbségek közelíteni a Jacobi eredményeket ismétlődő értékelések a funkciót kell szerelni. Csökkentését célzó ezek teljes számát, értékelések, a xxxxxxx_dif funkciók megvalósítására szelő közelítések Jacobi segítségével Broyden rangját egy frissítést. Az összes funkció megoldani ugyanazt a problémát, vagyis igyekeznek a paraméter vektor p, amelyik a legjobban (az L2 norma) a mérések vektor x. Pontosabban, egy adott vektor függvény f: R ^ m -> R ^ n, ahol n> = m, akkor kiszámítjuk AP úgy, hogy az f (p) = ~ x, vagyis a négyzet norma || || e ^ 2 = | | XF (p) || ^ 2 minimálisra csökken. Emellett box megszorítások formájában lb [i]

Mi az új ebben a kiadásban:

  • Ez a verzió már támogatja a átlós méretezés xlevmar_bc_der (), ami javíthatja a konvergencia, ha a kiindulási pont messze van az igazi minimizer.
  • A lineáris rendszerek megoldó támogatja a párhuzamos Cholesky bomlás plazmával, a lineáris algebra könyvtár többmagos processzorok.
  • Linear megoldók volna rögzíteni, hogy működnek a kisebb háromszög szimmetrikus mátrixok, ezáltal jobb cache teljesítményét.
  • A CGyõzõdjön konfigurációs fájlok építési projekt felülvizsgálatára került sor.
  • Számos más kisebb változtatásokat hajtottak végre.

Mi az új a 2.5 verzió:

  • FIGYELEM korábbi verzióihoz felhasználók: nagyobb következetességet és elkerülése konfliktusok, a neve levmar a header file-ra változott lm.h a levmar.h; Kérjük, frissítse forrás fájlokat kell.
  • A támogatás a minimalizálás mellett egyidejűleg box, lineáris egyenletet és egyenlőtlenséget korlátok (lásd funkciók xlevmar_bleic_der () & xlevmar_bleic_dif ()).
  • Megvalósult kényelmét csomagolók xlevmar_bleic_der () & xlevmar_bleic_dif () foglalkozó egyszerűbb korlátozott esetekben, például xlevmar_blic_der () & xlevmar_blic_dif () támogatás minimalizálásával rovatban és a lineáris egyenlőtlenségek korlátok csak.
  • Added lineáris rendszerek megoldó alapján UDUt bomlás (azaz, gyök-mentes Cholesky).
  • Az eltávolított néhány felesleges memória másolás a legtöbb lineáris képességük.
  • Egy új adatok illeszkedő tesztet probléma (Osborne).
  • Made néhány kisebb változtatásokat.

Mi az új a 2.4-es verzióval:

  • FIGYELEM korábbi verzióihoz felhasználóknak: a méret a info érv (azaz, LM_INFO_SZ) nőtt az egyik, hogy befogadják egy új visszatérő mező (azaz, info [9]), amely megfelel a teljes számú lineáris rendszerek megoldott során a minimalizálás. Az indexek a korábban visszatért területeken az info tömb változatlan marad.
  • Végre egy cache-hatékony rendszer számítási hozzávetőleges hesseni J ^ T * J és J ^ T * e a kis méretű minimalizálás problémákat.
  • róla győződni, hogy a munkamemória megmarad meghívások között a lineáris megoldó szabadul befejezése utáni levmar rutinok.
  • biztosította, hogy a lineáris megoldó foglalkoztatnak a minimálisan megkövetelt kiegészítő memóriát, elkerülve alkalmi túlzott juttatások.
  • végre hurkok kibontására rendszer felgyorsítja a számítás e = x-HX.
  • Fix egy pár kérdést memóriával összehangolva a 64 bites rendszerek.
  • Hozzáadott funkciók a számítás a determinációs együttható.
  • foglalkozott néhány kisebb problémák.

Hasonló program

Dstar Lite
Dstar Lite

3 Jun 15

AnallogicA
AnallogicA

19 Feb 15

BoolStuff
BoolStuff

20 Feb 15

g3data
g3data

2 Jun 15

Hozzászólások a levmar

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!