一、实验目的。
1.了解、使用matlab中的优化命令求解线性规划、非线性规划、二次规划等问题;2.编制程序“一维搜索中的fibonacci算法”.二、实验原理。
1.实际问题的最优化问题,在数学上表现为求极值问题;
2.极值问题总体上可分为两大类:一类为线性规划(目标函数和约束都为线性的)另一类为非线性规划(目标与约束之一为非线性的);
3.解决极值问题的数学方法有:一维搜索中的fibonacci法、**分割法;多元极值中的最速下降法、牛顿法、广义牛顿法、外点法和内点法等。
4.根据不同的实际优化问题,采用适当的方法求解。三、阅读以下matlab优化命令,**例1—例4的函数、命令。
matlab中提供了许多优化命令,这些命令都是根据数学上的基本算法,或经过改进而编制的,使用方便,是人们解决问题的好帮手。1.线性优化(含单元,多元函数)
完整格式:[x,fval]=linprog(f,a,b,aeq,beq,lb,ub,x0)基本格式:[x,fval]=linprog(f,a,b)用于解以下线性规划问题。
minzftx
axb,不等式约束aeqxbeq,等式约束,以下各命令格式中的意义相同。st
lbxub,下上界x0初值。
x1x2x320
3x2x4x42123
例1求解线性规划minz5x24x26x3,st。
3x12x230x1,x2,x30
解命令程序如下f=[-5;-4;-6];
a=[1,-1,1;3,2,4;3,2,0];b=[20;42;30];lb=zeros(3,1);
x,fval]=linprog(f,a,b,lb) %未取初值。
注:上述命令也可用于目标规划的求解。例如。
minzpdp(dd)pd1122233
2x1x211
x1x2d1d10
stx12x2d2d210
8x10xdd233561
x,x0,d,d0,i1,2,3
ii12f=[0 0 0 300 200 200 100 0]';价值系数a=[2 1 0 0 0 0 0 0];%不等式约束b=[11]';不等式资源限制。
ae=[1 -1 1 -1 0 0 0 0;1 2 0 0 1 -1 0 0;8 10 0 0 0 0 1 -1];%等式约束be=[0 10 56]';等式资源限制lb=zeros(8,1);%变量下限。
x=linprog(f,a,b,ae,be,lb) %未取初值。
2.非线性优化。
1)一元非线性极小值(有界区间上的函数最小值)只有区间约束,无所谓初值格式:[x,fval] =fminbnd(fun,x1,x2)
x3cosxxlogx
例2求函数f(x)在[0,1]上的最小值。x
e解法一*用**定义函数的方法求解,即。
fun=inline('(x^3+cos(x)+x*log(x))/exp(x)')x,fval]=fminbnd(fun,0,1);
解法二用函数定义目标函数(可带参数)function y=myfun(x,a)
y=(x^3+cos(x)+a*x*log(x))/exp(x);然后用。
a=1.2; [x,fval]=fminbnd(@(x)myfun(x,a),0,1)
2)多元函数极小值(i)无约束。
格式1:[x,fval]=fminsearch(fun,x0)(较适合非线性次数<=2)格式2:[x,fval]=fminunc(fun,x0)(较适合非线性次数》2)
例3求y2x1的最小值。 x0=[0,0]4x1x210x1x2x2
解法一用**定义函数的方法,命令如下。
fun=inline('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2');x,fval]=fminsearch(fun,[0;0])%无约束的初值自由度较大。
解法二函数文件(可带参数)function y=myfun(x)
y=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2;然后发命令。
x,fval]=fminsearch(@(x)myfun(x),[0;0])
ii)有约束(线性不等式、等式约束,下上界;非线性不等式、等式约束)问题标准形式为。
minf(x),g
xg格式:[x,fval]=fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon)例4求下面问题在初始点(0,1)处附近的最优解。
minzx12x2x1x22x15x2非线性目标函数。
x11)2x20
2x13x260
一个非线性不等式约束,另一个线性不等式约束。
解法一:先建立如下非线性的不等式和等式约束函数文件function [c,ceq]=mycon(x)
c=(x(1)-1)^2-x(2);%不等式非线性约束ceq=等式非线性约束为空然后在命令窗口中键入。
f=inline('x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-5*x(2);'x0=[0;1]; 可行域里的点。
a=[-2,3]; b=6; aeq=beq=lb=ub=线性约束[x,fval]=fmincon(f,x0,a,b,aeq,beq,lb,ub,@mycon)解法二:
function [c,ceq]=mycon(x)
c(1)=(x(1)-1)^2-x(2);%非线性不等式约束c(2)=-2*x(1)+3*x(2)-6;%也视作非线性不等式约束。
ceq=等式非线性约束为空。
然后x0=[0;1]; x,fval]=fmincon(f,x0mycon)
四、实验内容。
1.(1)求解6.25题(初始条件为x0=[0;1];(2)求解6.26(1)题(初始条件为x0=[1.5;1];(3)求解6.27题(初始条件为x0=[2;1];
2.编制程序“一维搜索中的fibonacci算法”,要求显示每一步的区间左右端点、两个试点、试点上的函数值,对程序的语句要作必要的注释。并应用自编的程序求解下列问题。
minf(x)x2x8st.1x6
五、实验报告。
要求缩短后区间为原区间的5%.
对“实验内容1”,直接写结果(写上对应的题号);
对“实验内容2”的自编程序,用email发至对“实验内容2”的例子,写出程序的中间输出和最终结果。
运筹学实验
1.9题。解 设表示名司机和乘务人员第k班次开始上班,由题意有,c 1 1 1 1 1 1 a 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 lb 0 0 0 0 0 0 b 60 70 60 50 2...
运筹学实验
运筹学的实际应用。爸爸去哪儿 择房中的层次分析法。主题概述。我们这次报告的主题是 层次分析法 层次分析法 analytic hierarchy process简称ahp 是将与决策总是有关的元素分解成目标 准则 方案等层次,在此基础之上进行定性和定量分析的决策方法。我们通过最近热播的节目 爸爸去哪儿...
运筹学实验
运。筹。学。学部 院 经济与管理学部。专业 人力资源管理。学号 3220120426 姓名谈家强。2014年 5月23日。实验一管理运筹学软件。一 实验目的和要求。1 了解管理运筹学的软件的用途。2 掌握管理运筹学的软件的使用方法。二 实验步骤。1 了解管理运筹学的软件的安装及相关界面。2 使用管理...