看板 MATLAB 關於我們 聯絡資訊
各位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
caron0225: OBJ與CONSTRAINT用單一變數來包含問題的自變數,其餘常 11/14 09:55
caron0225: 數看你要用global還是直接定義在function code都行 11/14 09:56
caron0225: ex: TotalASN(x), x=[n, ka, kr] 11/14 09:58
jam0731: 感謝c大協助,已解決! 11/22 03:36