levmar

軟件截圖:
levmar
軟件詳細信息:
版本: 2.6
上傳日期: 15 Apr 15
許可: 免費
人氣: 18

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位系統的幾個內存對齊問題。
  • 新增功能決定係數的計算。
  • 在查處了一些小問題。

類似的軟件

ATLAS
ATLAS

17 Feb 15

RPL/2
RPL/2

28 Sep 15

Cinderella
Cinderella

17 Feb 15

Genius
Genius

22 Jun 18

意見 levmar

評論沒有發現
添加評論
打開圖片!