机械优化设计的MATLAB实现.ppt

上传人:文库蛋蛋多 文档编号:2219559 上传时间:2023-02-01 格式:PPT 页数:65 大小:1.71MB
返回 下载 相关 举报
机械优化设计的MATLAB实现.ppt_第1页
第1页 / 共65页
机械优化设计的MATLAB实现.ppt_第2页
第2页 / 共65页
机械优化设计的MATLAB实现.ppt_第3页
第3页 / 共65页
机械优化设计的MATLAB实现.ppt_第4页
第4页 / 共65页
机械优化设计的MATLAB实现.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《机械优化设计的MATLAB实现.ppt》由会员分享,可在线阅读,更多相关《机械优化设计的MATLAB实现.ppt(65页珍藏版)》请在三一办公上搜索。

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

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

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

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

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

6、择合适的最优化求解方法(3)根据最优化方法的算法,列出程序框图,选择优化函数和编写语言程序,用计算机求出最优解 利用MATLAB的优化工具箱,可以求解线性规划,非线性规划和多目标规划问题。具体而言,包括线性,非线性最小化,最大最小化,二次规划,半无限问题,线性,非线性方程化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便,快捷的途径。,1.3 优化问题的工程背景随着生产,经济,技术的发展,工程技术,管理人才在实际工作中常常会面临这类问题:在工程设计中,怎样的分配方案既能满足各方面的基本要求,又能降低成本;在资源配中,怎样的分配既能满足各方面的基

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

