levmar

Software kuvakaappaus:
levmar
Ohjelmiston tiedot:
Versio: 2.6
Lähetyksen päivämäärä: 15 Apr 15
Kehittäjä: Manolis Lourakis
Lupa: Vapaa
Suosio: 96

Rating: 5.0/5 (Total Votes: 1)

levmar on täytäntöönpano Levenberg-Marquardt epälineaarinen pienimmän neliösumman algoritmien C / C ++.
Lmder rutiini Minpack, toteutettu 80-luvun alussa oli Argonne National Lab, on ehkä yleisimmin käytetty vapaa täytäntöönpanoa LM algoritmin. lmder on kirjoitettu FORTRAN77 ja vuosien varrella on osoittautunut luotettavaksi pala ohjelmisto. Ottaen huomioon, että Fortran rutiineja voidaan kutsua C / C ++, voisi ihmetellä motivaatiota kirjoittamiseen version LM C. No, ongelma on, että kun Fortran kutsutaan C: ltä, ohjelmoija pitäisi olla tietoinen (ja täyttävät ) useita sääntöjä nimi asiallisesti, väite ohimennen, moniulotteinen array muisti layout, sidos yleissopimusten, jne, jotka ovat luonnottomia verrattuna tavallisiin C sääntöjä. Toinen syy on se, että tämä lähestymistapa pidetään selvänä, että Fortran-kääntäjä tavoite ohjelmointiympäristö on saatavilla, mikä ei välttämättä ole kyse. Toinen syy on tekemistä ettei ymmärrä sisempi toimintaa Fortran täytäntöönpanoa: Joskus kun on tarpeen juuri ymmärtää, mitä Fortran-koodin tekee tiettyjä osia siitä voi tuntua käsittämättömältä ohjelmoijille ilman mitään tietoa Fortran. Automaattinen Fortran C kääntäjiä (esim f2c) eivät ratkaise ongelmaa, koska tuotettu C-koodi on melko lukukelvottomia "maallikoita" ihmisille. Lisäksi asiakirjat, joissa kuvataan matematiikan jolle toteutus perustuu ehkä epäselviä tai saavuttamattomissa. Viimeisenä mutta ei vähäisimpänä, ehdokas LM täytäntöönpanoa C tulisi olla vapaa ja teknisesti hyviä. Esimerkiksi C variantti LM algoritmin esitetty "Numerical Recipes" kirja (eli mrqmin), ei ole aina kannattava valinta: Sen lisäksi on tekijänoikeuksin suojattua, se on maineikkain puuttuu kestävyyttä.
Edellä mainituista syistä, olen kehittänyt levmar paketti, joka sisältää C toteutukset LM makuja, jotka ovat myös käyttökelpoisia C ++. levmar sisältää kahden ja yhden tarkkuus LM toteutuksia, sekä analyyttinen ja rajallinen ero arviolta Jacobians. Se on maksutonta, ehtojen mukaisesti GNU General Public License. Matemaattinen teoria rajoittamaton levmar on kuvattu yksityiskohtaisesti luentojen oikeus Menetelmät epälineaarinen pienimmän neliösumman ongelmat, K. Madsen, HB Nielsen ja O. Tingleff, Technical University of Denmark; Matlab toteutuksia algoritmien esitetty luennolla muistiinpanot ovat myös saatavilla. Huomaa kuitenkin, että muotoilu Minimointitehtävä hyväksyi tässä hieman erilainen kuin kuvattu luentojen.
Funktion käyttö:
levmar tarjoaa useita käyttäjän vaadittaessa maksettavaa toimintoja tottele Seuraavat nimeämiskäytäntöä: ensimmäinen kirjain (d tai s) määrittelee yhden tai kahden hengen tarkkuutta ja pääte (_der tai _dif) merkitsee analyyttisen tai likimääräinen Jacobin. Mikäli läsnä, LEC, bc ja BLEC komponentit merkitsevät lineaarista yhtälöä, laatikko ja samanaikainen laatikko ja lineaarinen yhtälö rajoitteet, vastaavasti. Tarkemmin levmar sisältää toiminnot alla:
rajoittamaton optimointi
dlevmar_der (): kaksinkertainen tarkkuus, analyyttinen Jacobin
dlevmar_dif (): kaksinkertainen tarkkuus, rajallinen ero arviolta Jacobin
slevmar_der (): yksi tarkkuus, analyyttinen Jacobin
slevmar_dif (): yksi tarkkuus, rajallinen ero arviolta Jacobin
rajoitettu optimointi
dlevmar_lec_der () : kaksinkertainen tarkkuus, lineaarinen yhtälö rajoitteet, analyyttinen Jacobin
dlevmar_lec_dif (): kaksinkertainen tarkkuus, lineaarinen yhtälö rajoitteet, rajallinen ero arviolta Jacobin
slevmar_lec_der (): yksi tarkkuus, lineaarinen yhtälö rajoitteet, analyyttinen Jacobin
slevmar_lec_dif (): yksi tarkkuus, lineaarinen yhtälö rajoitteet, rajallinen ero arviolta Jacobin
dlevmar_bc_der (): kaksinkertainen tarkkuus, laatikko rajoitteet, analyyttinen Jacobin
dlevmar_bc_dif (): kaksinkertainen tarkkuus, laatikko rajoitteet, äärellinen Ero arviolta Jacobin
slevmar_bc_der (): yksi tarkkuus, laatikko rajoitteet, analyyttinen Jacobin
slevmar_bc_dif (): yksi tarkkuus, laatikko rajoitteet, rajallinen ero arviolta Jacobin
dlevmar_blec_der (): double tarkkuus, laatikko & lineaarinen yhtälö rajoitteet, analyyttinen Jacobin
dlevmar_blec_dif (): kaksinkertainen tarkkuus, laatikko & lineaarinen yhtälö rajoitteet, rajallinen ero arviolta Jacobin
slevmar_blec_der (): yksi tarkkuus, laatikko & lineaarinen yhtälö rajoitteet, analyyttinen Jacobin
slevmar_blec_dif (): yksi tarkkuus, laatikko & lineaarinen yhtälö rajoitteet, rajallinen ero arviolta Jacobin
Huomaa, että käyttämällä rajallinen erot lähentää Jacobin tuloksia toistuvia arviointeja toiminto voidaan asentaa. Tavoitteena vähentää kokonaismäärä näiden arviointien xxxxxxx_dif toiminnot toteuttaa secant likiarvoja Jacobin käyttäen Broyden listalla yksi päivityksiä. Kaikki toiminnot ratkaista sama ongelma, eli he etsivät parametrivektori p, joka kuvaa parhaiten (mitattuna L2 normi) mittaukset vektorin x. Tarkemmin, annettu vektori funktio f: R ^ m -> R ^ n n> = m, ne laskea ap siten, että f (p) ~ = x eli neliöllinen normi || e || ^ 2 = | | XF (p) || ^ 2 on minimoitu. Myös laatikko rajoitukset lomakkeen lb [i]

