MATLAB优化工具箱的使用ppt课件.ppt

上传人:小飞机 文档编号:2001758 上传时间:2022-12-30 格式:PPT 页数:25 大小:166.50KB
返回 下载 相关 举报
MATLAB优化工具箱的使用ppt课件.ppt_第1页
第1页 / 共25页
MATLAB优化工具箱的使用ppt课件.ppt_第2页
第2页 / 共25页
MATLAB优化工具箱的使用ppt课件.ppt_第3页
第3页 / 共25页
MATLAB优化工具箱的使用ppt课件.ppt_第4页
第4页 / 共25页
MATLAB优化工具箱的使用ppt课件.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《MATLAB优化工具箱的使用ppt课件.ppt》由会员分享,可在线阅读,更多相关《MATLAB优化工具箱的使用ppt课件.ppt(25页珍藏版)》请在三一办公上搜索。

1、MATLAB优化工具箱的使用,MATLAB优化问题的函数,1、线性规划函数Linprog用于解决线性规划问题(优化问题中目标函数和约束函数均为设计变量的线性函数)线性规划问题可描述为:f,b,beq,lb,ub为向量,A和Aeq为矩阵,x为一设计向量的变量,上标T表示转置,矩阵A和向量b是线性不等式约束条件的系数,Aeq和beq是等式约束的条件的系数。,其使用格式如下 : xopt,fopt=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)该函数返回一设计向量变量xopt=x1,x2,和标量f(x),x0为x的起点,options为optimset函数中定一的参数

2、的值。如果没有等式约束条件,则令Aeq=,beq=。应用举例:,编程实现如下:f=-4,-5;A=1,1;1.25,0.75;0,1;b=200,200,150;lb=0 0;x=linprog(f,A,b,lb,),2、非线性规划函数一、无约束优化 无约束非线性规划(nonlinear programming)方法是确定下列函数 这里,x为设计变量,f为一标量目标函数。解决上述问题可有两个函数实现fminunc函数和fminsearch函数。其中,fminunc函数基于梯度搜索法实现,而fminsearch函数基于直接搜索法实现。调用fminunc的命令如下:xopt,fopt=fminun

3、c(UserFunction,x0,options,p1,p2,),其中,UserFunction是求解目标函数f的函数文件名,参数x0表示x的起始值,是向量,options为optimset定义的参数赋值。P1,p2等为传递给UserFunction的参数。调用fminsearch的命令如下:X=fminsearch(UserFunction,x0,options,p1,p2,)其中,各参数的定义与fminunc一致。应用举例:一、fminunc,首先我们用图解法来解,结果如下:,程序如下:k1=8.8;k2=1.1;L1=11;L2=11;F1=4.5;F2=4.5;x1,x2=meshg

