[問題] 求解最佳解問題

看板MATLAB作者 (這位大大很酷唷)時間3年前 (2020/11/08 19:52), 編輯推噓2(202)
留言4則, 2人參與, 3年前最新討論串1/1
各位matlab大神早安 小弟對於使用matlab不太熟悉 但現在必須使用matlab進行最佳化求解 也因此選擇上板詢問 若有打擾之處還請見諒 - 問題是這樣的 小弟有一個目標函數並設有兩限制式 欲在兩限制式下Minimize我的目標函數 並計算出不同決策變數下的最佳函數值 希望顯示出的有:最佳目標值、最佳值下的各決策變數值 表達式差不多是這樣: Min TotalASN s.t. (pa1 / (pa1+pr1)) >= 0.95 (pa2 / (pa2+pr2)) <= 0.1 - code如下: 目標函數(TotalASN.m): function [TotalASN] = TotalASN(n,ka,kr,C1,C2) pa1 = 1- nctcdf(3*sqrt(n)*ka,(n-1),3*sqrt(n)*C1); pr1 = nctcdf(3*sqrt(n)*kr,(n-1),3*sqrt(n)*C1); ASN1 = n / (pa1+pr1) pa2 = 1- nctcdf(3*sqrt(n)*ka,(n-1),3*sqrt(n)*C2); pr2 = nctcdf(3*sqrt(n)*kr,(n-1),3*sqrt(n)*C2); ASN2 = n / (pa2+pr2) TotalASN = 0.5*(ASN1+ASN2) end 限制式則有兩條(這邊我不知道我寫的對不對...): function [TotalASN,ceq] = constraint(n,ka,kr,C1,C2) pa1 = 1- nctcdf(3*sqrt(n)*ka,(n-1),3*sqrt(n)*C1); pr1 = nctcdf(3*sqrt(n)*kr,(n-1),3*sqrt(n)*C1); pa2 = 1- nctcdf(3*sqrt(n)*ka,(n-1),3*sqrt(n)*C2); pr2 = nctcdf(3*sqrt(n)*kr,(n-1),3*sqrt(n)*C2); TotalASN(1) = 0.05 - (pa1 / (pa1+pr1)) ; TotalASN(2) = 0.1 - (pa2 / (pa2+pr2)); ceq = 0; end - 其中C1、C2為事先給定 使用optimization tool求解 卻一直說我的input arguments不足 頭很疼啊啊啊 希望有大神能夠點出我的問題 感謝QAQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.96.231 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1604836334.A.F9E.html

11/14 09:55, 3年前 , 1F
OBJ與CONSTRAINT用單一變數來包含問題的自變數,其餘常
11/14 09:55, 1F

11/14 09:56, 3年前 , 2F
數看你要用global還是直接定義在function code都行
11/14 09:56, 2F

11/14 09:58, 3年前 , 3F
ex: TotalASN(x), x=[n, ka, kr]
11/14 09:58, 3F

11/22 03:36, 3年前 , 4F
感謝c大協助,已解決!
11/22 03:36, 4F
文章代碼(AID): #1Vfzlk-U (MATLAB)
文章代碼(AID): #1Vfzlk-U (MATLAB)