资源描述:
《数学模型最优化方法实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学模型最优化方法实现数学与计算机科学学院2007年3月一、线性规划模型线性规划模型:min(max)z=c’xs.t.AX<=bx>=0其中C为价格向量。A为约束条件的系数矩阵,b为约束条件的右侧常数。最优化模型还有二次规划、非线性规划等。二、求解线性规划:minz=c’xs.t.AX<=bx>=0用matlab采用矩阵方法求解,但要转化为上述形式,输入格式如下:1.x=lp(c,A,b)---注:此模型无非负条件2.x=lp(c,A,b,xlb,xub)----模型中加上条件:xlb<=x<=xub3.x=lp
2、(c,A,b,xlb,xub,x0,nEq)—其中nEq表示Ax<=b中前n个约束为等式例1.Minz=6x1+3x2+4x3s.t.x1+x2+x3=120x1≥30;0≤x2≤50;x3≥20用matlab软件求解如下:C=[6;3;4];A=[111];b=[120];Xlb=[30;0;20];xub=[inf;50;inf];X0=30*ones(3,1);nEq=1;X=lp(c,A,b,xlb,xub,x0,nEq)X=30.000050.000040.0000f=c’*x二、二次规划模型:标准型如下min
3、z=0.5*X’HX+C’Xs.t.AX≤bX≥0用matlab求解,其输入格式如下:1.x=QP(H,C,A,b)2.X=QP(H,C,A,b,vlb,vub)3.X=QP(H,C,A,b,vlb,vub,x0)4.X=QP(H,C,A,b,vlb,vub,x0,N)N表示前N个等式约束的数目例2.minf(x1,x2)=-2x1-6x2+x12-2x1x2+2x22s.t.x1+x2≤2-x1+2x2≤2x1≥0,x2≥0H=[2–2;-24];c=[-2–6];A=[11;-12];b=[22]x=QP(H,
4、c,A,b)x=0.80001.20000.5*x’*H*x+c*x三、无约束极小化问题Matlab提供了求解最优化的函数fmin()和fmins(),它们分别对应于单变量和多变量的最优化问题的求解,其调用格式如下:X=fmin(函数名,初值,选项)其中函数名的定义和其他函数一致,而初值往往能决定最后解的精度和收敛速度。选项要根据实际问题来决定,查看选项的内容只需用命令helpfoptions(共有18种)1.一元非线性函数的极小化:基本的输入格式为:x=fmin(‘F’,x1,x2)其中F表示极小化的函数,例3.min
5、f=2exp(-x)*sin(x)s.t.26、.Minf=100(x2-x12)2+(1-x1)2其中初值为x0=(-1.2,1)首先编写M—文件myfun.mfunctiony=myfun(x)y=100*(x(2)-x(1)^2)^2+(1-x(1))^2;然后由下面的命令求解该问题:x0=[-1.21];x=fmins(‘myfun’,x0)x=1.00001.0000myfun(x)计算函数值ans=1.1115e-09另外一个命令是fminu(),其默认算法是BFGS拟Newton法,但函数一定要以M--文件形式输入,输入格式为:x=fminu(‘fun’
7、,x0,options)四、有约束的非线性规划问题:标准型:minF(x)s.t.G(x)≤zeros(G);vlb≤x≤vub其中G(x)为m维非线性函数向量,zeros(G)为m维零向量;不等式中允许含等式约束,输出目标函值及约束函数值:[f,g]=fun(x)用matlab求解上述问题,分两步:首先建立函数M—文件:function[F,G]=fun(x)F=具体的目标函数G=[函数1;函数2;….;函数m];2.运行的基本格式如下:1)x=constr(‘fun’,x0)2)x=constr(‘fun’,x0,
8、options,vlb,vub)例5.min(x1-2)2+(x2-1)2s.t.x1-2x2+1=0;0.25*x12+x22-1≤0;用matlab输入求解如下:x0=[2;2];options(13)=1;xl=[-inf;-inf];xu=[inf;inf];建立M--文件:function[F