[問題] 求解最佳解問題

作者: jam0731 (這位大大很酷唷)   2020-11-08 19:52:12
各位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
作者: caron0225 (淯仔)   2020-11-14 09:55:00
OBJ與CONSTRAINT用單一變數來包含問題的自變數,其餘常數看你要用global還是直接定義在function code都行ex: TotalASN(x), x=[n, ka, kr]
作者: jam0731 (這位大大很酷唷)   2020-11-22 03:36:00
感謝c大協助,已解決!

Links booklink

Contact Us: admin [ a t ] ucptt.com