% 各位matlab高手,我求一个含六个自变量的函数最大值,用了六层for循环,且问题要求步长很小,求解时间巨长(个把月左右)。
% 听同学说可用优化工具箱,但我不知怎样用,同学说我的不等式不好写成约束条件矩阵,尤其是第六个中间变量条件。请高手
%帮我用优化工具箱解决这一函数最大值问题,最好能求出函数最大值时六个自变量的取值,本人感激不敬!!!!!!!!!!!!!!
T0=303 ;
TH=5*T0 ; Th=1.2*T0 ; TL=T0 ; % 一些常量
step=0.01*T0 ; %取循环步长
step1=0.01 ;
for x=step1:step1:(1-step1) ;
for y=step1:step1:(1-x) ;
for T1=0:step:(2.5*T0) ;
for T6=max([(T1+step) Th]):step:(TH-3*step) ;
for T4=(T6+step):step:(TH-2*step) ;
for T2=(T4+step):step:(TH-step) % x,y,T1,T6,T4,T2为六个自变量,T10,y>0
% 以上是六层循环赋值,以下是六层循环里层
Q_H=9*x*(TH-T2) ;
Q_L=9*y*(T1-TL ) ;
Q_Kh=9*(1-x-y)*( T6- Th) ;
Q_Kc=( Q_H/T2-Q_L/T1-Q_Kh/T6 )*T4 ;
P=Q_H-Q_L-Q_