[问题] 求解最佳解问题

楼主: 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