levmar

Screenshot Λογισμικό:
levmar
Στοιχεία Λογισμικού:
Εκδοχή: 2.6
Ανεβάστε ημερομηνία: 15 Apr 15
Προγραμματιστής: Manolis Lourakis
Άδεια: Δωρεάν
Δημοτικότητα: 18

Rating: 5.0/5 (Total Votes: 1)

levmar είναι μια εφαρμογή της μη γραμμικής Levenberg-Marquardt τουλάχιστον αλγόριθμοι πλατείες σε C / C ++.

Η ρουτίνα lmder από Minpack, υλοποιείται στις αρχές της δεκαετίας του '80 στο Εθνικό Εργαστήριο Argonne, είναι ίσως η χρησιμοποιείται ευρύτατα δωρεάν εφαρμογή του αλγορίθμου LM. lmder είναι γραμμένο σε FORTRAN77 και όλα αυτά τα χρόνια έχει αποδειχθεί ότι είναι ένα αξιόπιστο κομμάτι του λογισμικού. Λαμβάνοντας υπόψη ότι FORTRAN ρουτίνες μπορούν να κληθούν από την C / C ++, θα μπορούσε κανείς να αναρωτηθεί σχετικά με τα κίνητρα για τη συγγραφή μιας έκδοσης της LM στο C. Λοιπόν, το πρόβλημα είναι ότι όταν FORTRAN καλείται από το C, ο προγραμματιστής θα πρέπει να γνωρίζουν (και να συμμορφώνονται με ) αρκετοί από τους κανόνες σχετικά με το όνομα κατακρεούργηση, το επιχείρημα πέρασμα, πολυδιάστατη διάταξη μνήμης πίνακα, συμβάσεις σύνδεσης, κλπ, που είναι αφύσικο σύγκριση με τους συνήθεις κανόνες Γ. Ένας δεύτερος λόγος είναι ότι η προσέγγιση αυτή θεωρεί δεδομένο ότι ένας FORTRAN μεταγλωττιστής για το περιβάλλον προγραμματισμού στόχος είναι διαθέσιμα, τα οποία μπορεί να μην είναι απαραιτήτως η περίπτωση. Ένας άλλος λόγος έχει να κάνει με την αποτυχία να κατανοήσουμε τις εσωτερικές διεργασίες της FORTRAN εφαρμογής: Μερικές φορές, όταν είναι απαραίτητο να κατανοήσουμε τι ακριβώς κώδικα Fortran κάνει, ορισμένα κομμάτια του μπορεί να φαίνεται ακατανόητο για τους προγραμματιστές χωρίς καμία γνώση της FORTRAN. Αυτόματη FORTRAN σε C μεταφραστές (π.χ. F2C) δεν λύσει το πρόβλημα, δεδομένου ότι η παραγωγή κώδικα C είναι αρκετά δυσανάγνωστο να «αμύητους» ανθρώπους. Επιπλέον, η τεκμηρίωση που περιγράφει τα μαθηματικά στα οποία βασίζεται η εφαρμογή βασίζεται μπορεί να είναι ασαφείς ή απροσπέλαστα. Τελευταίο, αλλά όχι λιγότερο σημαντικό, μια εφαρμογή υποψήφιος LM σε C θα πρέπει να είναι δωρεάν και τεχνικά ορθή. Για παράδειγμα, η παραλλαγή C του αλγορίθμου LM παρουσιάζεται στην «Αριθμητική Συνταγές" βιβλίο (δηλαδή mrqmin), δεν είναι πάντα μια βιώσιμη επιλογή: Εκτός του που προστατεύεται από πνευματικά δικαιώματα, είναι φημισμένα για να υστερούν σε ευρωστία

. Για τους παραπάνω λόγους, έχω αναπτύξει το πακέτο levmar που περιλαμβάνει υλοποιήσεις Γ LM γεύσεις που μπορούν επίσης να χρησιμοποιηθούν με C ++. levmar περιλαμβάνει διπλά και μονά εφαρμογές LM ακρίβεια, τόσο με αναλυτικό και πεπερασμένη διαφορά προσέγγιση Ιακωβάτων. Παρέχεται δωρεάν, υπό τους όρους της GNU General Public License. Η μαθηματική θεωρία πίσω χωρίς περιορισμούς levmar περιγράφεται αναλυτικά στις σημειώσεις διάλεξης με τίτλο μέθοδοι για μη γραμμικών ελαχίστων τετραγώνων Προβλήματα, από τον Κ Madsen, HB Nielsen και O. Tingleff, Τεχνικό Πανεπιστήμιο της Δανίας? Matlab υλοποιήσεις των αλγορίθμων που παρουσιάζονται στις σημειώσεις των διαλέξεων είναι επίσης διαθέσιμα. Επισημαίνεται, ωστόσο, ότι η διατύπωση του προβλήματος ελαχιστοποίησης υιοθετείται εδώ είναι ελαφρώς διαφορετική από εκείνη που περιγράφεται στις σημειώσεις διάλεξης Χρήση

