1 绪 论
1.1 课题的背景 1.1.1 Matlab简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。
1.1.2 非线性规划(nonlinear programming)
非线性规划是具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。非线性规划是20世纪50年代才开始形成的一门新兴学科。70年代又得到进一步的发展。非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用,为最优设计提供了有力的工具。
在经营管理、工程设计、科学研究、军事指挥等方面普遍地存在着最优化问题。例
如:如何在现有人力、物力、财力条件下合理安排产品生产,以取得最高的利润;如何设计某种产品,在满足规格、性能要求的前提下,达到最低的成本;如何确定一个自动控制
的某些参数,使系统的工作状态最佳;如何分配一个动力系统中各电站的负荷,在保证一定指标要求的前提下,使总耗费最小;如何安排库存储量,既能保证供应,又使储存
费用最低;如何组织货源,既能满足顾客需要,又使资金周转最快等。对于静态的最优化
问题,当目标函数或约束条件出现未知量的非线性函数,且不便于线性化,或勉强线性化后会招致较大误差时,就可应用非线性规划的方法去处理。
具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。非线性规划研究一个 n元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。目标函数和约束条件都是线性函数的情形则属于线性规划。 1.2 课题的研究方法
对于一个实际问题,在把它归结成非线性规划问题时,一般要注意如下几点:
(1)确定供选方案:首先要收集同问题有关的资料和数据,在全面熟悉问题的基础上,确认什么是问题的可供选择的方案,并用一组变量来表示它们。 (2)提出追求目标:经过资料分析,根据实际需要和可能,提出要追求极小化或极大化的目标。并且,运用各种科学和技术原理,把它表示成数学关系式。 (3)给出价值标准:在提出要追求的目标之后,要确立所考虑目标的“好”或“坏”的价值标准,并用某种数量形式来描述它。
(4)寻求限制条件:由于所追求的目标一般都要在一定的条件下取得极小化或极大化效果,因此还需要寻找出问题的所有限制条件,这些条件通常用变量之间的一些不等式或等式来表示。 1.3 课题的目的
(1)熟练掌握matlab程序的基本操作 (2)为数学建模打好基础
(3)学会解决实际问题中的最优化问题
1.4 课题的研究内容
1.4.1对实际规划问题作定量分析,必须建立数学模型。
建立数学模型首先要选定适当的目标变量和决策变量,并建立起目标变量与决策变量
之间的函数关系,称之为目标函数。然后将各种限制条件加以抽象,得出决策变量应满足的一些等式或不等式,称之为约束条件。非线性规划问题的一般数学模型可表述为求未知量x1,x2,…,xn,使满足约束条件:
gi(x1,?,xn)?0 i=1,?,m
hj(,?x,1=x n=)?0 j 并使目标函数f(x1,?,xn)达到最小值(或最大值)。其中f,诸gi和诸hj都是定义在n维向量空间Rn的某子集D(定义域)上的实值函数,且至少有一个是非线性函数。 1.4.2.无约束最优化法
指寻求 n元实函数f在整个n维向量空间Rn上的最优值点的方法。这类方
法的意义在于:虽然实用规划问题大多是有约束的,但许多约束最优化方法可将有约束问题转化为若干无约束问题来求解。
无约束最优化方法大多是逐次一维搜索的迭代算法。这类迭代算法可分为两类。一类需要用目标函数的导函数,称为解析法。另一类不涉及导数,只用到函数值,称为直接法。这些迭代算法的基本思想是:在一个近似点处选定一个有利搜索方向,沿这个方向进行一维寻查,得出新的近似点。然后对新点施行同样手续,如此反复迭代,直到满足预定的精度要求为止。根据搜索方向的取法不同,可以有各种算法。属于解析型的算法有:①梯度法:又称最速下降法。这是早期的解析法,收敛速度较慢。②牛顿法:收敛速度快,但不稳定,计算也较困难。③共轭梯度法:收敛较快,效果较好。④变尺度法:这是一类效率较高的方法。其中达维登-弗莱彻-鲍威尔变尺度法,简称 DFP法,是最常用的方法。属于直接型的算法有交替方向法(又称坐标轮换法)、模式搜索法、旋转方向法、鲍威尔共轭方向法和单纯形加速法等。 1.4.3.约束最优化法
指前述一般非线性规划模型的求解方法。常用的约束最优化方法有 4种。①拉格朗日乘子法:它是将原问题转化为求拉格朗日函数的驻点。②制约函数法:又称系列无约束最小化方法,简称SUMT法。它又分两类,一类叫惩罚函数法,或称外点法;另一类叫障碍函数法,或称内点法。它们都是将原问题转化为一系列无约束问题来求解。③可行方向法:
这是一类通过逐次选取可行下降方向去逼近最优点的迭代算法。如佐坦迪克法、弗兰克-沃尔夫法、投影梯度法和简约梯度法都属于此类算法。④近似型算法:这类算法包括序贯线性规划法和序贯二次规划法。前者将原问题化为一系列线性规划问题求解,后者将原问题化为一系列二次规划问题求解。
1. 课题的设计计算
2 论文主体
(1)某公司专门生产储藏用容器,订货合同要求,该公司制造一种敞口的
长方体容器,容积恰好为12立方米,该种容器的底必须为正方形,容器总重量不超过68公斤。已知用做容器四壁的材料每平方米10元,重3公斤;用做容器底的材料每平方米20元,重2公斤。试问制造该容器所需的最小费用是多少?列出问题的数学模型,并求其解。
解:由题易得俩个变量底面边长和高
设该容器底面边长是x1米,高度为x2米 非性约束条件:
容积恰好为12立方米:x12*x2?12
容器总重量不超过68公斤: 3*x1*x2?2*x12?68
求解问题制造该容器所需的最小费用: 10*x1*x2?20*x12
(2)某工厂向用户提供发动机,按合同规定,其交货数量和日期是:第一季末交40台,第二季末交60台,第三季末交80台。工厂的最大生产能车为每季100台,每季的生产费用是f(x)?50x?0.2x2(元),此处x为该季生产发动机的台数。若工厂生产的多,多余的发动机可移到下季向用户交货,这样,工厂就需支付存贮费,每台发动机每季的存贮费为4元。问该厂每季应生产多少台发动机,才能既满足交货合同,又使工厂的工费的费用最少(假设第一季开始时发动机无存货)。列出问题的数学模型,并求其解。
解:设该厂第一季度应生产x1台
为了满足要求至少生产40台,最多可以生产100台 40?x1?100 设该厂第二季度应生产x2台
第二季度显然受到第一季度的生产量所限制
在第二季末为了满足要求至少生产了100台,至多不能超过180台