ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:36.91KB ,
资源ID:12847038      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12847038.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运用MATLAB解决优化问题的研究.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运用MATLAB解决优化问题的研究.docx

1、运用MATLAB解决优化问题的研究运用MATLAB解决优化问题的研究(四)摘要 在日常生活和实际工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学、合理的提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、运输调度、生产控制、经济规划、经济管理等并取得了显著地经济效益和社会效益。用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容: (1)建立数学模型 即用数学语言来描述最优化问题模型中的数学关系式反应了最优化问题所要达到的目标和各种约束

2、条件。(2)数学求解 数学模型建好以后,选择合理的最优化方法进行求解。最优化方法的发展很快,现在已经包含有多个分支,如线性规划、非线性规划、无约束最优化问题求解、有约束最优化问题求解、多目标规划等。关键词:优化方法;最优化技术;有约束条件;无约束条件;线性规划USING MATLAB OPTIMIZATION PROBLEM OF RESERCH (FOUR)ABSTRACTIn daily life and in practical work, people for the same question often will propose several solutions, and thr

3、ough various aspects of the argument extract optimal scheme.An optimization method is specialized study how from multiple solutions in scientific and reasonable extract the optimal scheme of science. Due to the optimization problem omnipresent, currently optimization methods in the application and r

4、esearches of reaches deep into production and research of each domain, such as civil engineering, transportation scheduling, production control, economic planning, economic management, etc and have achieved remarkable economic benefits and social benefits. With optimization method to solve optimizat

5、ion problem of technology, called the most optimization technique, it contains two aspects of content:(1)Established the mathematical model which mathematical language to describe the mathematical relationship model optimization problem of reaction to the optimization problem of goals to achieve and

6、 that all constraint conditions.(2)Mathematics solving mathematical model built good later, the rational choice of optimization algorithm.An optimization method of fast development, now already contains multiple branch, such as linear programming, nonlinear programming, unconstrained optimization pr

7、oblem solving, have constrained optimization problem solving, multi-objective programming, etc.Key words: optimization method; the optimum technology; a binding condition; unconstrained conditions; linear programming 1 概述.1 1.1 优化工具箱中的函数1样张41.2优化问题中涉及到的几类问题.22 优化问题的求解.32.1 线性规化问题. .52.1.1基本数学原理.52.1

8、.2相关函数介绍 .62.1.3 应用实例.62.2 无约束优化问题求解.72.2.1 基本数学原理.72.2.2 相关函数介绍82.2.3 应用实例.9 2.3 有约束优化问题求解.10 2.3.1 基本数学原理.11 2.3.2 相关函数介绍.12 2.3.3 应用实例.13参考文献.18附录.19 1 优化问题求解的概述 有了MATLAB这个强大的计算平台,既可以利用MATLAB优化工 具(Optimization Toolbox)中的函数,又可以通过对算法编程实现相应的最优化计算。利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小

9、化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性非线性的最小二乘问题。另外该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。1.1 优化工具箱中的函数优化工具箱中的函数包括下面几类:1.1.1 最小化函数表1-1 最小化函数表函 数描 述fgoalattain多目标达到问题fminbnd有边界的标量非线性fmincon有约束的非线性最小化fminimax最大最小化fminsearchfminunc无约束非线性最小化fseminf半无限问题linprog线性课题 样张61.1.2

10、 方程求解函数表1-2 方程求解函数表函数描述线性方程求解fsolve非线性方程求解fzero标量非线性方程求解1.1.3 最小二乘(曲线拟合)函数表1-3 最小二乘曲线拟合函数表函数描述线性最小二乘lsqlin有约束线性最小二乘lsqcurvefit非线性曲线拟合lsqnonlin非线性最小二乘lsqnonneg非负线性最小二乘1.2 优化问题中的涉及到的几类问题:(1)线性规划问题(2)无约束最优化问题求解(3)有约束最优化问题求解(4)最大最小化问题2. 优化问题的求解2.1 线性规划问题2.1.1 基本数学原理线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于

11、军事、经济、工业、农业、教育、商业和社会科学等许多方面。线性规划问题的标准形式为:其中f、x、b、beq、lb、ub、为向量,A、Aeq为矩阵。其它形式的线性规划问题都可以经过适当变化为此标准形式。在MATLAB6.0版中,线性规划问题(Linear Programming)已用函数linprog取代了MATLAB5.x版中的lp函数。当然,由于版本的向下兼容性,一般来说,低版本中的函数在6.0版中任可使用。线性规划的标准形式要求目标函数最小化,约束条件取等式,变量非负。不符合这几个条件的线性模型要首先转化成标准形。线性规划的求解方法主要是单纯形法(Simple Method),该法由Dant