συνάρτησης:.

Levmar προσφέρει αρκετές λειτουργίες χρήστη απαιτητών υπακούοντας η ακόλουθη σύμβαση ονομασίας: Το πρώτο γράμμα (δ ή δ) καθορίζει διπλό ή μονό ακρίβεια και την κατάληξη (_der ή _dif) δηλώνει αναλυτική ή κατά προσέγγιση Jacobian. Αν υπάρχει, το LEC, bc και BLEC συστατικά συνεπάγεται γραμμική εξίσωση, κουτί και ταυτόχρονη κουτί και γραμμικούς περιορισμούς εξίσωση, αντίστοιχα. Πιο συγκεκριμένα, levmar περιλαμβάνει τις παρακάτω λειτουργίες:

χωρίς περιορισμούς βελτιστοποίηση

dlevmar_der (): διπλή ακρίβεια, αναλυτική Jacobian
dlevmar_dif (): διπλή ακρίβεια, πεπερασμένη διαφορά προσέγγιση Ιακωβιανός slevmar_der
(): ενιαία ακρίβεια, αναλυτική Jacobian slevmar_dif
(): ενιαία ακρίβεια, πεπερασμένη διαφορά προσέγγιση Jacobian

Περιορισμένη βελτιστοποίηση

dlevmar_lec_der () : διπλή ακρίβεια, γραμμικούς περιορισμούς εξίσωση, αναλυτική Jacobian
dlevmar_lec_dif (): διπλή ακρίβεια, γραμμικούς περιορισμούς εξισώσεις, πεπερασμένες διαφορές προσέγγιση Jacobian
slevmar_lec_der (): ενιαία ακρίβεια, γραμμικούς περιορισμούς εξίσωση, αναλυτική Ιακωβιανός
slevmar_lec_dif (): ενιαία ακρίβεια, γραμμικούς περιορισμούς εξισώσεις, πεπερασμένες διαφορές προσέγγιση Jacobian

dlevmar_bc_der (): διπλής ακρίβειας, οι περιορισμοί κουτί, αναλυτική Jacobian
dlevmar_bc_dif (): διπλής ακρίβειας, οι περιορισμοί κουτί, πεπερασμένα διαφορά προσέγγιση Jacobian
slevmar_bc_der (): ενιαία ακρίβεια, οι περιορισμοί κουτί, αναλυτική Jacobian slevmar_bc_dif
(): ενιαία ακρίβεια, οι περιορισμοί κουτί, πεπερασμένη διαφορά προσέγγιση Jacobian

dlevmar_blec_der (): δίκλινο ακρίβεια, κουτί & γραμμικούς περιορισμούς εξίσωση, αναλυτική Jacobian dlevmar_blec_dif
(): διπλή ακρίβεια, κουτί & γραμμικούς περιορισμούς εξισώσεις, πεπερασμένες διαφορές προσέγγιση Jacobian
slevmar_blec_der (): ενιαία ακρίβεια, κουτί & γραμμική εξίσωση περιορισμούς, αναλυτική Jacobian
slevmar_blec_dif (): ενιαία ακρίβεια, κουτί & γραμμική εξίσωση περιορισμούς, πεπερασμένη διαφορά προσέγγιση Jacobian

Ανακοίνωση ότι η χρήση των πεπερασμένων διαφορών για την προσέγγιση των Ιακωβιανό αποτελέσματα σε επαναλαμβανόμενες αξιολογήσεις της λειτουργίας να τοποθετηθεί. Με στόχο να μειωθεί ο συνολικός αριθμός αυτών των αξιολογήσεων, οι λειτουργίες xxxxxxx_dif εφαρμογή τέμνουσας προσεγγίσεις για Ιακωβιανής χρησιμοποιώντας κατάταξη ενός προϊόντος Broyden του. Όλες οι λειτουργίες λύσει το ίδιο πρόβλημα, δηλαδή ζητούν το διάνυσμα των παραμέτρων p που περιγράφει καλύτερα (όσον αφορά την L2 νόρμα) Οι μετρήσεις διάνυσμα x. Πιο συγκεκριμένα, δίνεται μια συνάρτηση διάνυσμα f: R ^ m -> R ^ n με n> = m, που υπολογίζουν AP τέτοιο, ώστε f (p) ~ = x, δηλαδή το τετράγωνο νόρμα || ε || ^ 2 = | | xf (p) || ^ 2 ελαχιστοποιείται. Επίσης, οι περιορισμοί κουτί του lb μορφή [i]

