运用MATLAB解决优化问题的研究(四)运用MATLAB解决优化问题的研究(四)摘要在日常生活和实际工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学、合理的提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、运输调度、生产控制、经济规划、经济管理等并取得了显著地经济效益和社会效益。用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容:(1)建立数学模型即用数学语言来描述最优化问题模型中的数学关系式反应了最优化问题所要达到的目标和各种约束条件。(2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。最优化方法的发展很快,现在已经包含有多个分支,如线性规划、非线性规划、无约束最优化问题求解、有约束最优化问题求解、多目标规划等。关键词:优化方法;最优化技术;有约束条件;无约束条件;线性规划运用MATLAB解决优化问题的研究(四)USINGMATLABOPTIMIZATIONPROBLEMOFRESERCH(FOUR)ABSTRACTIndailylifeandinpracticalwork,peopleforthesamequestionoftenwillproposeseveralsolutions,andthroughvariousaspectsoftheargumentextractoptimalscheme.Anoptimizationmethodisspecializedstudyhowfrommultiplesolutionsinscientificandreasonableextracttheoptimalschemeofscience.Duetotheoptimizationproblemomnipresent,currentlyoptimizationmethodsintheapplicationandresearchesofreachesdeepintoproductionandresearchofeachdomain,suchascivilengineering,transportationscheduling,productioncontrol,economicplanning,economicmanagement,etcandhaveachievedremarkableeconomicbenefitsandsocialbenefits.Withoptimizationmethodtosolveoptimizationproblemoftechnology,calledthemostoptimizationtechnique,itcontainstwoaspectsofcontent:(1)Establishedthemathematicalmodelwhichmathematicallanguagetodescribethemathematicalrelationshipmodeloptimizationproblemofreactiontotheoptimizationproblemofgoalstoachieveandthatallconstraintconditions.(2)Mathematicssolvingmathematicalmodelbuiltgoodlater,therationalchoiceofoptimizationalgorithm.Anoptimizationmethodoffastdevelopment,nowalreadycontainsmultiplebranch,suchaslinearprogramming,nonlinearprogramming,unconstrainedoptimizationproblemsolving,haveconstrainedoptimizationproblemsolving,multi-objectiveprogramming,etc.运用MATLAB解决优化问题的研究(四)Keywords:optimizationmethod;theoptimumtechnology;abindingcondition;unconstrainedconditions;linearprogramming运用MATLAB解决优化问题的研究(四)目录1概述………………………..……………………………….……………………….11.1优化工具箱中的函数…………………………………………………………………11.2优化问题中涉及到的几类问题………………………………………………………..22优化问题的求解……………………………………………………………………...32.1线性规化问题……..…………………………………………………………..52.1.1基本数学原理…………………………………………...…………………….52.1.2相关函数介绍………….……………………………………………………62.1.3应用实例…………………………………………………………………….62.2无约束优化问题求解………........................................................................................72.2.1基本数学原理…………………………………………………………….…...72.2.2相关函数介绍…………………………………………………………………82.2.3应用实例………………………………………………..................................92.3有约束优化问题求解………………………………………………………………..102.3.1基本数学原理………………………………………………………………...112.3.2相关函数介绍………………………………………………………………...122.3.3应用实例……………………………………………………………………...13参考文献……………………………………………………………………………………...18附录…………………………………………………………………………………………...19运用MATLAB解决优化问题的研究(四)第1页共14页1优化问题求解的概述有了MATLAB这个强大的计算平台,既可以利用MATLAB优化工具(OptimizationToolbox)中的函数,又可以通过对算法编程实现相应的最优化计算。利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性非线性的最小二乘问题。另外该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。1.1优化工具箱中的函数优化工具箱中的函数包括下面几类:1.1.1最小化函数表1-1最小化函数表函数描述fgoalattain多目标达到问题fminbnd有边界的标量非线性fmincon有约束的非线性最小化fminimax最大最小化fminsearchfminunc无约束非线性最小化fseminf半无限问题linprog线性课题运用MATLAB解决优化问题的研究(四)第2页共14页1.1.2方程求解函数表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基本数学原理运用MATLAB解决优化问题的研究(四)第3页共14页线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。线性规划问题的标准形式为:其中f、x、b、beq、lb、ub、为向量,A、Aeq为矩阵。其它形式的线性规划问题都可以经过适当变化为此标准形式。在MATLAB6.0版中,线性规划问题(LinearProgramming)已用函数linprog取代了MATLAB5.x版中的lp函数。当然,由于版本的向下兼容性,一般来说,低版本中的函数在6.0版中任可使用。线性规划的标准形式要求目标函数最小化,约束条件取等式,变量非负。不符合这几个条件的线性模型要首先转化成标准形。线性规划的求解方法主要是单纯形法(SimpleMethod),该法由Dantzig于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))≥…。当某个基本可行解再也不能被其它基本可行解改进时,它就是所求的最优解。Matlab优化工具箱中才用的是投影法,它是单纯形法的一种变种。2.1.2相关函数介绍函数linprog格式x=linprog(f,A,b,Aeq,beq)x=linprog(f,A,b,Aeq,beq,lb,ub)运用MATLAB解决优化问题的研究(四)第4页共14页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,lambda]=linprog(...)说明x=linprog(f,A,b)求解问题minf'*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,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处的拉格朗日乘子。它有