levmar

Software screenshot:
levmar
Podrobnosti Software:
Verze: 2.6
Datum uploadu: 15 Apr 15
Vývojka: Manolis Lourakis
Licence: Volný
Popularita: 96

Rating: 5.0/5 (Total Votes: 1)

levmar je implementace Levenberg-Marquardt nelineární nejmenších čtverců algoritmy v C / C ++.
Rutina lmder z MINPACK, provedena na počátku 80. let u Argonne National Lab, je možná Nejrozšířenější volný provádění LM algoritmu. lmder je napsán v Fortran77 a v průběhu let se ukázalo, že je spolehlivým kus softwaru. Vzhledem k tomu, že FORTRAN rutiny lze volat z C / C ++, dalo by se uvažovat o motivaci pro psaní verzi LM v C. No, problém je, že když FORTRAN je volána z C, programátor by měl být vědom (a v souladu s ) několik pravidel týkajících jméno mandlování, předávání parametrů, vícerozměrný rozložení paměti pole, zdvih konvence, atd, které jsou nepřirozené ve srovnání s běžnými pravidly C. Druhým důvodem je to, že tento přístup bere za samozřejmé, že FORTRAN kompilátor pro cílovou programovací prostředí je k dispozici, což nemusí nutně být případ. Dalším důvodem, proč má co do činění s poruchou pochopit vnitřní fungování FORTRAN realizace: Občas, když je třeba, aby přesně pochopit, co FORTRAN kód dělá, některé kusy by se mohlo zdát nepochopitelné, pro programátory bez znalosti jazyka FORTRAN. Automatické FORTRAN na C překladatelů (např F2C) neřeší problém, protože vyrábí C kód je dost nečitelný pro "nezasvěcené" člověka. Kromě toho, dokumentace popisující matematika, na nichž je založeno provedení může být nejasná nebo nepřístupné. V neposlední řadě, implementace kandidát LM v C by měl být volný a technicky zvuk. Například, C varianta LM algoritmu uveden v "Numerické recepty" knihy (tj mrqmin), není vždy životaschopná volba: Kromě jeho bytí chráněné autorskými právy, je údajně nedostatek robustnosti v pračce. Z výše uvedených důvodů jsem vytvořil balíček, který zahrnuje levmar implementace C LM chutí, které jsou rovněž použitelné v C ++. levmar zahrnuje dvoulůžkové a jednolůžkové implementace přesnost LM, a to jak s analytické a konečný rozdíl se přiblížil Jacobians. Je k dispozici zdarma, a to za podmínek GNU General Public License. Matematická teorie za neomezeného levmar je podrobně popsán v skripta, které jsou oprávněny metody pro nelineární nejmenších čtverců Problémy, K. Madsen, HB Nielsen a O. Tingleff, Technická univerzita v Dánsku; Matlab implementace algoritmů uvedených v skripta jsou také k dispozici. Všimněte si však, že formulace problému minimalizace Přijaté je mírně odlišný od, který je popsán v skripta v pračce funkce je použití:.
Levmar nabízí několik uživatelsky callable funkcí poslouchat následující konvence: První písmeno (d nebo y) stanoví, manželskou postelí nebo samostatnými přesnost a příponu (_der nebo _dif) označuje analytický nebo přibližný Jacobian. Pokud je přítomen, LEC, bc a BLEC komponenty znamenat lineární rovnice, pole a současné box a lineární rovnice omezení, resp. Přesněji řečeno, levmar zahrnuje funkce níže: pračce Neomezená optimalizace pračce dlevmar_der (): double precision, analytická Jacobiho v pračce dlevmar_dif (): double precision, konečný rozdíl zaokrouhlený Jacobian
slevmar_der (): vyřazovací přesnost, analytická Jacobiho v pračce slevmar_dif (): vyřazovací přesnost, konečný rozdíl se přiblížil Jacobian pračce podmíněné optimalizace pračce dlevmar_lec_der () : double precision, lineární rovnice omezení, analytická Jacobiho v pračce dlevmar_lec_dif (): double precision, lineární rovnice omezení, konečný rozdíl se přiblížil Jacobiho
slevmar_lec_der (): single precision, lineární rovnice omezení, analytická Jacobian
slevmar_lec_dif (): vyřazovací přesnost, lineární rovnice omezení, konečný rozdíl se přiblížil Jacobiho v pračce dlevmar_bc_der (): double precision, box omezení, analytická Jacobiho v pračce dlevmar_bc_dif (): double precision, box omezení, konečný Rozdíl sblížit Jakobián
slevmar_bc_der (): single přesnost, box omezení, analytická Jacobiho v pračce slevmar_bc_dif (): vyřazovací přesnost, box omezení, konečný rozdíl se přiblížil Jacobiho v pračce dlevmar_blec_der (): double přesnost, box a lineární rovnice vazby, analytická Jacobiho v pračce dlevmar_blec_dif (): double precision, box a lineární rovnice vazby, konečný rozdíl se přiblížil Jacobiho
slevmar_blec_der (): single precision, box a lineární rovnice omezení, analytické Jacobian
slevmar_blec_dif (): vyřazovací přesné, krabice a lineární rovnice omezení, konečný rozdíl se přiblížil Jakobiánu pračce Všimněte si, že pomocí konečných rozdílů, kterou se sbližují Jacobiho výsledky opakovaných hodnocení o funkci k montáži. S cílem snížit celkový počet těchto hodnoceních se xxxxxxx_dif funkce implementovat sečná přiblížení k Jacobian pomocí Broyden hodnost jedna aktualizace. Všechny funkce vyřešit stejný problém, to znamená, že usilovat o parametr vektor p, která nejlépe popisuje (v podmínkách normy L2) na měření vektor x. Přesněji řečeno, daný vektor funkce f: R ^ m -> R ^ n s n> = m, že výpočet AP takové, že f (p) ~ = x, tedy čtvercové normou || || e ^ 2 = | | xf (p) || ^ 2 je minimalizován. Také box omezení tvaru LB [i]

