[討論] 想請教一下fmincon這個指令的問題已回收

看板MATLAB作者 (皮)時間15年前 (2010/12/15 21:46), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串1/1
新手發問,如果有錯請鞭 囧"> 如題,我的目標函數假設為 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
三個參數範圍值透過 lb、ub 去限制求出的參數範圍
12/16 11:28, 1F

12/16 11:32, , 2F
問題一主要是限制目標函數的範圍
12/16 11:32, 2F
文章代碼(AID): #1D2CQSrp (MATLAB)