摘 要 非线性规划在军事、金融、工程等方面都有不可取代的作用。非线性规划的求解不像线性规划那样有统一的算法,需要根据问题的实际情况具体问题具体分析。数学建模的发展越来越受到工程研究者和数学研究者的重视。数学建模是解决非线性规划的一种重要手段,一系列数学软件的出现为非线性规划问题的解决提供了方便。MATLAB是解决非线性规划问题的重要软件。借助MATLAB进行计算,能够更加快捷方便。
关键词 数学建模 非线性规划 线性规划
中图分类号:O221.1 文献标识码:A
0引言
在日常生活中常常会遇到在一部分在人力、物力以及财力资源等条件下,使得经济效益能够达到最大化的问题,这就是人们所说的最优化问题。非线性规划问题在运筹学中是一个重要分支,它广泛应用在军事、经济、工程等方面。非线性规划分为一个独立的学科门类是在上个世纪50年代开始形成的。大型电子计算机的产生和使用大大地促进了它的发展。
在国际数学研究上,有关非线性规划方面的专门性研究的机构、期刊和书籍就像雨后春笋般的涌现,相关国际学术会议的召开次数也大大地增加。在我国,伴随着计算机的广泛应用,非线性规划问题逐渐引起了许多部门的重视。有关非线性规划理论以及应用需要的学术类交流活动也越来越多,我国已经在这一领域取得了很多研究成果。非线性规划问题已经广泛运用于优化设计、管理科学以及系统控制等领域。
1非线性规划概述
非线性规划的一般形式:
minf(X)
s.t. gi(X)≥0,i=1,2,…,m (1)
hj(X)=0,j=1,2,…,
其中X=(x1,x2,…,xn)T∈Rn,f1,g1,h1是在Rn上的实值函数,简记为f:Rn→R1,gi:Rn→R1,hi:Rn→R1。符号s.t.表示“受约束于”。
可行解是指满足所有约束条件的X。对于一个问题的可行解x*,如果存在x*的一个邻域,使得目标函数x*在处的值f(x*)优于该邻域中的其他可行解处的函数值,则称x*是问题的局部最优解。非线性规划分为如下几种类型:
第一种类型:无约束极值问题minf(x1,x2,…,xn),其中f(x1,x2,…,xn)是Rn上的可微函数。求解极值点的方法是:先求出如下n元非线性方程组
的解,然后对解集进行判定,看看是否是极值点。
第二种类型:具有等式约束的极值问题。
minf(x1,x2,…,xn)
s.t. hj(x1,x2,…,xn)=0,j=1,2,…, (2)
通常使用Lagrange乘子法来进行求解,即把问题转化成为求Lagrange函数
L(x1,x2,…,xn;v1,v2,…,vt)=fj(x1,x2,…,xn)-vjhj(x1,x2,…,xn)的无约束极值问题。
第三种类型:既有等式约束又有不等式约束的一般非线性规划问题(1)的形式。
显然,上述极值问题的求解都能够归结为非线性方程组求解,只有在特殊的情况才能手算出来。计算机的快速发展,使求解大规模最优化问题更加方便,最优化理论和方法基于计算机的进步也得以迅速发展。
2非线性规划模型的创建
数学建模课程是在上个世纪80年代进入我们国大学的,开设数学建模课程,是大学教育特别是大学教育改革的一个重要组成部分。每年举办的全国大学生数学建模竞赛更是吸引了众多的大学生参加,数学建模活动已在各大高校开展起来,不同层次和不同类型的大学生对数学建模的学习都有着极大的热情。数学建模是解决非线性规划问题的重要手段,接下来介绍如何通过建模解决非线性规划问题。
最优化问题所对应的模型具有如下结构:
第一是决策变量,根据考虑的问题选择合适的参数变量x1,x2,…,xn,让他们都选取实数值,一组值就能够构成一个方案。
第二是约束条件,根据变量的限制条件,用不等式或者等式可以表达成
gi(x1,x2,…,xn)≥0,i=1,2,…,m;hi(x1,x2,…,xn)=0,j=1,2,…,.
第三是目标函数,为了能够使得利润最大成本最低,一般引入极大化或者是极小化实值函数f(x1,x2,…,xn)。
因此,最优化问题可解释成决策变量在符合约束条件下进行求解目标函数的最优解。
注意到极大化目标函数f(x1,x2,…,xn)相当于极小化-f(x1,x2,…,xn)。采用向量记法,令x=(x1,x2,…,xn)T,并将约束条件写成集约数形式,即令
S={x|gi(x)≥0,i=1,2,…,m;hj(x)=0,j=1,2,…, }
则最优化问题一般地可表述为如下形式:
minf(x) (下转第75页)(上接第66页)
s.t. x∈S (3)
其中称x=(x1,x2,…,xn)T∈Rn是决策变量,f(x)是目标函数,S Rn为约束集或可行域,它是所有可行解即满足约束条件的点的集合。
3非线性规划问题的MATLAB程序实现
非线性规划的求解是比较困难的,下面介绍如何通过MATLAB来解决非线性规划问题。
MATLAB是Math Works公司开发的一款数学软件,是对科学与工程计算类的一种高级语言,它本身具有强大的编程效率。
MATLAB现有30多个工具箱,其中的优化工具箱是影响最大,使用广泛的一个,它的主要功能有:求解线性规划和二次规划,非线性函数的最小二乘,求解非线性方程等。
例如:应用MATLAB解非线性规划
minf(x)=ex1(4x12+2x22+4x1x2+2x2+1)
s.t. x1+x2=0
1.5+x1x2 x1 x2≤0
-x1x2 10≤0
解:先建立M文件 fun.m,定义目标函数:
function f=fun4(x);
f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
再建立M文件mycon.m定义非线性约束:
function [g,ceq]=mycon(x)
g=[x(1)+x(2);1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];
主程序youh.m为:
x0=[-1;1];A=[];b=[];Aeq=[1 1];beq=[0];vlb=[];vub=[];
[x,fval]=fmincon("fun",x0,A,b,Aeq,beq,vlb,vub,"mycon")
运算主程序得到最优解为(-1.2250,1.2250),最优目标函数值为1.8951。
4小结
非线性规划在军事、金融、生态工程等方面都有不可取代的作用。关于非线性规划的研究还在进一步发展中。本文主要介绍了非线性规划建模的步骤以及如何借助MATLAB进行计算,许多实际问题可以通过MATLAB优化工具箱求得最优解。
参考文献
[1] 徐翠薇.计算方法引论[M].北京:高等教育出版社,1999.
[2] 姜启源,邢文训.大学数学实验[M].北京:清华大学出版社,2005.
[3] 张志涌.精通MATLAB6.5版[M].北京:北京航空航天大学出版社,2003.
[4] 唐加福,汪定伟.一种求解非线性规划问题的改进遗传算法[J].东北大学学报,1997.
推荐访问: 建模 规划 程序