机械优化设计的MATLAB实现

上传人:飞*** 文档编号:51507221 上传时间:2018-08-14 格式:PPT 页数:65 大小:1.71MB
返回 下载 相关 举报
机械优化设计的MATLAB实现_第1页
第1页 / 共65页
机械优化设计的MATLAB实现_第2页
第2页 / 共65页
机械优化设计的MATLAB实现_第3页
第3页 / 共65页
机械优化设计的MATLAB实现_第4页
第4页 / 共65页
机械优化设计的MATLAB实现_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《机械优化设计的MATLAB实现》由会员分享,可在线阅读,更多相关《机械优化设计的MATLAB实现(65页珍藏版)》请在金锄头文库上搜索。

1、MATLAB在机械优化设计中的应用湖南农业大学 工学院 2007年9月主讲:*绪 论1.1 MATLAB系统简介MATLAB 名字由 MATrix 和 LABoratory 两词的前三个字母组合而成。那 是 20 世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的 Cleve Moler 教授出于减轻学生编程负担的动机,为学生设计了一组调用 LINPACK 和 EISPACK 库程序的“通俗易用”的接口,此即用 FORTRAN 编写的 萌芽状态的 MATLAB 。 经几年的校际流传,在 Little 的推动下,由 Little 、 Moler 、 Steve Bangert 合作,于

2、 1984 年成立了 MathWorks 公 司,并把 MATLAB 正式推向市场。从这时起, MATLAB 的内核采用 C 语言编写 ,而且除原有的数值计算能力外,还新增了数据图视功能。MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行的 可靠性,使原先控制领域里的封闭式软件包(如英国的 UMIST ,瑞典的 LUND 和 SIMNON ,德国的 KEDDC )纷纷淘汰,而改以 MATLAB 为平台加以重建 。在时间进入 20 世纪九十年代的时候, MATLAB 已经成为国际控制界公认的 标准计算软件。 到九十年代初期,在国际上 30 几个数学类科技应用软件中, MATLA

3、B 在数值计算方面独占鳌头,而 Mathematica 和 Maple 则分居符号计算 软件的前两名。 Mathcad 因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。 在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与 数字通信、时间序列分析、动态系统仿真等课程的教科书都把 MATLAB 作为内 容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里, MATLAB 是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。 在国际学术界, MATLAB 已经被确认为准确、可靠的科学计算标准软件。在许 多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到 MAT

4、LAB 的应 用。 在设计研究单位和工业部门, MATLAB 被认作进行高效研究、开发的首选 软件工具。如美国 National Instruments 公司信号测量、分析软件 LabVIEW , Cadence 公司信号和通信分析设计软件 SPW 等,或者直接建筑在 MATLAB 之上 ,或者以 MATLAB 为主要支撑。又如 HP 公司的 VXI 硬件, TM 公司的 DSP , Gage 公司的各种硬卡、仪器等都接受 MATLAB 的支持。MATLAB具有以下几个特点:功能强大的数值运算功能 强大的图形处理能力 高级但简单的程序环境 丰富的工具箱 优化工具箱中的所有函数都对应一个MATL

5、AB 6.5 的.M文件(关于.M文件请查 阅相关MATLAB 6.5 文献),这些.M通过使用MATLAB 6.5 基本语句实现了具体的 优化算法.可以在 MATLAB 6.5 命令窗口键入命令:type function_name,来查看 相应函数的代码.1.2 优化工具箱的工程应用步骤当量化地求解一个实际的最优化问题时,首先要把这个问题转化为一个数学问题 .建立数学模型:然后对建立的数学模型进行具体分析选择合适的优化算法: 最后根据选定的优化算法,编写计算程序进行求解用MATLAB 6.优化工具 箱解决实际应用问题可以概括为以下三个步骤:(1) 根据所提出的最优化问题,建立最优化问题的数

6、学模型确定变量,列出约 束条件和目标函数(2) 对所建立的模型进行具体分析和研究选择合适的最优化求解方法 (3) 根据最优化方法的算法,列出程序框图,选择优化函数和编写语言程序,用 计算机求出最优解利用MATLAB的优化工具箱,可以求解线性规划,非线性规划和多目标规划问 题。具体而言,包括线性,非线性最小化,最大最小化,二次规划,半无限问 题,线性,非线性方程化,方程求解,曲线拟合,二次规划等问题中大型课题 的求解方法,为优化方法在工程中的实际应用提供了更方便,快捷的途径。1.3 优化问题的工程背景随着生产,经济,技术的发展,工程技术,管理人才在实际工作中常常会面临 这类问题:在工程设计中,怎

