推 tn00364361: 怎麼看起來好像應該是線性規劃的問題? 01/11 13:28
推 sunev: 線性規劃請用 linprog 01/11 14:25
會說是非線性問題的原因是因為
雖然F看起來是線性的
但是因為我還有用懲罰函數的關係
所以整個F應該寫為
F = C1*[x(1)+x(4)]+C2*[x(2)+x(6)]+C3*[x(3)+x(7)]+C4*[x(4)+x(8)] + 懲罰值
不過剛剛去一些論壇看了一下 lsqnonlin似乎沒辦法像是fmincon這樣
讓兩個變數的和在一個限制下求解
※ 編輯: w12389034e (140.116.77.71), 01/11/2016 15:16:15
→ LiamIssac: What is the penalty fun? 01/11 19:15
推 yugi2567: 你怎麼證明這就是最佳的?你有比較嗎? 01/11 19:36
推 tn00364361: 所以penalty是非線性的嗎? 01/12 10:19
會使用懲罰函數法是因為我想要優選的問題含有一些限制條件
然而疊代的過程中有可能會違反限制 因此給予違反限制的情形懲罰
方法是將違反限制大小的平方與目標函數結合
違反越多 則懲罰量會平方增加 因此優選法會朝盡量不違反限制的方向優選
這個是比較簡單的懲罰函數法(外點法)
也因為懲罰函數的存在所以不會是線性的(因為次方不為一次)
另外yugi大大題的最佳是指問題的全域最佳解嗎@@?
如果是的話 lsqnonlin提供的演算法有兩種:TRR法和LM法
這兩種方法都不能保證找到全域最佳解
我嘗試用不同的起始值計算得到的答案也不相同
如果嘗試次數夠多 理論上應該可以找到近似最佳解
但是要證明是否是全域最佳好像有點困難QQ
※ 編輯: w12389034e (36.239.204.154), 01/12/2016 11:53:15
→ LiamIssac: 你還是沒講你的penalty是什麼形式 問題應該出在那邊 01/12 15:14