12、zig于1947年提出,以后经过多次改进。单纯形法是一种迭代算法,它从所有基本可行解的一个较小部分中通过迭代过程选出最优解。其迭代过程的一般描述为:(1) 将线性规划化为典范形式,从而可以得到一个初始基本可行解x(0)(初始顶点),将它作为迭代过程的出发点,其目标值为z(x(0)。(2) 寻找一个基本可行解x(1),使z(x(1)z(x(0)。方法是通过消去法将产生x(0)的典范形式化为产生x(1)的典范形式。(3). 继续寻找较好的基本可行解x(2),x(3),使目标函数值不断改进,即z(x(1)z(x(2) z(x(3) 。当某个基本可行解再也不能被其它基本可行解改进时,它就是所求的最优解

13、。Matlab优化工具箱中才用的是投影法,它是单纯形法的一种变种。2.1.2 相关函数介绍函数 linprog格式 x = linprog(f,A,b,Aeq,beq)x = linprog(f,A,b,Aeq,beq,lb,ub)x = linprog(f,A,b,Aeq,beq,lb,ub,x0)x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)x,fval = linprog(.)x,fval,exitflag = linprog(.)x,fval,exitflag,output = linprog(.)x,fval,exitflag,output,l

14、ambda = linprog(.)说明 x = linprog(f,A,b)求解问题 min f*x,约束条件为A*x b。x = linprog(f,A,b,Aeq,beq)求解上面的问题,但增加等式约束,即Aeq*x = beq。若没有不等式存在,则令A=、b=。x = linprog(f,A,b,Aeq,beq,lb,ub)定义设计变量x的下界lb和上界ub,使得x始终在该范围内。若没有等式约束,令Aeq=、beq=。x = linprog(f,A,b,Aeq,beq,lb,ub,x0)设置初值为x0。该选项只适用于中型问题,缺省时大型算法将忽略初值。x = linprog(f,A,b

15、,Aeq,beq,lb,ub,x0,options)用options指定的优化参数进行最小化。x,fval = linprog(.) 返回解x处的目标函数值fval。x,lambda,exitflag = linprog(.) 返回exitflag值,描述函数计算的退出条件。x,lambda,exitflag,output = linprog(.) 返回包含优化信息的输出变量output。x,fval,exitflag,output,lambda = linprog(.) 将解x处的拉格朗日乘子返 回函数值。变量lambda参数lambda参数是解x处的拉格朗日乘子。它有以下一些属性: lam

16、bda.lower lambda的下界。 lambda.upper lambda的上界。 lambda.ineqlin lambda的线性不等式。 lambda.eqlin lambda的线性等式。2.1.3 应用实例例 1 工作人员计划安排问题某昼夜服务的公共交通系统每天各时间段(每4小时为一个时间段)所需的值班人数如表 所示,这些值班人员在某一时段开始上班后要连续工作8个小时(包括轮流用膳时间),问该公交系统至少需要多少名工作人员才能满足值班的需要?表3-1 各时段所需值班人数表班 次时 间 段所 需 人 数16:0010:0060210:0014:0070314:0018:0060418

17、:0022:0050522:002:002062:006:0030设xi为第i个时段开始上班的人员数,据题意建立下面的数学模型:需要对前面六个约束条件进行形式变换,是不等式为非正不等式。只需要在不等式两侧取负即可。首先输入下列系数:f = 1;1;1;1;1;1;A=-1 0 0 0 0 -1-1 -1 0 0 0 00 -1 -1 0 0 00 0 -1 -1 0 00 0 0 -1 -1 00 0 0 0 -1 -1;b=-60;-70;-60;-50;-20;-30; lb = zeros(6,1);然后调用linprog函数:x,fval,exitflag,output,lambda

18、= linprog(f,A,b,lb);x =41.917628.082435.049414.95069.860620.1394fval =150.0000exitflag =1可见,只要六个时段分别安排42人、28人、35人、15人、10人和20人就可以满足值班的需要。共计150人。计算收敛。2.2 无约束优化问题求解2.2.1 基本数学原理无约束线最优化问题的一般描述为其中,该数学表示的含义亦即求取一组x,使得目标函数f(x)为最小,故这样的问题又称为最小化问题。在实际应用中,许多科学研究和工程计算问题都可以归结为一个最小化问题,如能量最小、时间最短但呢个。2.2.2 相关函数介绍(1)函

19、数 fminbnd格式 x = fminbnd(fun,x1,x2)x = fminbnd(fun,x1,x2,options)x = fminbnd(fun,x1,x2,options,P1,P2,.)x,fval = fminbnd(.)x,fval,exitflag = fminbnd(.)x,fval,exitflag,output = fminbnd(.)说明 fminbnd 求取固定区间内单变量函数的最小值。x = fminbnd(fun,x1,x2)返回区间x1,x2上fun参数描述的标量函数的最小值x。x = fminbnd(fun,x1,x2,options)用options

20、参数指定的优化参数进行最小化。x = fminbnd(fun,x1,x2,options,P1,P2,.)提供另外的参数P1,P2等,传输给目标函数fun。如果没有设置options选项,则令options=。x,fval = fminbnd(.)返回解x处目标函数的值。x,fval,exitflag = fminbnd(.)返回exitflag值描述fminbnd函数的退出条件。x,fval,exitflag,output = fminbnd(.)返回包含优化信息的结构输出。(2)函数 fminsearch格式 x = fminsearch(fun,x0)x = fminsearch(fun

21、,x0,options)x = fminsearch(fun,x0,options,P1,P2,.)x,fval = fminsearch(.)x,fval,exitflag = fminsearch(.)x,fval,exitflag,output = fminsearch(.)说明 fminsearch 求解多变量无约束函数的最小值。该函数常用于无约束非线性最优化问题。x = fminsearch(fun,x0) 初值为x0,求fun函数的局部极小点x。x0可以是标量、向量或矩阵。x = fminsearch(fun,x0,options)用options参数指定的优化参数进行最小化。x

22、= fminsearch(fun,x0,options,P1,P2,.) 将问题参数p1、p2等直接输给目标函数fun,将options参数设置为空矩阵,作为options参数的缺省值。x,fval = fminsearch(.)将x处的目标函数值返回到fval参数中。x,fval,exitflag = fminsearch(.)返回exitflag值,描述函数的退出条件。x,fval,exitflag,output = fminsearch(.)返回包含优化信息的输出参数output。(3)函数 fminunc格式 x = fminunc(fun,x0)x = fminunc(fun,x0,

23、options)x = fminunc(fun,x0,options,P1,P2,.)x,fval = fminunc(.)x,fval,exitflag = fminunc(.)x,fval,exitflag,output,grad = fminunc(.)x,fval,exitflag,output,grad,hessian = fminunc(.)说明 fminunc 给定初值,求多变量标量函数的最小值。常用于无约束非线性最优化问题。x = fminunc(fun,x0)给定初值x0,求fun函数的局部极小点x。x0可以是标量、向量或矩阵。x = fminunc(fun,x0,optio

24、ns)用options参数中指定的优化参数进行最小化。x = fminunc(fun,x0,options,P1,P2,.)将问题参数p1、p2等直接输给目标函数fun,将options参数设置为空矩阵,作为options参数的缺省值。x,fval = fminunc(.)将解x处目标函数的值返回到fval参数中。x,fval,exitflag = fminunc(.)返回exitflag值,描述函数的输出条件。x,fval,exitflag,output = fminunc(.)返回包含优化信息的结构输出。x,fval,exitflag,output,grad = fminunc(.)将解x

25、处fun函数的梯度值返回到grad参数中。x,fval,exitflag,output,grad,hessian = fminunc(.)将解x处目标函数的Hessian矩阵信息返回到hessian参数中。2.2.3 应用实例例 2 求 的最小值。 fun=3*x(1)2+2*x(1)*x(2)+x(2)2; x0=1 1; x,fval,exitflag,output,grad,hessian=fminunc(fun,x0)结果为:x =1.0e-006 *0.2541 -0.2029fval =1.3173e-013exitflag =1output =iterations: 8funcC

26、ount: 27stepsize: 1firstorderopt: 1.1633e-006algorithm: medium-scale: Quasi-Newton line searchgrad =1.0e-005 *0.11630.0087hessian =6.0000 2.00002.0000 2.0000或用下面的方法: fun=inline(3*x(1)2+2*x(1)*x(2)+x(2)2)fun =Inline function:fun(x) = 3*x(1)2+2*x(1)*x(2)+x(2)2 x0=1 1; x=fminunc(fun,x0)x =1.0e-006 *0.2

27、541 -0.20292.3 有约束优化问题求解2.3.1 基本数学原理有约束最优化问题的一般描述为其中,该数学表示的含义亦即求取一组x,使得目标函数f(x)为最小,且满足约束条件G(x) 0。记号s.t.是英文subject to 的缩写,表示x要满足后面的约束条件。约束条件可以进一步细化为:(1) 线性不等式约束: 。(2) 线性等式约束: 。(3) 非线性不等式约束: 。(4) 非线性等式约束: 。(5) x的下界和上界: 。MATLAB最优化工具箱提供了一个fmincon函数,专门用于求解各种约束下的最优化问题。2.3.2 相关函数介绍函数 fmincon格式 x = fmincon(

28、fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2, .)x,fval = fmincon(.)x,fval,exitflag = fmincon(.)x,fval,exitflag,output = fmincon(.)x,fval,exitflag,output,lambda = fmincon(.)x,fval,exitflag,output,lambda,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1