[討論] 想請教一下fmincon這個指令的問題已回收
新手發問,如果有錯請鞭 囧">
如題,我的目標函數假設為 5*x1+6*x2+7*x3+3*x1*x3
然後我希望能夠限制我x1、x2、x3他們出來的解能夠滿足
1<=x1<=5,6<=x2<=20,1<=x3<=5,而且我還希望能夠再加上一條非線性限制式,如下
-0.5<=5*x1+6*x2+7*x3+3*x1*x3<=0.5
根據help中的格式,我將此非線性限制式分為兩條限制式
5*x1+6*x2+7*x3+3*x1*x3<=0.5
-(5*x1+6*x2+7*x3+3*x1*x3)<=0.5
我的疑問如下面兩點:
問題一: A = [ 1 0 0 ; -1 0 0 ; 0 1 0 ; 0 -1 0 ; 0 0 1 ; 0 0 -1 ];
b = [ 5, -1, 6, -20, 1, -5];
我所上述的三個x1、x2、x3的參數限制範圍是這樣去設嗎?
還是要利用他格式中有的lb、ub去設定我三個參數的上下限值?
-------------------------------------------------------------------
問題二: 那麼我另外兩個非線性不等式限制式是不是要寫成
c(1) = 5*x1+6*x2+7*x3+3*x1*x3-0.5;
c(2) = -(5*x1+6*x2+7*x3+3*x1*x3)-0.5;
ceq = [];
之後在command下輸入以下指令:
x0 = [? ? ?]; % ?表示初始值
[x,fval] = fmincon('myobfun',x0,A,b,[],[],lb,ub,'nonlinfun')
我比較想知道的是問題一中,我的三個參數範圍值到底是要透過A跟b去描述限制範圍
還是透過lb、ub去限制求出的參數範圍?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.126.8.124
推
12/16 11:28, , 1F
12/16 11:28, 1F
推
12/16 11:32, , 2F
12/16 11:32, 2F