levmar

Софтуер снимки:
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 National Lab, е може би най- Най-широко се използва свободно изпълнение на алгоритъма на LM. lmder е писано в FORTRAN77 и през годините се е доказала като надежден част от софтуера. Като се има предвид, че FORTRAN съчетания може да се плати от C / C ++, логично възниква въпросът за мотивацията за написването на версия на LM във В. Е, проблемът е, че когато FORTRAN се нарича от C, програмистът трябва да е наясно (и да се спазят ) няколко правила по отношение на името пресоване, аргумент къса, многоизмерна оформление масив памет, свързаността конвенции, и т.н., които са неестествено в сравнение с обикновените правила C. Втората причина е, че този подход приема за даденост, че FORTRAN компилатор за околната среда целева програмиране е достъпно, които може да не е задължително да е така. Друга причина е свързана с липсата на разбиране на вътрешната изработки на FORTRAN изпълнение: от време на време, когато това е необходимо, за да се разбере какво точно на FORTRAN код прави, някои части от него може да изглеждат неразбираеми за програмисти, без да знаят нищо за FORTRAN. Автоматично FORTRAN за C преводачи (напр F2c) не решава проблема, тъй като произвежда C код е доста нечетливи да "непосветените" хора. Нещо повече, документация, описваща математика, на които изпълнението се базира може да е неясна или недостъпни. Не на последно място, прилагането на кандидат LM в C трябва да бъде свободен и технически издържано. Например, C вариант на алгоритъма на LM представени в "Числени Рецепти" книгата (т.е. mrqmin), не винаги е жизнеспособен избор: Освен неговото авторско, той е известен с това, липсва издръжливост

. Поради гореизложените причини, аз съм развил пакета levmar която включва C реализации на LM аромати, които също могат да се използват с C ++. levmar включва двойни и единични прецизност LM реализации, както с аналитична и Крайна разлика приблизително Jacobians. Тя се предоставя безплатно, при условията на GNU General Public License. Математическата теория зад непринуден levmar е описана подробно в конспекти право Методи за нелинейни последни Squares Проблеми, от К. Madsen, HB Nielsen и O. Tingleff, Техническия университет на Дания; Matlab реализации на алгоритмите, представени в лекция бележки също са на разположение. Имайте предвид обаче, че формулирането на проблема за минимизиране приет тук е малко по-различна от тази, описана в конспекти Използвайте

Функция на:.

Levmar предлага няколко потребителя изискуем функции слушането след именуване: Първата буква (г или S) се посочва, двойна или единична точност и наставката (_der или _dif) означава аналитична или приблизителната Jacobian. Ако присъства, ЗЕС, Британска Колумбия и blec компонентите предполагат линейно уравнение, кутия и едновременно кутия и линейни ограничения уравнения, съответно. По-конкретно, levmar включва функциите по-долу:

непринуден оптимизация

dlevmar_der (): двойна точност, аналитичната Jacobian
dlevmar_dif (): двойна точност, Крайна разлика сближи Jacobian
slevmar_der (): единична точност, аналитичната Jacobian
slevmar_dif (): единична точност, Крайна разлика приблизително Jacobian

Ограничен оптимизация

dlevmar_lec_der () : двойна точност, линейни ограничения уравнения, аналитичната Jacobian
dlevmar_lec_dif (): двойна точност, линейни ограничения уравнения, Крайна разлика сближени Jacobian
slevmar_lec_der (): единична точност, линейни ограничения уравнения, аналитичната Jacobian
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

Забележете, че с помощта на крайни разлики да сближи Jacobian резултатите в повтарящи се оценки на функцията за монтиране. С цел да се намали общия брой на тези оценки, функциите на xxxxxxx_dif прилагат секущите приближения до Jacobian използващи Broyden ранга една актуализации. Всички функции решаване на същия проблем, т.е. те потърси параметър вектор Р, че най-добре описва (по отношение на нормата L2) на измервания вектор х. По-точно, даден вектор функция е: R ^ т -> R ^ п с п> = т, те се изчисли така, че ап е (п) ~ = Х, т.е. квадрат норма || д || ^ 2 = | | XF (п) || ^ 2 е сведена до минимум. Също така, кутия ограничения на форма LB [в]

<силни> Какво ново в тази версия:

  • Тази версия добавя поддръжка за диагонал мащабиране да xlevmar_bc_der (), който може да подобри конвергенция, когато отправната точка е далеч от истинската Minimizer.
  • A линейни системи решаване подкрепа паралелно Cholesky разлагане с плазма, линейна алгебра библиотеката за многоядрени процесори.
  • Линейни решават за които са определени така, че да работят на по-ниски триъгълници от симетрични матрици, което води до по-добра производителност на кеша.
  • конфигурационни файлове 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]), която съответства на общия брой разрешени по време на намаляването до минимум линейни системи. Индексите на предварително върнати полета в информационния масив, остават непроменени.
  • приложили повече кеш-ефективна схема за изчисляване на приблизителна Hessian J ^ T * J и J ^ T * E за малки проблеми за минимизиране.
  • гарантира, че всяка работна памет запазва между извиквания на линейния решават се освобождава при прекратяване на levmar съчетания.
  • гарантира, че линейните решават да използват минимално необходимото количество спомагателни памет, избягване на случайни над-разпределения.
  • Изпълнено схема за точене на линия за ускоряване на изчисленията на д = х-HX.
  • Фиксирана няколко въпроса с привеждане в съответствие с памет на 64-битови системи.
  • Добавена функции за изчисляване на коефициента на характер.
  • справили с някои дребни проблеми.

Подобен софтуер

JMathLib
JMathLib

3 Jun 15

OctPlot
OctPlot

3 Jun 15

wxMaxima
wxMaxima

23 Nov 17

L2P
L2P

3 Jun 15

Коментари към levmar

Коментари не е намерена
добавите коментар
Включете на изображения!
Търсене по категория