function aa
x0=[5,25,20];
lb=[3,20,4];
ub=[8,50,50];
%默認使用算法'trust-region-reflective',它和LargeScale = 'off'沖突
%要麽把Largescale設置為on,要麽換壹種算法使用active-set
%當然妳不管這個的話,系統給妳警告,並會自動幫妳換壹種算法
options = optimset('Largescale','off','Algorithm ','active-set');
%分號去掉,才會輸出
[x,fn,exitflag,outflag]=fmincon(@mubiao,x0,[],[],[],[],lb,ub,@yueshu,options)
end
%目標函數% mubiao.m
function f=mubiao(x)
p=7.8*10^(-6);
f=p*pi^2*x(1)*x(1)*x(2)*x(3)/4;
end
%約束函數%yueshu.m
function[g,ceq]=yueshu(x)
a=916.4208*x(2)^0.86/x(1)^2.86;
b=574.7045*x(2)/x(1)^3;
c=286.6817/x(1)^2;
g(1)=1.2-370.9398/(a+b+c);
g(2)=6*x(1)-x(2);
g(3)=x(1)*x(3)+0.5*x(1)-40;
d=(x(3)-0.5)*x(1)+24.1776;%%%這個沒用
g(4)=abs(x(1)^4*10000/x(2)^3/(x(3)-1.75)-20.7)-2.07;
g(5)=300-0.356*10^6*x(1)*x(2)^(-2)*x(3);
ceq=[];
end