欢迎来到天天文库
浏览记录
ID:52350633
大小:361.01 KB
页数:7页
时间:2020-03-26
《基于MATLAB环境下实现最优化方法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于MTLAB环境下实现最优化方法——阻尼牛顿法1优化设计法优化设计(OptimalDesign)是现代先进的设计方法,这种设计方法是把数学规划理论与计算方法应用于实际设计中,按照预定的目标,借助计算机的运算寻求最优设计方案的有关参数,从而获得最好的技术经济效果。优化设计反映出人们对于设计规律这一客观世界认识的深化。设计上的“最优值”是指一定条件影响下所能得到的最佳设计值。最优值是一个相对的概念,在大多数的情况下,可以用最大值或最小值来表示。概括起来,优化设计的工作包括以下两部分内容:(1)将实际的设计问题的物理模型抽象为数学模型(用数学公式来表示)。建立数学模型时要选取设计变量,列出目标
2、函数,并且给出约束条件。目标函数是设计问题所需求的最优指标与设计变量之间的函数关系式。(2)选取适当的最优化方法,求解数学模型。也可归结为在给定的条件(即约束条件)下,求出目标函数的极值或者最优值问题。最优化问题的一般形式为:其中为决策变量,f(x)为目标函数,为约束集或可行域。如果,则上述问题称为无约束最优化问题,否则,称为约束最优化问题。对于无约束最优化问题,也已经提出了不少数值求解方法。例如共扼梯度法、牛顿法、Guass牛顿法、牛顿型方法、拟牛顿法、非精确牛顿法、广义拟牛顿法等。2牛顿法与阻尼牛顿法牛顿法是求解无约束优化问题最古老的算法之一。但到目前为止,它的改进形式仍不失为最有效的
3、算法之一,因为它最大的优点是收敛速度比较快。由于一个函数在一点附近的性态与二次函数很接近,所以往往通过建立二次摸型来构造有效的算法,最直接而自然的二次模型,显然就是它的泰勒展开式中只到二次项的部分。由此,牛顿法的基本思想是:设已知f(x)的极小点x*的一个近似,在附近将f(x)作泰勒展开有:其中:若正定,则有极小点存在,设其为,并令便得到f(x)的极小点的一个新的近似,由于为二次凸函数,它的极小点很容易求,事实上,令则有:当用迭代式时,且其中由上式定义时,这种迭代便称为牛顿迭代,而算法称为牛顿法。由牛顿法的导出过程可知,牛顿法面临两个主要的困难。一是Hessian矩阵不正定。这时二次模型不
4、一定有极小点,甚至没有平稳点。当不定时,二次模型函数是无界的。为了克服这一困难,人们提出了若干修正措施。Goldstein和Price提出一种修正牛顿办法:当非正定时,采用最速下降方向。Giu和Murray提出了一个数值稳定的处理方法,从的修改Cholesky分解形式。牛顿法的另一困难是,它在实际执行的过程中,每次迭代都需要精确计算Hessian矩阵的值,这就需要大量的计算,有时甚至会导致数值实验的失败。后来,有人提出能否定义一种牛顿型方法来避免每次迭代都计算Hessian阵的值。这样就导致了人们对经典牛顿法的修正。其中阻尼牛顿法(修正牛顿法)具有一定的代表性。其基本思想是:为了改变原始牛
5、顿法定步长的搜索方式,以牛顿方向为搜索方向进行一维最优化搜索,求该方向上的最优步长因子,即迭代式改为:当用迭代式时,这种迭代便称为阻尼牛顿迭代,而算法称为阻尼牛顿法,称为阻尼因子。显然,阻尼牛顿法仍然保持了原始牛顿法的二次收敛性质,同时对于非二次函数又具有函数值稳定下降的特点。3MATLAB介绍自1994年美国MathWorks公司推出MATLAB以来,目前MATLAB己发展成为国际上最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得MATLAB在许多科学领域中成为计算机辅助设计利分析、算法研究和应用开
6、发的基本功聚合首选平台。MATLAB最初用于自动控制系统的辅助设计,而后采用了开放性开发的思想,不断吸收各学科领域所开发的实用程序,形成了一套规模大、覆盖面积广的工具箱,包括信号处理、工程优化、图像处理、小波分析、系统识别、通信仿真、模糊控制、神经网络、统计分析等许多现代工程技术学科的内容,它的应用范围涵盖了当今所有的工业、电子、医疗、建筑等各领域。对于优化工具箱(OptimizationToolbox),是将工程上的优化方法进行编译并设定为固定函数,使人们从繁琐的程序代码中解放出来,其丰富的函数使开发者无需重复编程,用户只需要按照要求进行调用相应函数即可,使得整个过程简单、直接。本文将分
7、别按两种方式进行编程计算案例,一种是按照牛顿法的运算法则进行编程,另一种是直接调用优化工具箱函数计算,将体现出优化工具箱极大的优势。4程序设计思路和程序模块根据牛顿法和阻尼牛顿法的计算法则,并依照Matlab的特点,阻尼牛顿法程序设计思路一般步骤如下:(1)根据目标函数,任意选取初始迭代点,给定计算精度ε,并初始化k=0;(2)判断迭代次数是否超出设定迭代次数,若超出迭代次数,则跳出迭代运算,返回迭代次数、最终迭代点和该
此文档下载收益归作者所有