4、rid(linspace(-5,15,15),linspace(-5,15,15);PE1=1/2*k1*(sqrt(x1.2+(L1-x2).2)-L1).2;PE2=1/2*k2*(sqrt(x1.2+(L2+x2).2)-L2).2;PE=PE1+PE2-F1*x1-F2*x2;subplot(1,2,1);h=contour(x1,x2,PE,-40:10:20,50:100:500,k);clabel(h);axis(-5,15,-5,15);xlabel(x_1);ylabel(x_2);subplot(1,2,2);surfc(x1,x2,PE);axis(-10,15,-10,

5、15,-100,500);zlabel(PE);xlabel(x_1);ylabel(x_2);,meshgrid 的使用方法:X,Y = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。x1,x2=meshgrid(linspace(-5,15,2),linspace(-5,15,2)x1 = -5 15 -5 15x2 = -5 -5 15 15x=linspace(1,3,5),既x=1 1.5 2 2.5 3 subplo

6、t是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果第一个数字是2就是表示2行图。p是指你现在要把曲线画到figure中哪个图上,最后一个如果是1表示是从左到右第一个位置。contour(X,Y,g,e,e,r);画等高线,r为红色,极大值,极小值,左图为PE的等高线图,图上标出了每条等高线的数值,从图中可以清楚的找到极小值、极大值的分布。右图中上面是三维图,下面是等高线图,图中也彪出了极小值、极大值所在点的近似位置,在该点PE目标函数取得极小值、极大值。,用fminunc解此题:程序如下:function

7、Twospringx0=0.5,5;k1=8.8;k2=1.1;L1=11;L2=11;F1=4.5;F2=4.5;options=optimset(largeScale,off);x,f=fminunc(SpringEquilibrium,x0,options,k1,k2,L1,L2,F1,F2)function PE=SpringEquilibrium(x,k1,k2,L1,L2,F1,F2);PE1=1/2*k1*(sqrt(x(1).2+(L1-x(2).2)-L1).2;PE2=1/2*k2*(sqrt(x(1).2+(L2+x(2).2)-L2).2;PE=PE1+PE2-F1*x

8、(1)-F2*x(2),使用中规模优化算法,调用的函数,主函数,以上程序用于求解最小值,求最大值程序如下:function Twospringx0=0.5,5;k1=8.8;k2=1.1;L1=11;L2=11;F1=4.5;F2=4.5;options=optimset(largeScale,off);x,f=fminunc(SpringEquilibriumMax,x0,options,k1,k2,L1,L2,F1,F2)function PE=SpringEquilibriumMax(x,k1,k2,L1,L2,F1,F2);PE1=1/2*k1*(sqrt(x(1).2+(L1-x(2

9、).2)-L1).2;PE2=1/2*k2*(sqrt(x(1).2+(L2+x(2).2)-L2).2;PE=-(PE1+PE2-F1*x(1)-F2*x(2),要获得PE函数的极大值,可通过求(1/PE)或(-PE)函数的最优解,调用的函数,主函数,以上函数用于求解最大值,二、fminsearch,程序如下:x1,x2=meshgrid(linspace(0,1,50),linspace(0,1,50);A=6*x1-3;B=6*x2-3;C=(A.2+B.2+3)./2+sin(A.2+B.2+2);bottle=(C+1)/8;colormap(1 1 1);surf(x1,x2,bo

10、ttle);zlabel(f);xlabel(x_1);ylabel(x_2);view(-10,45)以上是图解法以下是用fminsearch解题:,x0=0.2,0.8;bottle=inline(-(6*x(1)-3)2+(6*x(2)-3)2+3)/2+sinc(6*x(1)-3)2+(6*x(2)-3)2+2)+1)/8,x);options=optimset(Large,off);x,f=fminsearch(bottle,x0,options),二、曲线拟合Lsqcurvefit函数用于曲线拟合,其调用格式如下:xopt,resnorm=lsqcurvefit(UserFunct

11、ion,x0,xdata,ydata,lb,ub,options,p1,p2,)其中,xopt为x的最优解,resnorm是残差,其欧几里得范数如下:UserFunction为求解目标函数的文件名,也可以用inline创建需要多个输入参数的函数,只须在inline语句中定义表达式的同时列出输入参数的名称。参数x0为起始值,xdata和ydata分别为输入/输出向量,options为由optimset定义的参数赋值。参数lb和ub为向量,分别表示x的下界和上界。如不需要lb和ub参数,其后跟空矩阵符号。Options参数后跟空矩阵符号时,表示用其默认值。p1,p2等为传递给UserFunctio

12、n的参数。,应用实例:这是应力-应变数据表sigma=925,1125,1625,2125,2625,3125,3625;epsilon=0.11,0.16,0.35,0.48,0.61,0.71,0.85;x0=0.1,0.1;SigmaEpsilonFit=inline(x(1)+x(2)*log(sigma),x,sigma);x,resnorm=lsqcurvefit(SigmaEpsilonFit,x0,sigma,epsilon),另一个曲线拟合函数,lsqnonlin函数,其拟合方式为最小二乘法。其调用方式为:UserFunction为求解目标函数的文件名,也可以用inline创

13、建需要多个输入参数的函数,只须在inline语句中定义表达式的同时列出输入参数的名称。参数x0为起始值,xdata和ydata分别为输入/输出向量,options为由optimset定义的参数赋值。参数lb和ub为向量,分别表示x的下界和上界。如不需要lb和ub参数,其后跟空矩阵符号。Options参数后跟空矩阵符号时,表示用其默认值。p1,p2等为传递给UserFunction的参数。,最小二乘法公式:拟合程序如下:sigma=925,1125,1625,2125,2625,3125,3625;epsilon=0.11,0.16,0.35,0.48,0.61,0.71,0.85;x0=0.1

14、,0.1;SigmaEpsilonLeastSq=inline(epsilon-(x(1)+x(2)*log(sigma),x,sigma,epsilon);x,resnorm=lsqnonlin(SigmaEpsilonLeastSq,x0,sigma,epsilon),3、单目标约束优化单变量优化优化函数为fminbnd,其调用格式为:p1,p2等为传递给UserFunction的参数。,应用举例:程序如下:L=90;Volume=inline(-(L-3*x)2*x,x,L);x,V=fminbnd(Volume,8,12,L)多变量约束优化,多变量约束优化函数fmincon,其调用格式

15、如下:,应用举例:程序如下:function TwoBarTrussx0=1 1 1;sigma=105;lb=1 0 0;ub=3 inf inf;options=optimset(LargeScale,off);x,f=fmincon(TrussNonLinF,x0,lb,ub,TrussNonLinCon,options,sigma),100000,函数:function f=TrussNonLinF(x,sigma)y=x(1);x1=x(2);x2=x(3);f=x1*sqrt(16+y2)+x2*sqrt(1+y2);functionC,Ceq=TrussNonLinCon(x,sigma)y=x(1);x1=x(2);x2=x(3);C(1)=20*sqrt(16+y2)-sigma*y*x1;C(2)=80*sqrt(1+y2)-sigma*y*x2;Ceq=;,谢谢!,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号