資源簡介
我的思路是這樣的: 最速下降法能找出全局最優點,但在接近最優點的區域內就會陷入“齒型”迭代中,使其每進行一步迭代都要花掉非常久的時間,這樣長久的等待是無法忍受的,不信你就在我那個程序的第一步迭代中把精度取得很小如:0.000000001等,其實我等過一個鐘都沒有什么結果出來。
再者我們考究一下 牛頓迭代法求最優問題,牛頓法相對最速下降法的速度就快得多了,而且還有一個好處就是能高度逼近最優值,而不會出現死等待的現象。 如后面的精度,你可以取如:0.0000000000001等。
但是牛頓法也有缺點,就是要求的初始值非常嚴格,如果取不好,逼近的最優解將不收斂,甚至不是最優解。 就算收斂也不能保證那個結就是全局最優解,所以我們的出發點應該是:為牛頓法找到一個好的初始點,而且這個初始點應該是在全局最優點附近,這個初始點就能保證牛頓法高精度收斂到最優點,而且速度還很快。
思路概括如下:
1。用最速下降法在大范圍找到一個好的初始點給牛頓法:(最速下降法在精度不是很高的情況下逼近速度也是蠻快的)
2。在最優點附近改用牛頓法,用最速下降法找到的點為牛頓法的初始點,提高逼近速度與精度。
3。這樣兩種方法相結合,既能提高逼近的精度,還能提高逼近的速度,而且還能保證是全局最優點。這就充分吸收各自的優點,揚長避短。得到理想的結果了。
代碼片段和文件信息
- 上一篇:圖像信息熵 matlab M文件
- 下一篇:散點擬合平面的MATLAB程序
評論
共有 條評論