用matlab解非线性规划问题目标函数:function f= fun3(x);f=3000/x(1)+180/x(2)+2160/x(3)+210/x(4)+2700*0.2/x(5)+82.25;约束条件:x1+x2+x4+x4+x5=23.5;0
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/11 06:20:52
![用matlab解非线性规划问题目标函数:function f= fun3(x);f=3000/x(1)+180/x(2)+2160/x(3)+210/x(4)+2700*0.2/x(5)+82.25;约束条件:x1+x2+x4+x4+x5=23.5;0](/uploads/image/z/3699183-39-3.jpg?t=%E7%94%A8matlab%E8%A7%A3%E9%9D%9E%E7%BA%BF%E6%80%A7%E8%A7%84%E5%88%92%E9%97%AE%E9%A2%98%E7%9B%AE%E6%A0%87%E5%87%BD%E6%95%B0%EF%BC%9Afunction+f%3D+fun3%28x%29%3Bf%3D3000%2Fx%281%29%2B180%2Fx%282%29%2B2160%2Fx%283%29%2B210%2Fx%284%29%2B2700%2A0.2%2Fx%285%29%2B82.25%3B%E7%BA%A6%E6%9D%9F%E6%9D%A1%E4%BB%B6%EF%BC%9Ax1%2Bx2%2Bx4%2Bx4%2Bx5%3D23.5%EF%BC%9B0)
用matlab解非线性规划问题目标函数:function f= fun3(x);f=3000/x(1)+180/x(2)+2160/x(3)+210/x(4)+2700*0.2/x(5)+82.25;约束条件:x1+x2+x4+x4+x5=23.5;0
用matlab解非线性规划问题
目标函数:function f= fun3(x);
f=3000/x(1)+180/x(2)+2160/x(3)+210/x(4)+2700*0.2/x(5)+82.25;
约束条件:x1+x2+x4+x4+x5=23.5;
0
用matlab解非线性规划问题目标函数:function f= fun3(x);f=3000/x(1)+180/x(2)+2160/x(3)+210/x(4)+2700*0.2/x(5)+82.25;约束条件:x1+x2+x4+x4+x5=23.5;0
x0=[4.7;4.7;4.7;4.7;4.7];
A=[];
b=[];
Aeq=[1 1 1 1 1];beq=[23.5];
VLB=[1e-4;1e-4;1e-4;1e-4;1e-4];VUB=[23.5;23.5;23.5;23.5;23.5];
options=optimset('largescale','off','display','final','tolx',1e-16,'tolfun',1e-16,'MaxFunEvals',600000,'MaxIter',30000);
[x,fval,exitflag,output]=fmincon(@fun3,x0,A,b,Aeq,beq,VLB,VUB,[],options);
disp('fval=');
disp(fval);
disp('exitflag=');
disp(exitflag);
disp('output=');
disp(output);
disp('x=');
disp(x);
运行结果
Optimization terminated:Search direction less than 2*options.TolX
and maximum constraint violation is less than options.TolCon.
No active inequalities
fval=
1.0705e+003
exitflag=
4
output=
iterations:147
funcCount:1072
stepsize:1
algorithm:'medium-scale:SQP,Quasi-Newton,line-search'
firstorderopt:4.6830e-006
cgiterations:[]
message:[1x129 char]
x=
8.4462
2.0689
7.1668
2.2347
3.5834
下界不要是0,那样会出现除数为0的错误,也不要太小,太小也可能搜索不到.