2016-02-04 10 views
0

我想解決一個「線性化」的線性方程組,這需要通過線性化迭代估計兩個參數。實際問題實際上是非線性的,但是使用傅里葉級數方法,它是線性化的。對於求解線性方程組有兩個未知假設的任何建議?

我一直在用矩陣和SVD求解線性系統,這些矩陣和SVD不需要太多時間,但是這些矩陣依賴於要迭代求解的兩個參數。最後,我只需要確保我解決的參數之一迭代匹配我在系統中得到的響應。這是最小化的標準。

我一直在使用「fmincon」和「multi-start」來解決兩個參數,我得到了一些結果,但它比我所期望的要花費更長的時間。也有當地最低限度的問題,所以我不得不包括「多開始」。

任何人有一個想法,如果任何其他方法會更容易解決這個問題?

我真的很感激它。

+0

任何其他方法? fmincon使用了一套相當複雜的數學優化方法。你想改善什麼? –

+0

我敢打賭,這很複雜,但我不確定裏面發生了什麼。 fmincon有一個本地最小問題,這就是爲什麼我運行多啓動找到全局最小值。這需要很長時間...有關於此的任何建議? –

+0

不,沒有建議。這是數學中的一個懸而未決的問題。 –

回答

-1

我在我的問題得到了改善,我只是回答它的評論,但我認爲這是值得把它在這裏,因爲我沒有出現意想不到的事情:

所以我跑了蒙特卡洛SIM兩個迭代求解變量,並繪製出錯誤如何隨輸入變量而變化。我意識到在響應錯誤中存在大量局部最小值,這就是爲什麼fmincon無法自行解決的原因,因爲它很快跳入了其中一個局部極小孔,我需要fmincon的非常精細的多重啓動,所以我可以達到全球最低水平。這是非常有趣的觀察,因爲我沒有預料到兩個參數的粗略誤差分佈。

在matlab中是否有任何有效的求解器/優化器,您知道在有許多局部最小值的情況下獲得全局最小值?或者其他方法?

謝謝,

0

可以使用的全局優化方法是模擬退火。 可能是MATLAB有一個相關的例程。 有免費的模擬退火軟件,你也可以嘗試。