Mitä uutta tässä julkaisussa:

  • Tämä versio lisää tuen lävistäjä skaalaus xlevmar_bc_der (), joka voi parantaa lähentymistä, kun lähtökohtana on kaukana tosi minimizer.
  • lineaariset järjestelmät ratkaisija tukevat rinnakkain Cholesky hajoaminen plasman kanssa, lineaarinen algebra kirjasto moniydinprosessorien.
  • Linear ratkaisussa on vahvistettava siten, että ne toimivat alemman kolmiota symmetrinen matriiseja, joka johtaa parempaan välimuistin suorituskykyä.
  • CTee asetustiedostot rakentamiseen hankkeen on tarkistettu.
  • Useita muita pieniä muutoksia on tehty.

Mitä uutta versiossa 2.5:

  • VAROITUS aiemmat versiot käyttäjille: parempi johdonmukaisuus ja välttää konfliktit, nimi levmar n header tiedosto muutettiin lm.h kohteeseen levmar.h; päivitä lähdetiedostoihin vastaavasti.
  • Lisätty tuki minimointiin alle samanaikaisesti laatikko, lineaarinen yhtälö ja eriarvoisuus rajoitteet (ks toiminnot xlevmar_bleic_der () & xlevmar_bleic_dif ()).
  • Toteutetut mukavuutta kääreet xlevmar_bleic_der () & xlevmar_bleic_dif () käsittelee yksinkertaisempi rajoitettu tapauksissa, esimerkiksi xlevmar_blic_der () & xlevmar_blic_dif () tuki minimointi alla laatikko ja lineaarinen eriarvoisuutta rajoituksia vain.
  • Lisätty lineaariset järjestelmät ratkaisija perustuu UDUt hajoaminen (eli sqrt-vapaa Choleskyn).
  • Poistettu tarpeettomia muistin kopiointi eniten lineaarinen ratkaisussa.
  • Lisätty uusi data istuva testi ongelma (Osborne).
  • Valmistettu muutamia muita pieniä muutoksia.

Mitä uutta versiossa 2.4:

  • VAROITUS aiemmat versiot KÄYTTÄJILLE: koko info argumentti (eli LM_INFO_SZ) korotettiin yhdellä majoittaa uuden paluun alalla (eli info [9]), joka vastaa kokonaismäärä lineaarijärjestelmien ratkaistu aikana minimointi. Indeksit aiemmin palasi kenttien info array säilyvät ennallaan.
  • Toteutetaan entistä cache-tehokas järjestelmä Computing likimääräisen Hessenin J ^ T * J ja J ^ T * e pienikokoisiin minimointi ongelmia.
  • varmistettava, että kaikki työmuistin säilytti välillä manaukset lineaarinen solvers vapautetaan päätyttyä tehdystä levmar rutiineja.
  • varmistettava, että lineaarinen ratkaisijoita työllistävät vähimmäismäärän ylimääräisten muistin, välttämällä satunnainen liikaa päästöoikeuksia.
  • Toteutetaan silmukka etenevästi järjestelmä nopeuttaa laskentaa e = x-HX.
  • Kiinteä pari kysymystä muistilla kohdistuksen 64 bittisissä järjestelmissä.
  • Lisätty toimintoja laskenta determinaatiokertoimen.
  • Tapausta käsitellään muutamia pieniä asioita.

Vastaavia ohjelmistoja

ATLAS
ATLAS

17 Feb 15

tcalc
tcalc

3 Jun 15

L2P
L2P

3 Jun 15

Kommentit levmar

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!