- 35
- 0
- 约1.72千字
- 约 10页
- 2016-11-29 发布于重庆
- 举报
数学应用软件作业5用MATLAB求解非线性规划问题
佛山科学技术学院
上 机 报 告
课程名称 数学应用软件
上机项目 用MATLAB求解非线性规划问题
专业班级 姓 名 学 号
一. 上机目的
1.了解非线性规划的基本理论知识。
2.对比Matlab求解线性规划,学习用Matlab求解非线性规划的问题。
二. 上机内容
1、用quadprog求解二次规划问题min f(x):
2、求解优化问题:
min
S.T.
注:取初值为(10,10,10)。
3、求表面积为常数150 m2的体积最大的长方体体积及各边长。
注:取初值为(4,5,6)。
上机方法与步骤
1、可用两种方法解题:
方法一:Matlab程序:
H=[1 -1;-1 2];
c=[-2;-6];
A=[1 1;-1 2;2 1];
b=[2;2;3];
Aeq=[];
beq=[];
vlb=[0;0];
vub=[];
[x,z]=quadprog(H,c,A,b,Aeq,beq,vlb,vub)
方法二:Matlab程序如下:
先建立fun.m文件,程序为:
function f=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=[1 1;-1 2;2 1];
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文件,程序为:
function f=fun1(x);
f=-x(1)*x(2)*x(3);
再建立chushi1.m文件,程序为:
x0=[10;10;10];
A=[1 2 2;-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文件,程序为:
function f=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)方法一结果:
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
10
原创力文档

文档评论(0)