各位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