levmar

软件截图:
levmar
软件详细信息:
版本: 2.6
上传日期: 15 Apr 15
许可: 免费
人气: 96

Rating: 5.0/5 (Total Votes: 1)

levmar是列文伯格 - 马夸特非线性的实现在C / C ++。最小二乘算法

从Minpack的lmder常规,在80年代初在美国阿贡国家实验室实施,也许是使用最广泛的免费实现LM算法。 lmder写入FORTRAN77,多年来已被证明是可靠的软件。考虑到FORTRAN程序可以从C / C ++调用,人们可能会想知道的动机写一个版本LM在C.嘛,问题是,当FORTRAN被从C调用,程序员应该知道的(和符合)关于名字改编,参数传递,多维数组的内存布局,联动约定,等几个规则,相比普通的C规则是不自然的。第二个原因是,这种方法需要理所当然地认为,一个FORTRAN编译器为目标的编程环境是可用的,这可能不一定是这样。另一个原因,是因为有不理解的FORTRAN实现的内部工作:有时,当它需要准确地理解什么FORTRAN代码执行,某些部分可能看起来难以理解的程序员没有FORTRAN的任何知识。自动FORTRAN到C转换器(如F2C)不解决问题,因为生产的C代码是非常难以辨认,以“外行”人。而且,文件描述了赖以实现的基础可能是模糊或无法访问的数学。最后但并非最不重要的,在C候选人LM实现应该是自由的,技术上可行。例如,LM算法中的C变种呈现在“数字食谱”一书(即mrqmin),并不总是一个可行的选择:除了其被受版权保护,它被誉为缺乏健壮性

。基于上述理由,我已开发了levmar包,其中包括的LM的风味,同时也是与C ++的可用C实现。 levmar包括双人和单精度LM的实现,都与分析和有限差分近似雅可比矩阵。它是免费提供的,在GNU通用公共许可证的条款。后面的无约束levmar的数学理论进行了详细有权方法描述的讲义非线性最小二乘问题,通过K·马德森,HB尼尔森和O. Tingleff,丹麦技术大学;在讲义提出的算法的MATLAB实现也可提供。但是,请注意,这里采用的最小化问题的提法是,在讲义的描述略有不同

功能的使用:

levmar提供多种用户可调用的函数服从以下命名约定:第一个字母(D或S)指定的双或单精度和后缀(_der或_dif)表示解析或近似的雅可比。如果存在,LEC,BC和BLEC部件意味着线性方程,盒和同时盒和线性方程的限制,分别。更具体地说,levmar包括以下功能:

无约束优化

dlevmar_der():双精度,分析雅可比
dlevmar_dif():双精度,有限差分近似雅可比
slevmar_der():单精度,分析雅可比
slevmar_dif():单精度,有限差分近似雅可比

约束优化

dlevmar_lec_der() :双精度,线性方程组的限制,分析雅可比
dlevmar_lec_dif():双精度,线性方程组的限制,有限差分近似雅可比
slevmar_lec_der():单精度,线性方程组的限制,分析雅可比
slevmar_lec_dif():单精度,线性方程组的限制,有限差分近似雅可比

dlevmar_bc_der():双精度,箱体的限制,分析雅可比
dlevmar_bc_dif():双精度,箱体的限制,有限差异近似雅可比
slevmar_bc_der():单精度,箱约束,分析雅可比
slevmar_bc_dif():单精度,箱约束,有限差分近似雅可比

dlevmar_blec_der():双精密,箱与线性方程的限制,分析雅可比
dlevmar_blec_dif():双精度,包装盒及线性方程组的限制,有限差分近似雅可比
slevmar_blec_der():单精度,包装盒及线性方程组的限制,雅可比分析
slevmar_blec_dif():单精度,包装盒及线性方程组的限制,有限差分近似雅可比

注意,使用有限差分近似的功能重复评估的雅可比结果安装。旨在减少这些评价的总数,所述xxxxxxx_dif功能实现使用的Broyden的秩一更新割线逼近的雅可比。所有功能解决同样的问题,即他们所寻求的参数向量p最能说明(在L2范数计算)的测量向量x。更确切地说,给定一个向量函数f:R 1米 - >研究^ n,其中N> = M,它们计算AP使得f(P)〜= X,即平方范||ē|| ^ 2 = | | XF(p)的|| ^ 2被最小化。此外,形式磅箱约束[I]

什么在此版本中是新的

  • 在该版本增加了对支持对角线缩放xlevmar_bc_der(),从而可以提高收敛时的起点是远离真最小化。
  • 在一个线性系统求解器支持并行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分解线性系统求解器(即,开方无乔列斯基)。
  • 在删除一些不必要的内存拷贝大部分线性求解。
  • 在增加了一个新的数据拟合的测试问题(奥斯本)。
  • 在做了一些其他小的改动。

什么是在2.4版本中新的

  • 在警告对于以前版本的用户:该信息参数的大小(即LM_INFO_SZ)增加了1,以适应新的回报字段(即,信息[9])相对应的最小化的过程中,解决了线性系统的总数。在信息数组中以前返回领域的指数保持不变。
  • 在实施了更多的缓存,有效的方案来计算大致的黑森州(主)T * j和j ^ T * E为小型最小化的问题。
  • 在确保线性解算器调用之间保留的任何工作内存被释放后的levmar程序终止。
  • 在确保线性解算器使用的辅助存储器所需的最低量,避免偶尔的超额分配。
  • 在实施了循环展开计划加快电子= X-HX的计算。
  • 修正了64位系统的几个内存对齐问题。
  • 新增功能决定系数的计算。
  • 在查处了一些小问题。

类似的软件

Kalamaris
Kalamaris

2 Jun 15

Stacniac
Stacniac

3 Jun 15

Topologic
Topologic

17 Feb 15

意见 levmar

评论没有发现
添加评论
打开图片!