7、样的分配方案既能满足各方面的基本要求,又能降低 成本;在资源配中,怎样的分配既能满足各方面的基本要求,又能获得好的经济效 益;在生产计划安排中,选择怎样的计划才能提高产值和利润;在原料配比问题 中,怎样确定各种万分的比例才能提高质量,降低成本;在城建规划中,怎样安排 工厂,机关,学校,商店,医院,住宅和其它单位的合理布置,才能方面群众,有 利于城市各行各行的发展这一类问题的共同点就是迁出最合理,达到事先预定的 最优目标的方案,这就是工程问题最优化问题最优化方法发展很快,包含多个分支,如线性规划,整数规划,非线性规划,动 态规划,多目标规划等。2.1 线性规划问题与MATLAB实现线性规划问题是

8、目标函数和约束条件均为线性函数的问题,MATLAB解决的线性 规划问题的标准形式为:min f(x) x Rs.t. A.xbAeq.x=beqlb x ub 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。 其它形式的线性规划问题都可经过适当变换化为此标准形式。 在MATLAB6.5版中,线性规划问题(Linear Programming)已用函数linprog取 其它形式的线性规划问题都可经过适当变换化为此标准形式。 函数 linprog 调用格式 x = linprog(f,A,b) %求min f=f(x) x Rs.t. A.xb 线性规划的最优解。 x = linpro

9、g(f,A,b,Aeq,beq) %等式约束Aeq.x=beq,若没有不等式约束,则A= ,b= 。 x = linprog(f,A,b,Aeq,beq,lb,ub) %指定x的范围lbxub ,若没有等式约束Aeq.x=beq , 则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() % 返回目标函数最优值,即fval= f (x)。 x,fval,lambda,exitfla

10、g = linprog() % lambda为解x的Lagrange乘子。 x, favl,lambda,fval,exitflag = linprog() % exitflag为终止迭代的错误条件。 x,fval, lambda,exitflag,output = linprog() % output为关于优化的一些信息 说明 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最 大数字,exitflag1g(1)=2*x(1); %用提供的梯度g使函数最小化g(2)=50*x(2); end 输入下列系数 options(6)=1; options(7)=

11、1; %采用DFP变尺度方法立方插值法 options=optimset(Display,iter,LargeScale,on,GradObj,on); %设置 优化参数 x0=2,2; x,fval,exitflag,output,grad=fminunc(jxyh4_1fun,x0,options) 结果为: x = 1.0e-013 *0.1155 0.0044 fval = 1.3825e-028 exitflag = 1output = iterations: 1funcCount: 2cgiterations: 1firstorderopt: 2.3093e-014algorith

12、m: large-scale: trust-region Newtonmessage: 1x137 chargrad =1.0e-013 *0.23090.2220Norm of First-order Iteration f(x) step optimality CG-iterations0 104 100 1 1.38248e-028 2.82843 2.31e-014 1例.2 求下面的优化问题(变尺度法) 对函数f(x)=x12+2x22-4x1-2x1x2,当给定初值x0=1,1,求其最小值x.编一个M文件=jxyh4_2fun (x).m,返回x处的函数值f. function y

13、=jxyh4_2fun(x) y=x(1)2+2*x(2)2-4*x(1)-2*x(1)*x(2); %目标函数的M文件 输入下列系数 options(6)=0; options(7)=0; %采用DFP方法混合插值 法 options=optimset(Display,iter,LargeScale,off,); %设置优化参数 x0=1,1; x,fval,exitflag,output=fminunc(jxyh4_2fun,x0,options) 结果为: x = 4.0000 2.0000 fval = -8.0000 exitflag = 1 output = iterations:

14、 3funcCount: 12stepsize: 1firstorderopt: 2.3842e-007algorithm: medium-scale: Quasi-Newton line searchmessage: Optimization terminated: relative infinity-norm of gradient less than options.TolFun.Iteration Func-count f(x) Step-size infinity-norm0 3 -3 41 6 -5.5 0.25 2 2 9 -6.4 1 1.6 3 12 -8 1 2.38e-007 例4.3 求使方程的最小化当给定初值x0=pi/3,pi/3; 求其最小值x 编一个M文件y=j

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号