Levmar是非线性优化的一个库,使用起来很方便。但是刚开始接触时会有点头疼,尤其是如果不懂LM算法,直接使用的话,就会满脑子“这是啥?这都是啥?” 最近在学习非线性优化的方法,总结一下希望可以帮助到大家。Levmar的安装配置大家可以看这篇文章:http://blog.sina.com.cn/s/blog_45b747f70101he1t.html
Levmar的官网是这个:http://users.ics.forth.gr/~lourakis/levmar/index.html 其实学习任何一种工具最好的方法还是看原版资料,六级以上的英语基本都能看懂的。
从那篇安装的文章,我们可以看出,Levmar依赖于一个叫LAPACK的库,这个库是Fortran语言编写的,可用于解多元线性方程式、计算特征向量、计算矩阵的QR分解,奇异值分解等等。事实上,Levmar不依赖于这个库也是可以的。Levmar包含多个函数,如下图所示:
这些函数中,前4个是无约束的优化,后面的是有约束的优化,函数的名字也很容易理解。Levmar提供了两种版本的精度,双精度(函数名字首字母为d, double)和单精度(函数名字首字母为s, single)。Levmar支持有约束的非线性最小二乘问题,包括linear equation constraints(第5-8个函数),box constraints(第9-12个函数),box & linear equation constraints(第13-16个函数),box, linear equation &