应用MATLAB优化工具箱求解优化问题研究
2015-01-02刘洋萍陈永胜郑月锋
刘洋萍,陈永胜,郑月锋
(1.吉林师范大学博达学院 数学系,2.吉林师范大学 数学学院,吉林 四平 136000)
通过对十几年来获奖数学建模优秀论文的分析和研究,笔者发现对于很多实际问题的研究都是建立优化模型进行求解.这就要求参赛的大学生有扎实的数学知识和广博的实际知识,而且要求具备一定的计算机编程能力,要想提高这种能力必须熟悉很多问题的算法.MATLAB软件提供了专业性能很强用于解决特定学科问题的工具箱,优化工具箱就是其中之一,它能解决优化问题的求解问题.下面我们对线性规划和非线性规划的问题进行讨论,并且给出它们的典型算法,为大家解决优化问题提供一些方法和思路.
优化数学模型总体包含:设计变量x=(x1,x2,…,xn)T,目标函数 f(x),约束条件 gi(x)≤0(i=1,2,…,m).
一般地,这类模型可表述为如下形式:
模型中有(1)(2)的为约束优化问题,只有(1)的为无约束优化问题.
1 用MATLAB解线性规划问题
目标函数和约束条件均为线性函数的问题为线性规划问题,一般模型形式有以下3种.
模型 1:minz=cX s.t.AX≤b,命令:x=linprog(c,A,b)
模型 2:minz=cX s.t.AX≤,Aeq·beq,命令:x=linprog(c,A,b,Aeq,beq)
若没有不等式:AX≤b存在,则令A=[],b=[].
模型 3:minz=cX s.t.AX≤b,Aeq·X=beq,vlb≤X≤vub
命令:[1]x=linprog(c,A,b,Aeq,beq,vlb,vub,X0)
[2][x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub,X0)返回最优解x及x处的目标函数值fval.
若没有等式约束:Aeq·X=beq,则令Aeq=[],beq=[].X0表示初始点.
建立M文件t1.m,编写程序:
写成标准形式:
建立M文件t2.m,编写程序:
2 用MATLAB解无约束优化问题
2.1 一元函数无约束优化问题:minf(x)x1≤x≤x2
常用格式如下:
2.2 多元函数无约束优化问题
标准型为:minF(X)
命令格式为:
例3 minf(x)=(4x12+2x22+4x1x2+2x2+1)ex1
编写M-文件 fun3.m:
输入M文件t3.m如下:
3 用MATLAB解非线性规划问题
目标函数和约束条件中至少一个为非线性函数的模型为非线性规划问题,模型形式包括二次规划标准型和非线性规划标准型.
3.1 二次规划标准型为:MinZ= XTHX+cTX
s.t.AX≤b,aeq·X=beq,vlb≤X≤vub
求解命令格式为:
例4 minf(x1,x2)=-2x1-6x2+x12-2x1x2+2x22
s.t.x1+x2≤2,-x1+2x22≤2,x1≥0,x2≥0
写成标准形式:
输入命令:
3.2 非线性规划标准型为:
其中X为n维向量,G(X)与T(X)为非线性向量,式中其它变量含义同线性规划.上述问题,用MATLAB求解基本分三步走:
(1)首先定义目标函数F(X),建立M文件fun.m,
(2)其次,若G(X)或T(X)=0在约束条件中出现,则建立一个M文件QQ.m将G(X)与T(X)定义成一个函数:
(3)最后,建立主程序.
Fmincon是非线性规划求解的函数,命令格式:
例5 minf(x)=ex1(4x12+2x22+4x1x2+2x2+1)
(1)首先定义目标函数,建立M文件fun5.m:
(2)其次定义非线性约束,建立M文件QQ.m
(3)最后,建立主程序t5.m:
〔1〕刁在筠,郑汉鼎.运筹学(第 3 版)[M].北京:高等教育出版社,2001,9.
〔2〕赵静,但琦.数学建模与数学实验(第 2 版)[M].北京:高等教育出版社,2003,6.
〔3〕刘卫国.MATLAB程序设计与应用(第2版)[M].北京:高等教育出版社,2006,7.
〔4〕陈永胜,刘洋萍.基于MATLAB求解非齐次线性方程组[J].赤峰学院学报(自然科学版),2009(10):1-2.
〔5〕张武.MATLAB优化工具箱及其应用[J].农业网络信息,2008(08):138-139.
〔6〕杨世文,许小建.MATLAB优化工具箱在结构优化设计中的应用[J].科学技术与工程,2008(05):1347-1349.
〔7〕王向东.数学实验[M].北京:高等教育出版社,2004,7.
〔8〕姜启源.数学模型(第 3版)[M].北京:高等教育出版社,2012,2.