Co je nového v této verzi:

  • Tato verze přidává podporu pro úhlopříčka škálování až xlevmar_bc_der (), což může zlepšit konvergenci při výchozím bodem je daleko od skutečného Minimizer.
  • lineární systémy řešitelem podporu paralelní Choleskyho rozklad s plazmou, lineární algebry knihovny pro vícejádrové procesory.
  • Lineární řešitelé byly stanoveny tak, že pracují na nižších trojúhelníků symetrických matic, což má za následek lepší mezipaměti výkonu.
  • Konfigurační soubory cZkontrolujte pro stavbu projektu byly revidovány.
  • bylo učiněno několik dalších drobných změn.

Co je nového ve verzi 2.5:

  • Upozornění pro předchozí verze UŽIVATELE: Pro lepší konzistenci a vyhýbání se konflikty, název souboru záhlaví levmar byl změněn z lm.h do levmar.h; aktualizujte zdrojové soubory podle toho.
  • Byla přidána podpora pro minimalizaci za současného pole, lineární rovnice a nerovnosti omezení (viz funkce xlevmar_bleic_der () & xlevmar_bleic_dif ()).
  • Realizované pohodlí obaly na xlevmar_bleic_der () a xlevmar_bleic_dif () zabývající se jednodušších omezených případech, např xlevmar_blic_der () a xlevmar_blic_dif () minimalizace podpora v kolonce a lineární nerovnosti omezení uložit pouze.
  • Přidáno lineární systémy řešitele na základě UDUt rozkladu (tj sqrt bez Choleskyho).
  • odstranil některé zbytečné paměti kopírování z většiny lineárních řešitelů.
  • Přidán nový datový padnoucí problém testu (Osborne).
  • provedli několik dalších drobných změn.

Co je nového ve verzi 2.4:

  • Upozornění pro předchozí verze UŽIVATELE: Velikost info argumentu (tj LM_INFO_SZ) byla zvýšena o jedno místo na dožití nové vratné pole (tj, info [9]), která odpovídá celkovému počtu lineárních systémů řešených v průběhu minimalizace. Indexy dříve vrácených polí v informačním poli zůstávají beze změny.
  • realizovali více mezipaměti efektivní systém pro výpočet přibližné Hessian J ^ T * J a J ^ T * E pro malé-velké problémy pro minimalizaci.
  • zajistit, aby každý pracovní paměť zachovány mezi vyvolání lineárních řešitelů se uvolní po ukončení levmar rutiny.
  • zajistit, aby lineární řešitelé zaměstnávat minimální požadované množství pomocné paměti, aby se zabránilo příležitostné nadměrnému přidělení.
  • provádějící rozbalování smyček pro urychlení výpočet E = x-HX.
  • Pevná několik problémů s zarovnání paměti na 64bitových systémech.
  • Přidána funkce pro výpočet koeficientu stanovení.
  • Probíhající s několika méně závažných otázek.

Podobný software

Komentáře k levmar

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!