8、 R s.t.A.xb Aeq.x=beq lb 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=linprog(f,A,b,Aeq,beq)%等式约束Aeq.x=beq,若没有不等式约束,则A=,b=。x=linprog(f,A,b,

9、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,exitflag=linprog()%lambda为解x的Lagrange乘子。x,favl,lambda,fval,exitflag=linprog()%exitflag为终止迭代的错误条

10、件。x,fval,lambda,exitflag,output=linprog()%output为关于优化的一些信息说明 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag0表示函数不收敛于解x;若lambda=lower 表示下界lb,lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterati

11、ons表示PCG迭代次数。例 求下面的优化问题(P95),MATLAB求解程序清单为:首先输入下列系数f=-60;-120;A=9,4;3,10;4,5;b=360,300,200;lb=zeros(2,1);ub=;然后调用linprog函数:x,fval,exitflag,output,lambda=linprog(f,A,b,lb,ub)计算结果为:x=20.0000%最优解 24.0000fval=-4.0800e+003%最优值 exitflag=1%收敛output=iterations:5%迭代次数 algorithm:large-scale:interior point%所使用

12、规则 cgiterations:0 message:Optimization terminated.lambda=ineqlin:3x1 double eqlin:0 x1 double upper:2x1 double lower:2x1 double,作业:求下面的优化问题首先输入下列系数f=-0.1,-0.12,-0.15,-0.12,-0.08;A=1,-1,-1,-1,-1;0,-1,1,-1,1;b=0,0;Aeq=1,1,1,1,1;beq=1;lb=zeros(5,1);ub=;x,fval,exitflag,output=linprog(f,A,b,Aeq,beq,lb,ub

13、)结果为:x=0.0000 0.2500 0.5000 0.2500 0.0000%最优解 fval=-0.1350%最优值exitflag=1%收敛output=iterations:6 algorithm:large-scale:interior point cgiterations:0 message:Optimization terminated.,作业2:求下面的优化问题首先输入下列系数f=-5,4,2;A=6,-1,1;1,2,4;b=8,10;lb=-1,0,0;ub=3,2,inf;x,fval,exitflag,output=linprog(f,A,b,lb,ub)结果为:x

14、=1.3333 0.0000 0.0000%最优解 fval=-6.6667%最优值exitflag=1%收敛output=iterations:7 algorithm:large-scale:interior point cgiterations:0 message:Optimization terminated.,3 非线性无约束优化问题与MATLAB实现 3.1 单变量最小化问题 本节讨论只有一个变量时的无约束最优化问题,即一维搜索问题该问题是多变量最优化问题的基础利用MATLAB解决非线性无约束优化问题的标准形式为:min f(x)s.t.x1 x x2 其中x、x1、x2 为标量,f

15、(x)为函数,返回标量在MATLAB中,单变量非线性无约束优化问题调用函数 fminbndfminbnd函数是一个M文件,其算法基于黄金分割法和抛物线插值函数 fminbnd 调用格式:x=fminbnd(fun,x1,x2)%返回区间x1,x2 上fun参数指定的优化参数进行求解x=fminbnd(fun,x1,x2,options)%用options参数指定的优化参数进行求解x=fminbnd(fun,x1,x2,options,P1,P2,)%提供另外的参数P1,P2等,传输给目标函数fun如果没有设置options 选项,则令options=x,fval=fminbnd()%返回x处目

16、标函数的值x,fval,exitflag=fminbnd()%返回exitflag值描述fminbnd 函数的退出条件x,fval,exitflag,output=fminbnd()%返回包含优化信息的结构输出注:目标函数须是连续的,只能求出局部最优解,只用于实数变量,例3.1 求下面的优化问题(P52,黄金分割法)对函数f(x)=x2+2x,当给定搜索区间(-3x 5),求其最小值x.编一个M文件=jxyh3_1fun(x).m,返回x处的函数值f.function y=jxyh3_1fun(x)y=x2+2*x;%目标函数的M文件输入下列系数options=optimset(Display

17、,iter);%设置优化参数x,fval,exitflag,output=fminbnd(jxyh3_1fun,-3,5,options)结果为:x=-1%最优解fval=-1%最优值exitflag=1%收敛output=iterations:5 funcCount:8 algorithm:golden section search,parabolic interpolation message:1x112 char,计算过程Func-count x f(x)Procedure 3 0.0557281 0.114562 initial 4 1.94427 7.66874 golden 5-1

18、.11146-0.987578 golden 6-1-1 parabolic 7-0.999967-1 parabolic 8-1.00003-1 parabolic,例 3.2 求下面的优化问题(P52,黄金分割法)某工厂有一张边长为5cm的正方形的铁板,欲制成一个方形无盖水槽,问在该铁板的4个角处剪去多大的相等的正方形才能使水槽的容积最大解设剪去的正方形的边长为x,则水槽的容积为:f(x)=(5-2x)2x,当给定搜索区间(0 x 2.5),求其最小值x.编一个M文件=jxyh3_2fun(x).m,返回x处的函数值f.function y=jxyh3_2fun(x)Y=-(5-2*x)2

19、*x;%目标函数的M文件输入下列系数options=optimset(Display,iter);%设置优化参数x,fval,exitflag,output=fminbnd(jxyh3_2fun,0,2.5,options)结果为:x=0.8333%最优解fval=-9.2593%最优值exitflag=1%收敛output=iterations:8 funcCount:11algorithm:golden section search,parabolic interpolation message:1x112 char,计算过程 Func-count x f(x)Procedure 3 0.

20、954915-9.11863 initial 4 1.54508-5.63562 golden 5 0.59017-8.61046 golden 6 0.863729-9.25013 parabolic 7 0.839751-9.25885 parabolic 8 0.832336-9.25925 parabolic 9 0.833301-9.25926 parabolic 10 0.833335-9.25926 parabolic 11 0.833368-9.25926 parabolic,.1 多变量无约束最优化问题 本节讨论多变量时的无约束最优化问题另外许多的有约束最优化问题可以转化为无

21、约束最优化问题进行求解求解无约束最优化问题的方法主要有两类,直接搜索法(包含单线形法,Pavell共轭方向法等)与梯度法(包含最速下降法,Newton法,共多轭梯度法和拟牛顿等)利用MATLAB解决多变量非线性无约束优化问题的标准形式为:min f(x)其中x为矢量,f(x)为函数,返回标量在MATLAB中,多变量非线性无约束优化问题调用函数 fminuncfminunc函数是一个M文件,其算法基于黄金分割法和抛物线插值函数 fminunc 调用格式:x=fminbnd(fun,x0)%给定初值x0,求fun 函数的局部极小点xx0可以是标量,矢量,矩阵x=fminunc(fun,x0,opt

22、ions)%用options参数指定的优化参数进行求解x,fval=fminunc()%返回x处目标函数的值到fvalx,fval,exitflag=fminunc()%返回exitflag值描述fminunc 函数的退出条件x,fval,exitflag,output=fminunc()%返回包含优化信息的结构输出x,fval,exitflag,output,grad=fminunc()%解x处fun函数的梯度值返回到grad中x,fval,exitflag,output,grad,hess=fminunc()%解x处fun函数的hess矩阵信息返回到hess中,例.1 求下面的优化问题(梯

23、度法)对函数f(x)=x12+25x22,当给定初值x0=2,2,求其最小值x.编一个M文件=jxyh4_1fun(x).m,返回x处的函数值f.function y,g=jxyh4_1fun(x)function y=jxyh4_1fun(x);%目标函数的M文件if nargout1 g(1)=2*x(1);%用提供的梯度g使函数最小化 g(2)=50*x(2);end输入下列系数options(6)=1;options(7)=1;%采用DFP变尺度方法立方插值法options=optimset(Display,iter,LargeScale,on,GradObj,on);%设置优化参数x

24、0=2,2;x,fval,exitflag,output,grad=fminunc(jxyh4_1fun,x0,options)结果为:x=1.0e-013*0.1155 0.0044fval=1.3825e-028exitflag=1,output=iterations:1 funcCount:2 cgiterations:1 firstorderopt:2.3093e-014 algorithm:large-scale:trust-region Newton message:1x137 chargrad=1.0e-013*0.2309 0.2220 Norm of First-order

25、Iteration f(x)step optimality CG-iterations 0 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=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方法混合插值法o

26、ptions=optimset(Display,iter,LargeScale,off,);%设置优化参数x0=1,1;x,fval,exitflag,output=fminunc(jxyh4_2fun,x0,options)结果为:x=4.0000 2.0000fval=-8.0000exitflag=1output=iterations:3 funcCount:12 stepsize:1 firstorderopt:2.3842e-007 algorithm:medium-scale:Quasi-Newton line search message:Optimization termina

27、ted:relative infinity-norm of gradient less than options.TolFun.,Iteration Func-count f(x)Step-size infinity-norm 0 3-3 4 1 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=jxyh4_3fun(x).m,返回x处的函数值f.function f=jxyh4_3fun(x)f=sin(x(1)+cos(x(1)+sin(x(2)+cos(x(

28、2)+sin(x(1)*cos(x(2);输入下列系数x0=pi/3,pi/3;options=optimset(Display,iter,LargeScale,off);%设置优化参数x,fval,exitflag,output=fminunc(jxyh4_3fun,x0,options)结果为:x=3.6297 4.2242fval=-2.4844exitflag=1output=iterations:9 funcCount:39 stepsize:1 firstorderopt:1.1495e-007 algorithm:medium-scale:Quasi-Newton line se

29、arch message:Optimization terminated:relative infinity-norm of gradient less than options.TolFun.,Gradients Iteration Func-count f(x)Step-size infinity-norm 0 3 3.16506 1.12 1 9-0.985033 2.38021 0.932 2 12-1.87199 1 1.01 3 21-2.46878 0.0614031 0.159 4 24-2.47689 1 0.112 5 27-2.48442 1 0.006 6 30-2.4

30、8443 1 0.00133 7 33-2.48444 1 4.06e-005 8 36-2.48444 1 6.42e-006 9 39-2.48444 1 1.15e-007.,4.4 在MATLAB中,多变量非线性无约束优化问题也可以调用函数 fminsearch fminsearch函数是一个M文件,其算法基于单纯形法进行计算适合解决二次以上的问题,并问题为高度非线性时,具有稳定性但是不适合求解平方和问题函数 fminsearch 调用格式:x=fminsearch(fun,x0)%给定初值x0,求fun 函数的局部极小点xx0可以是标量,矢量,矩阵x=fminsearch(fun,x

31、0,options)%用options参数指定的优化参数进行求解x,fval=fminsearch()%返回x处目标函数的值到fvalx,fval,exitflag=fminsearch()%返回exitflag值描述fminunc 函数的退出条件x,fval,exitflag,output=fminsearch()%返回包含优化信息的结构输出例4.4 求使方程的最小化当给定初值x0=1;求其最小值x编一个M文件y=jxyh4_4fun(x).m,返回x处的函数值f.function f=jxyh4_4fun(x)f=e(-x)+x2;,输入下列系数x0=1;options=optimset(

32、Display,iter,LargeScale,off);%设置优化参数x,fval,exitflag,output=fminsearch(jxyh4_4fun,x0,options)结果为:Gradients Iteration Func-count f(x)Step-size infinity-norm 0 3 3.16506 1.12 1 9-0.985033 2.38021 0.932 2 12-1.87199 1 1.01 3 21-2.46878 0.0614031 0.159 4 24-2.47689 1 0.112 5 27-2.48442 1 0.006 6 30-2.484

33、43 1 0.00133 7 33-2.48444 1 4.06e-005 8 36-2.48444 1 6.42e-006 9 39-2.48444 1 1.15e-007 x=0.3518 fval=0.8272exitflag=1output=iterations:16 funcCount:32 algorithm:Nelder-Mead simplex direct search message:1x196 char,5.1 有约束的非线性规划问题的MATLAB实现 这些问题通常用基于K-T(Kuhn-Tucker)方程解的方法,直接计算拉格朗日乘子用拟牛顿法更新过程这些方法称为二次规

34、划法(SQP)利用MATLAB解决有约束的非线性规划问题问题调用函数 fmincon:利用 fmincon 函数求解多变量的有约束的最小值:其数学模型为:式中,x,b,beq,lb和ub为矢量,A和Aeq为矩阵,c(x)和ceq(x)为函数,返回标量f(x),c(x)和ceq(x)可以是非线性函数函数 fmincon 调用格式:x=fmincon(fun,x0,A,b)给定初值x0,求fun函数的极小值x,fun函数的约束条件为A*x=b,x0可以是标量,矢量,矩阵。x=fmincon(fun,x0,A,b,Aeq,beq)最小化fun函数,约束条件为Aeq*x=beq和A*x=b。若没有不等

35、式存在,则令Aeq=,beq=。,x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)定义设计变量x的下界lb和上界ub。使得有lb=x=ub。若无等式则有:Aeq=,beq=;x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)在上面的基础上,在nonlcon参数中提供非线性不等式c(x)和等式ceq(x),通常也以M文件的方式调用。Fmincon函数也要求c(x)=0且ceq(x)=0当无边界存在时,令lb=,ub=x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)用options参数指

36、定的优化参数进行求解x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2)提供另外的参数P1,P2等,传输给目标函数fun和nonlin如果不需要这些变量,则传递空矩阵到A,b,Aeq,beq,lb,ub,nonlcon,options中x,fval=fmincon(.)将解x处的目标函数的值返回到fval参数中x,fval,exitflag=fmincon(.)返回exitflag的值,描述函数的输出条件x,fval,exitflag,output=fmincon(.)返回包含优化作息的结构输出x,fval,exitflag,out

37、put,lambad=fmincon()返回解x处包含拉格朗子乘子的lambad参数x,fval,exitflag,output,lambad,grad=fmincon()返回解x处fun函数的梯度x,fval,exitflag,output,lambad,grad,hess=fmincon()返回解x处fun函数的hess矩阵各调用格式中,nonlcon参数计算非线性不等式约束c(x)=0和非线性等式约束ceq(x)=0 nonlcon参数是一个包含函数名的字符串该函数可以是文件,内部文件,或MEX文件,它要求输入一个矢量x,返回两个变量解x处的非线性不等式矢量c和线性等式矢量ceq 例如,

38、若nonlcon=mycon(x),则M文件mycon.m具有下面的形式:function c,ceq=mycon(x)c=%计算x处的非线性不等式.ceq=%计算x处的非线性等式.若还计算了约束梯度,即 options=optimset(GradObj,on);则nonlcon函数必须在第个和第个输出变量中返回c(x)的梯度Gc和ceq(x)的梯度Gceq当被调用的nonlcon函数只需要两个输出变量(此时优化算法只需要c和ceq的值,而不需要Gc和Gceq)时,可以通过查看nargout的值来避免计算Gc和Gceq的值function c,ceq=mycon(x)c=%计算x处的非线性不等

39、式.ceq=%计算x处的非线性等式.if nargout2 Gc=%不等式的梯度 Gceq=%等式的梯度end,5.1 计算 有约束的非线性规划问题例题5-1 试求点集A(x1,x2,x3)和点集B(x4,x5,x6)之间的最短距离。限制条件为,由图可知,点集A(x1,x2,x3)在球面上取点。点集B(x4,x5,x6)在圆柱面上取点。因此该问题就是求这两个几何体间的最短距离的约束优化问题,其数学模型为。,编一个M文件=jxyh5_1fun(x).m,返回x处的函数值f.function f=jxyh5_1fun(x)f=(x(1)-x(4)2+(x(2)-x(5)2+(x(3)-x(6)2;

40、%目标函数的M文件 由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的M文件jxyh5_1con(x).m:function c,ceq=jxyh5_1con(x)c(1)=x(1)2+x(2)2+x(3)2-5;c(2)=(x(4)-3)2+x(5)2-1;ceq=;下一步给定初值,给定变量的下限约束,并调用优化过程。输入下列系数A=;b=;Aeq=;beq=;lb=-sqrt(5),-sqrt(5),-sqrt(5),2,-1,4;ub=sqrt(5),sqrt(5),sqrt(5),4,1,8;x0=1,1,1,3,1,5;options=optimset(Display,it

41、er,LargeScale,off);x,fval,exitflag,output,lambad=fmincon(jxyh5_1fun,x0,A,b,Aeq,beq,lb,ub,jxyh5_1con,options),结果为:max Directional First-order Iter F-count f(x)constraint Step-size derivative optimality Procedure 0 7 20 0 1 16 9.62539 0.3057 0.5-14.7 3.5 2 24 5.7322 1.444 1 0.789 3.87 3 32 4.43066 0.7

42、698 1 0.477 1.11 4 40 5.016 0.5863 1 1.23 1.92 5 48 4.71722 0.2918 1-0.00998 0.269 6 56 4.99527 0.004732 1 0.282 0.0741 7 64 5 1.48e-006 1 0.00473 0.000828 8 72 5 1.116e-007 1 1.29e-006 0.000102 Hessian modified Optimization terminated:Magnitude of directional derivative in search direction less tha

43、n 2*options.TolFun and maximum constraint violation is less than options.TolCon.Active inequalities(to within options.TolCon=1e-006):lower upper ineqlin ineqnonlin 4 1 6 2,x=1.0000-0.0000 2.0000 2.0000-0.0000 4.0000fval=5.0000exitflag=5output=iterations:8 funcCount:72 stepsize:1 algorithm:medium-sca

44、le:SQP,Quasi-Newton,line-search firstorderopt:1.0234e-004 cgiterations:message:1x172 charlambad=lower:6x1 double upper:6x1 double eqlin:0 x1 double eqnonlin:0 x1 double ineqlin:0 x1 double ineqnonlin:2x1 double 所以当x=1.0000-0.0000 2.0000 2.0000-0.0000 4.0000时,目标函数有最小值 fval=5.0000。exitflag=5,表示过程成功收敛于

45、x处。Output输出变量显示民收敛中的迭代次数、目标函数计算次数步长算法等信息。Lambda则包含模型信息。,5-2 求解含有等式约束问题的最优解,并用MATlab计算下列约束优化问题。MATLAB过程 编一个M文件jxyh5_2fun(x).m,返回x处的函数值f。function f=md65fun(x)f=x(2)+x(1);由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的M文件jxyh5_2con(x).m:function c,ceq=jxyh5_2con(x)c=log(x(1);ceq=x(1)+x(2)-1;下一步给定初值,给定变量的下限约束,并调用优化过程。op

46、tions=optimset(Display,iter,LargeScale,off);x0=1,0;x,fval,exitflag,output,lambda=fmincon(md65fun,x0,md65con,options),计算结果为:max Directional First-order Iter F-count f(x)constraint Step-size derivative optimality Procedure 0 3 1 0 1 7 1 0 1 0 2 Optimization terminated:first-order optimality measure le

47、ss than options.TolFun and maximum constraint violation is less than options.TolCon.Active inequalities(to within options.TolCon=1e-006):lower upper ineqlin ineqnonlin 1x=1 0 fval=1 exitflag=1output=iterations:1 funcCount:7 stepsize:1 algorithm:medium-scale:SQP,Quasi-Newton,line-search firstorderopt

48、:1.1102e-016 cgiterations:message:1x143 charlambda=lower:2x1 double upper:2x1 double eqlin:0 x1 double eqnonlin:-1.0000 ineqlin:0 x1 double ineqnonlin:0,5-3 如图所示,已知跨距为L、截面为矩性的简支梁,其材料密度为,许用弯曲应力为,允许挠度为,在梁的中点作用一集中载荷P,梁的截面宽度b不得小于,现要求设计此梁,使其重量最轻,试写出其优化数学模型。若 试用MATlab优化工具计算。考虑简支梁自重后数学模型 令 x1=b,x2=h转化数学模型,

49、MATLAB过程 编一个M文件jxyh5_3fun(x).m,返回x处的函数值f。function f=jxyh5_3fun(x)f=5*1e4*0.05*5*x(1)*x(2)*9.8;由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的M文件 jxyh5_3con(x).m:function c,ceq=jxyh5_3con(x)c(1)=6*(5*1e4*5/4+7.8*1e3*9.8*x(1)*x(2)*52/8)/(x(1)*x(2)2)-7*1e7;c(2)=5*7.8*1e3*9.8*x(1)*x(2)*54/(384*2*1e11*x(1)*x(2)2/12)+5*1e

50、4*53/(48*2*1e11*x(1)*x(2)2/12)-0.005;ceq=;下一步给定初值,给定变量的下限约束,并调用优化过程。options=optimset(Display,iter,LargeScale,off);x0=0.08,0.08;lb=0.05,0;ub=;x,fval,exitflag,output,lambda=fmincon(jxyh5_3fun,x0,lb,ub,jxyh5_3con,options),计算结果为:max Directional First-order Iter F-count f(x)constraint Step-size derivativ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号