Τι είναι καινούργιο σε αυτήν την έκδοση:

  • Αυτή η έκδοση προσθέτει υποστήριξη για διαγώνια κλιμάκωση προς xlevmar_bc_der (), η οποία μπορεί να βελτιώσει τη σύγκλιση όταν η αφετηρία είναι μακριά από την αλήθεια ελαχιστοποιητή.
  • Ένα γραμμικών συστημάτων υποστήριξης παράλληλων λύτης αποσύνθεση Cholesky με πλάσμα, με τη γραμμική άλγεβρα βιβλιοθήκη για multi-core επεξεργαστές.
  • Γραμμική λύτες έχουν καθοριστεί έτσι ώστε να λειτουργούν σε χαμηλότερες τρίγωνα των συμμετρικών πινάκων, η οποία έχει ως αποτέλεσμα την καλύτερη απόδοση της κρυφής μνήμης.
  • Τα αρχεία ρυθμίσεων CMake για την κατασκευή του έργου έχουν αναθεωρηθεί.
  • Διάφορες άλλες μικρές αλλαγές έχουν γίνει.

Τι είναι καινούργιο στην έκδοση 2.5:

  • ΠΡΟΣΟΧΗ για προηγούμενες εκδόσεις ΧΡΗΣΤΕΣ: Για την καλύτερη συνοχή και την αποφυγή της συγκρούσεις, το όνομα του αρχείου κεφαλίδας levmar άλλαξε από lm.h να levmar.h? παρακαλούμε όπως ενημερώσετε τα αρχεία προέλευσης.
  • Προστέθηκε υποστήριξη για την ελαχιστοποίηση υπό ταυτόχρονη κουτί, γραμμική εξίσωση και ανισότητα περιορισμούς (βλ λειτουργίες xlevmar_bleic_der () & xlevmar_bleic_dif ()).
  • Εφαρμόζεται περιτυλίγματα ευκολία να xlevmar_bleic_der () & xlevmar_bleic_dif () που ασχολούνται με την απλούστερη περιορισμένες περιπτώσεις, π.χ. xlevmar_blic_der () & xlevmar_blic_dif () ελαχιστοποίηση στήριξης στο πλαίσιο κουτί και γραμμικών ανισώσεων μόνο. ​​
  • Προστέθηκε μια γραμμική λύτης συστήματα που βασίζονται στην αποσύνθεση UDUt (δηλαδή, sqrt χωρίς Cholesky).
  • Αφαιρέθηκε κάποια περιττά αντιγραφή μνήμης από πιο γραμμική λύτες.
  • Προστέθηκε μια νέα δεδομένα εφαρμοστό πρόβλημα της δοκιμής (Osborne).
  • κάνει μερικές άλλες μικρές αλλαγές.

Τι είναι καινούργιο στην έκδοση 2.4:

  • ΠΡΟΣΟΧΗ για προηγούμενες εκδόσεις ΧΡΗΣΤΕΣ: Το μέγεθος του επιχειρήματος πληροφορίες (δηλαδή, LM_INFO_SZ) αυξήθηκε κατά ένα για να φιλοξενήσει ένα νέο πεδίο επιστροφή (δηλαδή πληροφορίες [9]), που αντιστοιχεί στο συνολικό αριθμό των γραμμικών συστημάτων λυθεί κατά τη διάρκεια της ελαχιστοποίησης. Οι δείκτες προηγουμένως επέστρεψε πεδία στις πληροφορίες συστοιχίας παραμένουν αμετάβλητες.
  • ακολουθήσει μια πιο σύστημα κρυφής μνήμης αποδοτική για τον υπολογισμό του κατά προσέγγιση Έσσης J ^ Τ * J and J ^ Τ * Ε για μικρού μεγέθους προβλήματα ελαχιστοποίησης.
  • εξασφαλισθεί ότι οποιαδήποτε λειτουργική μνήμη διατηρείται μεταξύ επικλήσεις των γραμμικών λύτες απελευθερώνεται μετά τη λήξη του ρουτίνες levmar.
  • διασφαλιστεί ότι γραμμικές λύτες απασχολούν το ελάχιστο απαιτούμενο ποσό της βοηθητικής μνήμης, αποφεύγοντας περιστασιακή υπερ-κατανομές.
  • εφαρμόζουν μέτρα ξεδίπλωμα βρόχων για την επιτάχυνση του υπολογισμού των e = X-HX.
  • Διορθώθηκε ένα ζευγάρι των θεμάτων με την ευθυγράμμιση της μνήμης σε συστήματα 64 bit.
  • Προστέθηκε λειτουργίες για τον υπολογισμό του συντελεστή προσδιορισμού.
  • ασχολήθηκε με μερικά δευτερεύοντα ζητήματα.

Παρόμοια λογισμικά

Dstar Lite
Dstar Lite

3 Jun 15

mtest
mtest

12 May 15

Lolimot
Lolimot

2 Jun 15

Genius
Genius

22 Jun 18

Σχόλια για levmar

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!