我有大量的方程(n)和大量未知數(m),其中m大於n。我試圖用n個方程和一組觀測值來找到m的值。同時優化一組非線性方程中的參數
我在C#中查看了Levenberg-Marquardt的一些實現,但是我找不到解決超過1個方程的任何問題。例如,我看着http://kniaz.net/software/LMA.aspx,它似乎是我想要的,除了它只需要一個方程作爲參數,我想同時解決許多方程。類似的,這個包:http://www.alglib.net/包含了LM的一個很好的實現,但只適用於一個方程。
我想知道在C#中是否有很好的實現,或者我可以使用我的C#代碼來實現這一點嗎?試圖計算我的方程的一階微分也是很昂貴的,所以我希望能夠使用小的有限差分來近似它們。
此外,還有什麼好的和易於理解的LM如何工作以及如何實現它的解釋?我曾嘗試閱讀一些數學教科書,以便自己實施,但我對數學相當無知,所以大部分解釋都在我身上。
編輯:
更多我的問題的細節:
1)方程動態形成的,可以與我的問題
2每次運行變化)我沒有很好的猜測出發參數。我打算用隨機起始參數多次運行它,以便找到全局最小值。
編輯2:
還有一個問題,我閱讀本文:http://ananth.in/docs/lmtut.pdf我看到根據第2以下:
X =(X1; X2 ... XN)是一種載體,並且每個rj 是從012n 到function的函數。 rj被稱爲 作爲殘差,並假定m> = n。
這是否意味着如果我有比函數更多的參數,LM不起作用?例如,如果我要解決A和B的功能:
Y = AX + B
它不會由於這樣的事實,我的參數矢量的大小爲2(A和B的可能)和我的函數計數是1?
在這裏後期,但研究同樣的事情,我碰到[this](http://www.trentfguidry.net/post/2011/12/10/Implementing-Levenberg-Marquardt-algorithm-nonlinear-least-squares - 迴歸 - 多重加權同時功能在C - sharp.aspx)最近,只是代碼在一些人博客雖然,所以沒有保證... – Benjol 2012-05-29 12:00:51