[問題]最佳化設定裡 有沒有限制參數計算區間的 …已回收

看板MATLAB作者 (123木頭人)時間14年前 (2011/07/19 01:15), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串1/1
在最佳化工具裡 有沒有選項可以設定電腦計算參數的區間?? 我使用最小平方做參數最佳化估計 由於參數若是太大或太少會使我的系統發散 導致最佳化過程出現錯誤而終止 最佳化中最小平方法是可以設定參數上下限(ub & lb) 不過在設定上下限後,電腦在估算參數時有時會高於上限,但不會低於下限 例如 參數初始值=[1.8e-21, 1e-21, 1.5e-3, 2.1e-3] ub=[1.8e-20, 1e-20, 1.5e-2, 2.1e-2] lb=[1.8e-22, 1e-22, 1.5e-4, 2.1e-4] 電腦過程中會出現[1.4e-8, 1e-21, 1.5e-3, 2.1e-3] ← 第一個參數高於上限值很多 或[1.8e-21, 1.0001e-22, 1.5e-3 2.1e-3] ←第二個參數接近下限值 類似這樣的參數來計算 不知道有沒有選項是可以限制參數"實際上"變動的區間?? 目前一直碰到電腦參數跳動太大的情況,導致系統會發散 希望板上前輩能指點一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.65.55

07/19 08:27, , 1F
每個function的parameter setting都有lb跟ub
07/19 08:27, 1F
這我知道 可是我設定後電腦在估算過程中還是會超過這區間(就像我上面的例子) 我在想是不是只有最後的output參數落在這區間呢?? 有沒有辦法在電腦估算過程中,參數不要超過這個區間

07/19 10:24, , 2F
請問你是用甚麼function?
07/19 10:24, 2F
我的function是聯立ODE利用lsqcurvefit做最佳化參數估計

07/20 10:47, , 3F
所以你的係數是遞迴帶進模式的嗎?
07/20 10:47, 3F
遞迴式? 我想應該是吧 lsqcurvefit這最佳化工具一開始要輸入一組initial parameter 這組參數會代入ode45中積分,積分完得到目標函數 lsqcurvefit內建的演算法依照目標函數的誤差再產生一組參數帶入ode45中積分 這算是L大你說的遞迴嗎? 我不是讀電資科系的 對一些名詞可能不太熟悉 現在碰到問題是lsqcurvefit的演算法產生的參數數值變動太大 即使我設定了ub、lb,好像沒辦法限制lsqcurvefit產生的參數的範圍 有沒有其他細部選項能夠限制它參數範圍呢? ※ 編輯: yichen1006 來自: 122.126.67.14 (07/20 12:30)

07/20 16:13, , 4F
幾種可能1.模式有問題2.參數的數值太小
07/20 16:13, 4F

07/20 16:14, , 5F
e-21跟-e22的差別不大 (可以rescaling試試看)
07/20 16:14, 5F
文章代碼(AID): #1E96e_Bm (MATLAB)