数学应用软件作业5 用MATLAB求解非线性规划问题.docx
《数学应用软件作业5 用MATLAB求解非线性规划问题.docx》由会员分享,可在线阅读,更多相关《数学应用软件作业5 用MATLAB求解非线性规划问题.docx(11页珍藏版)》请在冰点文库上搜索。
![数学应用软件作业5 用MATLAB求解非线性规划问题.docx](https://file1.bingdoc.com/fileroot1/2023-8/19/60fe83e9-51c5-4f10-aab0-0f6a22438f17/60fe83e9-51c5-4f10-aab0-0f6a22438f171.gif)
数学应用软件作业5用MATLAB求解非线性规划问题
佛山科学技术学院
上机报告
课程名称数学应用软件
上机项目用MATLAB求解非线性规划问题
专业班级姓名学号
一.上机目的
1.了解非线性规划的基本理论知识。
2.对比Matlab求解线性规划,学习用Matlab求解非线性规划的问题。
二.上机内容
1、用quadprog求解二次规划问题minf(x):
2、求解优化问题:
min
S.T.
注:
取初值为(10,10,10)。
3、求表面积为常数150m2的体积最大的长方体体积及各边长。
注:
取初值为(4,5,6)。
三.上机方法与步骤
1、可用两种方法解题:
方法一:
Matlab程序:
H=[1-1;-12];
c=[-2;-6];
A=[11;-12;21];
b=[2;2;3];
Aeq=[];
beq=[];
vlb=[0;0];
vub=[];
[x,z]=quadprog(H,c,A,b,Aeq,beq,vlb,vub)
方法二:
Matlab程序如下:
先建立fun.m文件,程序为:
functionf=fun(x);
f=1/2*x
(1)^2+x
(2)^2-x
(1)*x
(2)-2^x
(1)-6*x
(2);
再建立chushi.m文件,程序为:
x0=[1;1];
A=[11;-12;21];
b=[2;2;3];
Aeq=[];
beq=[];
vlb=[0;0];
vub=[];
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,vlb,vub)
2、Matlab程序:
先建立fun1.m文件,程序为:
functionf=fun1(x);
f=-x
(1)*x
(2)*x(3);
再建立chushi1.m文件,程序为:
x0=[10;10;10];
A=[122;-1-2-2];
b=[72;0];
Aeq=[];
beq=[];
vlb=[];
vub=[];
[x,fval]=fmincon('fun1',x0,A,b,Aeq,beq,vlb,vub)
3、假设长方形的长、宽、高分别为
、
、
,则长方形的体积为f,则有
Matlab程序:
先建立fun2.m文件,程序为:
functionf=fun2(x);
f=-x
(1)*x
(2)*x(3);
然后建立mycon.m文件,程序为:
function[g,ceq]=mycon(x)
g=[];
ceq=[2*x
(1)*x
(2)+2*x
(1)*x(3)+2*x
(2)*x(3)-150];
再建立chushi2.m文件,程序为:
x0=[4;5;6];
A=[];
b=[];
Aeq=[];
beq=[];
vlb=[0;0;0];
vub=[];
[x,fval]=fmincon('fun2',x0,A,b,Aeq,beq,vlb,vub,'mycon')
f=-fval
四.上机结果
1、结果:
(1)方法一结果:
x=
0.6667
1.3333
z=
-8.2222
(2)方法二结果:
x=
0.6667
1.3333
fval=
-8.4763
2、结果:
x=
24.0000
12.0000
12.0000
fval=
-3.4560e+003
3、结果:
x=
5.0000
5.0000
5.0000
fval=
-125.0000
f=
125.0000