第七章代数方程与最优化问题的求解内容摘要:

d successfully: x = x=fminunc(f,[0。 .0],ff) Directional Iteration Funccount f(x) Stepsize derivative 1 2 2e008 4 2 9 3 16 4 22 x = 比较可知 fminunc()函数效率高于 fminsearch()函数,但 当所选函数高度不连续时,使用 fminsearch效果较好。 故 若安装了最优化工具箱则应调用 fminunc()函数。 全局最优解与局部最优解 • 例: f=inline(39。 exp(2*t).*cos(10*t)+exp(3*(t+2)) .*sin(2*t)39。 ,39。 t39。 )。 % 目标函数 t0=1。 [t1,f1]=fminsearch(f,t0)。 [t1 f1] ans = t0=。 [t2,f2]=fminsearch(f,t0)。 [t2 f2] ans = syms t。 y=exp(2*t)*cos(10*t)+exp(3*(t+2))*sin(2*t)。 ezplot(y,[0,])。 set(gca,‘Ylim’,[,1]) % 在 t[0,]内的曲线 ezplot(y,[,])。 set(gca,‘Ylim’,[2,]) %在 [,]曲线 t0=。 [t3,f3]=fminsearch(f,t0)。 [t3 f3] ans = 利用梯度求解最优化问题 • 例: [x,y]=meshgrid… (::)。 … z=100*(y.^2x).^2… +(1x).^2。 contour3(x,y,z,100), set(gca,39。 zlim39。 ,[0,310]) %测试算法的函数 f=inline(39。 100*(x(2)x(1)^2)^2+(1x(1))^239。 ,39。 x39。 )。 ff=optimset。 =1e10。 =1e20。 =39。 iter39。 x=fminunc(f,[0。 0],ff) Warning: Gradient must be provided for trustregion method。 using linesearch method instead. Directional Iteration Funccount f(x) Stepsize derivative 1 2 1 4 44 202 x = %求梯度向量 (比较引入梯度的作用,但梯度的计算也费时间) syms x1 x2。 f=100*(x2x1^2)^2+(1x1)^2。 J=jacobian(f,[x1,x2]) J = [ 400*(x2x1^2)*x12+2*x1, 200*x2200*x1^2] function [y,Gy]=c6fun3(x)%目标函数编写: y=100*(x(2)x(1)^2)^2+(1x(1))^2。 % 目标函数 Gy=[400*(x(2)x(1)^2)*x(1)2+2*x(1)。 200*x(2)200*x(1)^2]。 % 梯度 =39。 on39。 x=fminunc(39。 c6fun339。 ,[0。 0],ff) Norm of Firstorder Iteration f(x) step optimality CGiterations 19 1 x = 函数 lsqnonlin 格式 x = lsqnonlin(fun,x0) x = lsqnonlin(fun,x0,lb,ub) x = lsqnonlin(fun,x0,lb,ub,options) %x0为初始解向量; fun为 , i=1,2,…,m , lb、 ub定义 x的下界和上界 , options为指定优化参数,若 x没有界,则 lb=[ ], ub=[ ]。 2 2 212m in ( ) ( ) ( ) ( )mx f x f x f x f x L    ()ifx例 : 求下面非线性最小二乘问题 初始解向量为 x0=[, ]。 解:先建立函数文件,并保存为 . 由于 lsqnonlin中的 fun为向量形式而不是平方和形式,因此, myfun函数应由 建立: k=1,2,…,10 121021( 2 2 )k x k xkk e e  12( ) 2 2 k x k xkf x k e e   ()ifxfunction F = myfun10(x) k = 1:10。 F = 2 + 2*kexp(k*x(1))exp(k*x(2))。 然后调用优化程序: x0 = [ ]。 [x,resnorm] = lsqnonlin(@myfun10,x0) Optimization terminated: norm of the current step is less than . x = resnorm = 约束条件与可行解区域 • 有约束最优化问题的一般描述: 对于一般的一元问题和二元问题,可用图解法直接得出问题的最优解。 12m in ( ). . ( ) 0[ , , , ]Tnfxs t G xx x x x• 例:用图解方法求解: [x1,x2]=meshgrid(3:.1:3)。 % 生成网格型矩阵 z=x1.^2x2。 % 计算出矩阵上各点的高度 i=find(x1.^2+x2.^29)。 z(i)=NaN。 % 找出 x1^2+x2^29 的坐标,并置函数值为 NaN i=find(x1+x21)。 z(i)=NaN。 % 找出 x1+x21的坐标 ,置为 NaN surf(x1,x2,z)。 shading interp。 max(z(:)), view(0,90) ans = 3 212221212m a x ( )9..1xxxxstxx  线性规划问题的计算机求解 • 例:求解 f=[2 1 4 3 1]39。 A=[0 2 1 4 2。 3 4 5 1 1]。 B=[54。 62]。 Ae=[]。 Be=[]。 xm=[0,0,]。 ff=optimset。 =39。 off39。 % 不使用大规模问题求解 =1e15。 =1e20。 =1e20。 =39。 iter39。 [x,f_opt,key,c]=linprog(f,A,B,Ae,Be,xm,[],[],ff) Optimization terminated successfully. x = f_opt = key = 1 %求解成功 c = iterations: 5 algorithm: 39。 mediumscale: activeset39。 cgiterations: [] • 例:求解 f=[3/4,150,1/50,6]39。 Aeq=[]。 Beq=[]。 A=[1/4,60,1/50,9。 1/2,90,1/50,3]。 B=[0。 0]。 xm=[5。 5。 5。 5]。 xM=[Inf。 Inf。 1。 Inf]。 ff=optimset。 =1e15。 =1e20。 TolCon=1e20。 =39。 iter39。 [x,f_opt,key,c]=linprog(f,A,B,Aeq,Beq,xm,xM, [0。 0。 0。 0],ff) Residuals: Primal Dual Upper Duality Total Infeas Infeas Bounds Gap Rel A*xb A39。 *y+zwf {x}+sub x39。 *z+s39。 *w Error Iter 0: +003 +002 +002 +004 +001 Iter 1: +001 +000 +003 +000 Iter 10: +000 +000 Optimization terminated successfully. x = f_opt = key = 1 c = iterations: 10 cgiterations: 0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。