[運算] fminmax 如何加上 constraints已回收

看板MATLAB作者時間13年前 (2011/05/13 17:21), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串1/1
各位大哥大姐好: 我參考了fminmax function手冊說明 http://0rz.tw/j4hL4 也使用了這個範例 function f = myfun(x) f(1)= 2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304; % Objectives f(2)= -x(1)^2 - 3*x(2)^2; f(3)= x(1) + 3*x(2) -18; f(4)= -x(1)- x(2); f(5)= x(1) + x(2) - 8; x0 = [0.1; 0.1]; % Make a starting guess at solution [x,fval] = fminimax(@myfun,x0); 他可以順利解出x(1)=4, x(2)=4 我想請問的是,如果我想要加額外的限制,例如 x(1)+ x(2) <= 5 不知道要怎麼調整來使用這個函數 謝謝各位高手 我想進一步請教一下 如果我希望x1, x2只能限定是整數,請問又該怎麼調整 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.155.242 ※ 編輯: Johnson672 來自: 122.116.155.242 (05/13 17:29)

05/14 13:15, , 1F
我的方式是在function裡面寫個限制條件 讓他為定值
05/14 13:15, 1F

05/14 13:15, , 2F
自然就不會收斂到那個值了 至於整數~~
05/14 13:15, 2F

05/14 13:15, , 3F
我認為這種題目比較適合符號運算
05/14 13:15, 3F

05/14 13:16, , 4F
或是將計算出來的數值解去平移吧...但怪怪的
05/14 13:16, 4F

05/14 13:16, , 5F
不嚴謹~~
05/14 13:16, 5F

05/14 15:18, , 6F
請問限制條件的寫法 是直接x1+x2=5 嗎?
05/14 15:18, 6F

05/14 15:18, , 7F
但是這樣他程式過不了耶
05/14 15:18, 7F

05/14 15:21, , 8F
用"小於等於"可以 但是用"等於" 就會有錯not valid
05/14 15:21, 8F

05/14 15:30, , 9F
加個if吧.. >5 output就隨便令一個數吧
05/14 15:30, 9F

05/14 16:34, , 10F
例如我用 x1>=5 但是還是會給出x1是負值的答案,很怪?
05/14 16:34, 10F
文章代碼(AID): #1DpFWkhK (MATLAB)