ImageVerifierCode 换一换
格式:PPT , 页数:53 ,大小:903KB ,
文档编号:5600522      下载积分:20 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5600522.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(ziliao2023)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(实验9-(非线性函数极值求解)课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

实验9-(非线性函数极值求解)课件.ppt

1、 实验实验9 非线性函数极值求解非线性函数极值求解实验目的实验目的 1、学会用、学会用MATLAB求非线性函数极值;求非线性函数极值;2、学会建立简单的优化模型并求解;、学会建立简单的优化模型并求解;实验内容实验内容1 1、用、用matlabmatlab软件求解非线性函数极值;软件求解非线性函数极值;2 2、几个具体非线性规划模型的建立及求解。、几个具体非线性规划模型的建立及求解。设函数 f 在点x0的某邻域内有定义,若存在0,使对于任意xU(x0,)时,不等式f(x)f(x0)(f(x)f(x0)成立,则称f在点x0处取得无约束极大(小)值f(x0),极大值与极小值统称极值。极值极值称关于称

2、关于n个变量个变量x1,x2,xn的二次齐次多项式函数的二次齐次多项式函数22232232222113113211221112122 222),(nnnnnnnnxaxxaxxaxaxxaxxaxxaxaxxxf二次型二次型为为n元二次型,也可以写成下面的矩阵形式元二次型,也可以写成下面的矩阵形式,)(AxxxfTTnnnnnnnxxxxaaaaaaaaaA),(,21212222111211其中调用函数:调用函数:fminbnd 语法:语法:x=fminbnd(fun,a,b)功能:功能:找到找到a,b内单变量函数的最小值。内单变量函数的最小值。算法算法:基于黄金分割法和二次插值法基于黄金分

3、割法和二次插值法.说明说明:(1)要求目标函数必须是连续函数要求目标函数必须是连续函数;(2)该命令只给出局部最优值该命令只给出局部最优值.u一元函数的极值一元函数的极值一般调用格式:一般调用格式:x,fval,exitflag,output=fminbnd(fun,a,b)返回包含优化信息的结构输出返回包含优化信息的结构输出.fval为目标函数的最小值为目标函数的最小值 exitflag为终止迭代的条件为终止迭代的条件 output为优化信息为优化信息 说明说明 若参数若参数exitflag0,表示函数收敛于,表示函数收敛于x,若,若exitflag=0,表示超过函数估计值或迭代的最大数字,

4、表示超过函数估计值或迭代的最大数字,exitflag0表示函表示函数不收敛于数不收敛于x;若参数;若参数output=iterations表示迭代次数,表示迭代次数,output=funccount表示函数赋值次数,表示函数赋值次数,output=algorithm表表示所使用的算法。示所使用的算法。计算下面函数在区间计算下面函数在区间(0,1)内的最小值内的最小值.u示例示例xexxxxxflncos)(3x,fval,exitflag,output=fminbnd(x3+cos(x)+x*log(x)/exp(x),0,1)x=0.5223 fval=0.3974 exitflag=1 o

5、utput=iterations:9 funcCount:9 algorithm:golden section search,parabolic interpolationmessage:1x112 char 运行结果:运行结果:示例示例1:对边长为对边长为6m的正方形铁板的正方形铁板,在四个角处在四个角处剪去相等的正方形以制成方形无盖水槽剪去相等的正方形以制成方形无盖水槽,问如何问如何剪法使水槽的容积最大剪法使水槽的容积最大?解解:假设剪去的正方形边长为假设剪去的正方形边长为x,则水槽的容积则水槽的容积为为 .转化为求转化为求 的在的在0,3最最小值。小值。xxxf2)26()()(xf示例

6、示例1示例示例1function f=myfun1(x)f=-(3-2*x)2*x;%函数函数M文件文件x,fval=fminbnd(myfun1,0,3)%调用命令调用命令fmax=-fval 方法一方法一:方法二方法二:f=-(6-2*x)2*x;x,fval=fminbnd(f,0,3)fmax=-fval命令:命令:f=2*exp(-x)*sin(x);xmin,fmin=fminbnd(f,0,8)f1=-2*exp(-x)*sin(x);xmax,fval=fminbnd(f1,0,8)fmax=-fval内的最大值和最小值。,在求函数80sin2)(xexfx示例示例2u多元无约

7、束函数的极值多元无约束函数的极值函数:函数:fminunc、fminsearch 功能:求多变量无约束函数的最小值。功能:求多变量无约束函数的最小值。数学模型数学模型:)(minxfx 调用格式:调用格式:x,fval,exitflag,output=fminunc(fun,x0,options)x,fval,exitflag,output=fminsearch(fun,x0,options)说明说明:fminsearchfminsearch是用单纯形法寻优是用单纯形法寻优.fminuncfminunc的算法见以下几点说明:的算法见以下几点说明:1 1 fminuncfminunc为无约束优化

8、提供了大型优化为无约束优化提供了大型优化和中型优化算法。由和中型优化算法。由optionsoptions中的参数中的参数LargeScaleLargeScale控制:控制:LargeScaleLargeScale=on(=on(默认默认值值),),使用大型算法使用大型算法LargeScaleLargeScale=off(=off(默认值默认值),),使用中型算使用中型算法法2 2 fminuncfminunc为中型优化算法的搜索方向提供了为中型优化算法的搜索方向提供了4 4 种算法,由种算法,由 optionsoptions中的参数中的参数HessUpdateHessUpdate控制:控制:H

9、essUpdateHessUpdate=bfgsbfgs(默认值),拟牛顿法默认值),拟牛顿法的的BFGSBFGS公式;公式;HessUpdateHessUpdate=dfpdfp,拟牛顿法的拟牛顿法的DFPDFP公式;公式;HessUpdateHessUpdate=steepdescsteepdesc,最速下降法最速下降法3 3 fminuncfminunc为中型优化算法的步长一维搜索提为中型优化算法的步长一维搜索提 供了两种算法,供了两种算法,由由optionsoptions中参数中参数LineSearchTypeLineSearchType控制:控制:LineSearchTypeLine

10、SearchType=quadcubicquadcubic(缺省值缺省值),混,混合的二次和三次多项式插值;合的二次和三次多项式插值;LineSearchTypeLineSearchType=cubicpolycubicpoly,三次多项式三次多项式插插使用使用fminuncfminunc和和 fminsearchfminsearch可能会得到局部最可能会得到局部最优解优解.示例示例3、最小化下列函数:、最小化下列函数:22212123)(xxxxxf(1)先建立目标函数的先建立目标函数的M文件文件 function f=myfun2(x)f=3*x(1)2+2*x(1)*x(2)+x(2)2

11、%函数函数M文件文件(2)写出调用命令写出调用命令 x0=1,1;x,fval=fminunc(myfun2,x0)示例示例3示例示例4 min f(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)1、编写、编写M-文件文件 fun1.m:function f=fun1(x)f=exp(x(1)*(4*x(1)2+2*x(2)2 +4*x(1)*x(2)+2*x(2)+1);2、输入执行命令输入执行命令:x0=-1,1;x,fval=fminunc(fun1,x0)3、运行结果、运行结果:x=0.5000,-1.0000;fval=1.3029e-10示例示例4示例示例5l

12、画画Rosenbrock函数图象函数图象%画Rosenbrock函数图象;x,y=meshgrid(-2:0.1:2,-1:0.1:3);z=100*(y-x.2).2+(1-x).2;mesh(x,y,z)l画画Rosenbrock等高线图象等高线图象%画等高线的图contour(x,y,z,20)drawnowhold onplot(-1.2,2,o)text(-1.2,2,start point)plot(1,1,o)text(1,1,solution)l求极小值命令求极小值命令f=100*(x(2)-x(1)2)2+(1-x(1)2;x,fval,exitflag,output=fmi

13、nsearch(f,-1.2,2)x=1.0000 1.0000fval=1.9151e-010exitflag=1output=iterations:108 funcCount:202 algorithm:Nelder-Mead simplex direct search调用函数:调用函数:quadprog 功能:求解二次规划问题。功能:求解二次规划问题。数学模型数学模型:xfHxxTTx21minuxxlxBeqxAeqBxAu多元约束函数的极值多元约束函数的极值调用格式:调用格式:x,fval,exitflag,output,lambda=quadprog(H,f,A,B,Aeq,Beq

14、,vlb,vub,x0,options)其中,其中,H、A、Aeq为矩阵,为矩阵,f、b、beq、lb、ub、x为向量为向量 示例示例6:求解下面的最优化问题:求解下面的最优化问题:212221212112422),(minxxxxxxxxf0,032222.21212121xxxxxxxxts示例示例6 H=2 -2;-2 4;f=-4;-12;A=-1 2;2 1;B=2;3;Aeq=1 1;Beq=2;lx=zeros(2,1);ux=inf*ones(2,1);x,fval=quadprog(H,f,A,B,Aeq,Beq,lx,ux)4222H可知124f21xxx212121212

15、22121124422221 12422:xxxxxxxxxxxx由解 调用函数:调用函数:fmincon 功能:求多变量有约束非线性函数的最小值。功能:求多变量有约束非线性函数的最小值。数学模型数学模型:)(minxfxuxxlxBeqxAeqBxAxceqxc0)(0)(u有约束非线性规划有约束非线性规划 调用格式:调用格式:x,fval,exitflag,output,lambda =fmincon(fun,x0,A,B,Aeq,Beq,lx,ux,nonlcon)数学模型中,数学模型中,x,B,Beq,lx和和ux为向量,为向量,A和和Aeq为矩阵,为矩阵,c(x)和和ceq(x)为函

16、数,返回标量。为函数,返回标量。f(x),c(x),ceq(x)可以是非线性函数可以是非线性函数 示例示例7、求侧面积为常数、求侧面积为常数150的体积最大的长的体积最大的长方体体积。方体体积。解;设该长方体的长、宽、高分别为解;设该长方体的长、宽、高分别为 ,则数学模型为:则数学模型为:321,xxx示例示例7321 maxxxxz150)(2 s.t.133221xxxxxx(1)编写目标函数的编写目标函数的M文件(文件(myfun.m)function f=myfun(x)f=-x(1)*x(2)*x(3)%目标函数目标函数(2)编写约束函数的编写约束函数的M文件文件(myconfun.

17、m)function c,ceq=myconfun(x)c=;%非线性不等约束非线性不等约束ceq=x(1)*x(2)+x(2)*x(3)+x(3)*x(1)-75%非线性等式约束非线性等式约束(3)编写调用程序命令编写调用程序命令x0=1;1;1;A=;B=;Aeq=;Beq=;lx=zeros(3,1);ux=inf*ones(3,1);x,fval=fmincon(myfun,x0,A,B,Aeq,Beq,lx,ux,myconfun)现有一旅行者现有一旅行者,他要从多种物品中选取体积之他要从多种物品中选取体积之和不超过一定限制的行李装入背包随身携带和不超过一定限制的行李装入背包随身携带

18、,问问如何进行选择如何进行选择,使得最后装入背包内的物品总价使得最后装入背包内的物品总价值达到最大值达到最大?由这一典型应用抽象出的一类优化由这一典型应用抽象出的一类优化问题常称为背包问题问题常称为背包问题.u背包问题背包问题 背包问题不仅可直接应用到管理中的资源分背包问题不仅可直接应用到管理中的资源分配、装载问题、投资决策问题等,而且也常常配、装载问题、投资决策问题等,而且也常常以子问题形式出现在某些复杂的决策问题中以子问题形式出现在某些复杂的决策问题中.示例示例8 示例示例8:现有容积为:现有容积为1.5立方米的背包,以及立方米的背包,以及6件物品已知物品的价格分别为件物品已知物品的价格分

19、别为0.7,0.5,0.4,0.6,0.8,0.55(万元万元),物品的体积分别为物品的体积分别为0.35,0.3,0.6,0.4,0.7,0.5(立方米立方米),确定一种方案选取哪几确定一种方案选取哪几件物品装入包内件物品装入包内,可使背包所装物品的总价值可使背包所装物品的总价值最大最大?该问题的本质是如何选择物品装入背包以使在背包的容量限定之内所装的物品总价值达到最大。对每件物品只有选取与不选取两种可能,用0表示没有被选取,1表示被选取。用gi表示第i件物品。用长度为6的0-1字符串代表一个装包策略。我们采用穷举法举出所有可能的策略,然后比较各种不同策略所产生的总价值,得到最优策略。示例示

20、例8:模型建立模型建立 1,05.15.07.04.06.03.035.0.55.08.06.04.05.07.0)(max654321654321ixxxxxxxt sxxxxxxxf示例示例8:模型求解模型求解(法法1:穷举法穷举法)jz=0.7 0.5 0.4 0.6 0.8 0.55;tj=0.35 0.3 0.6 0.4 0.7 0.5;k=1;for x1=0:1;for x2=0:1;for x3=0:1;for x4=0:1;for x5=0:1;for x6=0:1;fx=x1 x2 x3 x4 x5 x6;if tj*fx=1.5;fxjz(k,1:6)=fx;k=k+1;

21、end end;end;end;end;end;end;fxlr=fxjz*jz;f,i=max(fxlr);f,zjfx=fxjz(i,1:6),fxtj=tj*zjfx 用穷举法能保证求得最优解,但当物品用穷举法能保证求得最优解,但当物品数量相当大时,计算量大,用时很长。数量相当大时,计算量大,用时很长。贪婪算法是求解背包问题的另一种方法:贪婪算法是求解背包问题的另一种方法:将物品按价值密度的大小降序排列,则将物品按价值密度的大小降序排列,则依该次序将相应的物品装入背包,直到依该次序将相应的物品装入背包,直到超出背包的容积限制为止。运用这种贪超出背包的容积限制为止。运用这种贪婪算法能求得背

22、包问题的较好近似解,婪算法能求得背包问题的较好近似解,但不能保证一定是最优解。但不能保证一定是最优解。示例示例8:模型求解模型求解(法法2:贪婪算法贪婪算法)%贪心算法程序jz=0.7 0.5 0.4 0.6 0.8 0.55;tj=0.35 0.3 0.6 0.4 0.7 0.5;a1=tj./jz;a,id=sort(a1,descend);tj0=0;for i=1:6 b=tj0+tj(id(i);if b=1.5;tj0=b;fangshi(i)=1;else fangshi(i)=0;endendfangshi,zjz=jz*fangshi示例示例9:产销量的最佳安排产销量的最佳安

23、排示例示例9:模型建立模型建立示例示例9:模型求解(一)模型求解(一)%编写函数文件function y=cfun(x)y1=(100-x(1)-0.1*x(2)-(30*exp(-0.015*x(1)+20)*x(1);y2=(280-0.2*x(1)-2*x(2)-(100*exp(-0.02*x(2)+30)*x(2);y=-y1-y2;示例示例9:模型求解(一)续模型求解(一)续%调用命令进行求解x0=1 1;xmax,yval=fminunc(cfun,x0);xmaxymax=-yval示例示例9:模型求解结果模型求解结果 xmax=23.9025 62.4977ymax=6.41

24、35e+0031.1.lsqcurvefitlsqcurvefit已知数据点数据点:xdataxdata=(xdata1,xdata2,xdataxdatan n),),ydataydata=(ydataydata1 1,ydataydata2 2,ydataydatan n)u非线性最小二乘拟合非线性最小二乘拟合 MatlabMatlab的提供了两个求非线性最小二乘拟的提供了两个求非线性最小二乘拟合的函数:合的函数:lsqcurvefitlsqcurvefit和lsqnonlinlsqnonlin。两个命两个命令都要先建立令都要先建立M-M-文件文件fun.mfun.m,在其中定义函数在其中

25、定义函数f(x)f(x),但两者定义但两者定义f(x)f(x)的方式是不同的的方式是不同的,可参可参考例题考例题.最小 ),(21niiiydataxdataxFlsqcurvefitlsqcurvefit用以求含参量用以求含参量x x(向量)的向量值函数向量)的向量值函数F(x,xdataF(x,xdata)=)=(F F(x x,xdataxdata1 1),),F F(x x,xdataxdatan n)T T中的参变量中的参变量x(x(向量向量),),使得使得 (1)x=lsqcurvefit(fun,x0,xdata,ydata);(2)x=lsqcurvefit(fun,x0,xd

26、ata,ydata,options);(3)x=lsqcurvefit(fun,x0,xdata,ydata,options,grad);(4)x,options=lsqcurvefit(fun,x0,xdata,ydata,);(5)x,options,funval=lsqcurvefit(fun,x0,xdata,ydata,);(6)x,options,funval,Jacob=lsqcurvefit(fun,x0,xdata,ydata,);fun是一个事先建立的是一个事先建立的定义函数定义函数F(x,xdata)的的M-文件文件,自变量为自变量为x和和xdata说明:x=lsqcur

27、vefit(fun,x0,xdata,ydata,options);迭代初值迭代初值已知数据点已知数据点选项见无选项见无约束优化约束优化 调用格式:调用格式:lsqnonlin用以求含参量用以求含参量x x(向量)的向量值函数向量)的向量值函数 f(x)=(ff(x)=(f1 1(x),f(x),f2 2(x),(x),f,fn n(x)(x)T T中的参量中的参量x x,使得使得 最小。最小。其中其中 fi(x(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai 22221)()()()()(xfxfxfxfxfnT2.lsqnonlin已知数据点:已知数据点:

28、xdataxdata=(xdata1,xdata2,xdataxdatan n)ydataydata=(ydataydata1 1,ydataydata2 2,ydataydatan n)1)x=lsqnonlinlsqnonlin(fun,x0););2)x=lsqnonlinlsqnonlin(fun,x0,options););3)x=lsqnonlinlsqnonlin(fun,x0,options,grad););4)x,options=lsqnonlinlsqnonlin(fun,x0,););5)x,options,funval=lsqnonlinlsqnonlin(fun,x0

29、,);说明:x=lsqnonlinlsqnonlin(fun,x0,options););fun是一个事先建立的是一个事先建立的定义函数定义函数f(x)的的M-文件,文件,自变量为自变量为x迭代初值迭代初值选项见无选项见无约束优化约束优化调用格式调用格式:示例示例10 用下面一组数据拟合用下面一组数据拟合 中的参数中的参数r,k.ktretc)(t0.250.511.523468c19.2118.1515.3614.1012.89 9.327.455.243.01(1 1)编写)编写M-M-文件文件 curvefun1.mcurvefun1.m function f=curvefun1(x,t

30、data)f=x(1)*exp(-x(2)*tdata)%其中其中 x(1)=r;x(2)=k;(2)输入调用命令输入调用命令tdatatdata=0.25 0.5 1 1.5 2 3 4 6 8;=0.25 0.5 1 1.5 2 3 4 6 8;cdatacdata=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;x0=10 0.5;x0=10 0.5;x=x=lsqcurvefitlsqcurvefit(curvefun1,x0,tda

31、ta,cdata)(curvefun1,x0,tdata,cdata)f=f=curvefun1(x,tdata)%输出计算值输出计算值解法解法1 1.用命令用命令lsqcurvefitlsqcurvefitx=20.2413 0.2420 x=20.2413 0.2420f=19.0532 17.9348 15.8911f=19.0532 17.9348 15.8911 14.0802 12.4757 9.7945 14.0802 12.4757 9.7945 7.6894 4.7394 2.9211 7.6894 4.7394 2.9211(4)结论结论:r=20.2413 r=20.24

32、13 k=0.2420k=0.2420(3(3)运算结果为)运算结果为:(1 1)编写)编写M-M-文件文件 curvefun2.mcurvefun2.m function f=curvefun2(x)tdatatdata=0.25 0.5 1 1.5 2 3 4 6 8;=0.25 0.5 1 1.5 2 3 4 6 8;cdatacdata=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;f=x(1)*exp(-x(2)*tdata)-c

33、data%其中其中 x(1)=r;x(2)=k;(2)输入调用命令输入调用命令 x0=10 0.5;x0=10 0.5;x=lsqnonlin(curvefun2,x0)x=lsqnonlin(curvefun2,x0)f=f=curvefun2(x)%输出误差输出误差解法解法2 2.用命令用命令lsqnonlinlsqnonlinx=20.2413 0.2420 x=20.2413 0.2420f=-0.1568 -0.2152 0.5311f=-0.1568 -0.2152 0.5311 -0.0198 -0.4143 0.4745 -0.0198 -0.4143 0.4745 0.2394 -0.5006 -0.0889 0.2394 -0.5006 -0.0889(4)结论结论:r=20.2413 r=20.2413 k=0.2420k=0.2420(3(3)运算结果为)运算结果为:

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|