1、优化设计方法剖析优化设计方法实验报告 姓名: 陈 辰学号: 10104013院系: 工 学 院 专业:机械设计制造及其自动化班级:10机制一班第四章 例题function y=OPT_fun0 (x)y=3*x(1)*x(1)-2*x(1)*x(2)+x(2)*x(2);format long;x0=1,1;x,f_opt,c,d=fminsearch(OPT_fun0,x0);x,f_opt结果:x = 1.0e-004 * -0.10965867079967 0.198*638f_opt = 1.192541061251568e-009第四章 课后习题4-1 function y=OPT_
2、fun0(x)y=1.5*x(1)*x(1)+0.5*x(2)*x(2)-x(1)*x(2)-2*x(1);format long;x0=2,2;x,f_opt,c,d=fminsearch(OPT_fun0,x0);x,f_opt,c,d结果:x = 0.99999695404938 1.00001655313968f_opt = -0.99999999979866c = 1d = iterations: 39 funcCount: 77 algorithm: Nelder-Mead simplex direct search用Hession矩阵进行证明:已知f(x)=3/2x(1)*x(1
3、)+1/2x(2)*x(2)-x(1)*x(2)-2x(1)对该函数进行求导:一阶导为:f(x1)=3x(1)-x(2)-2 ; f(x2)=x(2)-x(1) ; 二阶导为:f(x1)=3 ; f(x2) =1 ; f(x1x2)=f(x2x1)=-1;由Hession矩阵判定条件之,令一阶导数值为0,固有f(x1)=3x(1)-x(2)-2=0 ; f(x2)=x(2)-x(1)=0 ;得:x(1)=1 ; x(2)=1该函数的Hession矩阵为: 由该Hession矩阵知,一阶主子式为3 0 ,二阶主子式为:3*1 (-1) * (-1) = 2 0. 所以该Hession矩阵为正定。
4、即可知 X= 1 1 为该函数的极小值点。即可知Matlab软件所算的值是正确的。 function y=OPT_fun0(x)y=x(1)*x(1)+x(1)*x(2)+2*x(2)*x(2)+4*x(1)+6*x(2)+10;format long;x0=0,0;x,f_opt,c,d=fminsearch(OPT_fun0,x0);x,f_opt,c结果:x = -1.42857209403050 -1.14288457948509f_opt = 3.71428571580995c = 1结论:由结果可知该函数的最优点为:X= -1.43 -1.14 故此函数的极值为:fopt = 3.
5、71 function y=a123(x)y=x(1)*x(1)*x(1)+x(1)*x(2)-3*x(2)*x(2)*x(2)+3*x(1)*x(1)+3*x(2)*x(2)-9*x(1);format long;x0=0,0x,f_opt,c,d=fminsearch(a123,x0);x,f_opt,c结果:x0 = 0 0x = 1.01162643167122 -0.139*890f_opt =.0737*c = 1结论:由上述结果知该函数的最优解点为: X = 1.01 -0.14 故此函数的极值为: f_opt = -5.07 function y=a123(x)y=x(1)*x
6、(1)*x(1)*x(1)+2*x(1)*x(1)*x(2)+x(2)*x(2)+x(1)*x(1)-2*x(2)+5;format long;x0=0,0x,f_opt,c,d=fminsearch(a123,x0);x,f_opt,c结果:x0 = 0 0x = 0.00001815690060 0.99998886868293f_opt = 4.00000000111292c = 1结论:由上述结果知该函数的最优解点为: X = 0 1故此函数的极值为: f_opt =4.004-2 function y=OPT_fun0(x)y=4*x(1)*x(2)+4/x(1)+4/x(2);fo
7、rmat long;x0=0.5,0.5;x,f_opt,c,d=fminsearch(OPT_fun0,x0);x,f_opt,c结果:x = 1.00001878336170 1.00000069475736f_opt = 12.00000000146536c = 1结论:由上述结果知该函数的最优解点为: X = 1 1 故此函数的极值为: f_opt = 12.004-3function y=OPT_fun1(x)y=x(1)*x(1)-x(1)*x(2)+3*x(2)*x(2);format long;x0=1,1x,f_opt,c,d=fminsearch(OPT_fun1,x0);
8、x,f_opt,c结果:x0 = 1 1x = 1.0e-004 *.024*f_opt = 2.776385560476180e-009c = 1结论:有输出的结果可知,最终在x(0)= 0.02 0.31 处约束,且最优解值为:f(x)=2.784-4function y=OPT_fun1(x)y=4+4.5*x(1)-4*x(2)+x(1)*x(1)+2*x(2)*x(2)-2*x(1)*x(2)+x(1)*x(1)*x(1)*x(1)-2*x(1)*x(1)*x(2);format long;x0=-2,2x,f_opt,c,d=fminsearch(OPT_fun1,x0);x,f_
9、opt,c结果:x0 = -2 2x = -1.05275631816673 1.02772085864556f_opt = -0.51340925137577c = 1结论:由上述结果知该函数的最优解点为: X = 1.05 1.03故此函数的极值为: f_opt = -0.514-5function y=OPT_fun1(x)y=x(1)*x(1)+2*x(2)*x(2);format long;x0=1,1x,f_opt,c,d=fminsearch(OPT_fun1,x0);x,f_opt结果:x0 = 1 1x = 1.0e-004 * 0.03454644575964 0.175*
10、544f_opt = 6.305748878049377e-010c = 1结论:由上述结果知该函数的最优解点为: X = 0 0.18 故此函数的极值为: f_opt =6.314-6function y=OPT_fun1(x)y=x(1)*x(1)-x(1)*x(2)+x(2)*x(2)+2*x(1)-4*x(2);format long;x0=2,2x,f_opt,c,d=fminsearch(OPT_fun1,x0);x,f_opt,c结果:x0 = 2 2x = 0.00003131889914 2.00001969820371f_opt = -3.99999999924803c =
11、 1结论:由上述结果知该函数的最优解为: X = 0 2 故此函数的极值为: f_opt = -4.00第五章例题Aeq=;Beq=;f=-60,-120;A=9,4;3,10;4,5;B=360;300;200;LB=zeros(2,1);UB=;X,fopt,key=linprog(f,A,B,Aeq,Beq,LB,UB);X,fopt,key A11Optimization terminated successfully.X = 20.0000 24.0000fopt = -4.0800e+003key = 1第五章课后习题5-1 Aeq=1,1,1,0;1,2,2.5,3;Beq=4;
12、5;f=-1.1,-2.2,3.3,-4.4;A=;B=;LB=zeros(4,1);UB=;X,fopt,key=linprog(f,A,B,Aeq,Beq,LB,UB);X,fopt,key cc2Optimization terminated successfully.X = 3.99999999991453 0.00000000008539 0.00000000000014 0.33333333330478fopt = -5.86666666663444key = 1结论:由上述结果知该函数的最优点为:X = 4.0 0.0 0.0 0.3故此函数的极小值为: fopt = -5.87
13、 Aeq=;Beq=;f=-7,-12;A=9,4;4,5;3,10;B=360;200;300;LB=zeros(2,1); UB=;X,fopt,key=linprog(f,A,B,Aeq,Beq,LB,UB);X,fopt,key cc3Optimization terminated successfully.X = 19.99999999999513 23.99999999999991fopt = -4.279999999999648e+002key = 1结论:由上述结果知该函数的最优解点为:X = 20.0 24.0故此函数的最小值为: f opt = - 4.28e+0025-2
14、Aeq=;Beq=;f=-7000,-12000;A=9,4;4,5;3,10;B=360;200;300;LB=zeros(2,1); UB=;X,fopt,key=linprog(f,A,B,Aeq,Beq,LB,UB);X,fopt,keyOptimization terminated successfully.X = 19.99999999999673 23.99999999999963fopt = -4.279999999999726e+005key = 1结论:由上述结果知该函数的最优解点为:X = 20.0 24.0故此函数的最小值为: fopt = -4.28e+0055-4A
15、eq=;Beq=;f=-0.30,-0.15;A=-1,-1;1,1;B=-600;1000;LB=zeros(2,1); UB=800;1200;X,fopt,key=linprog(f,A,B,Aeq,Beq,LB,UB);X,fopt,keyX = 7.99999999999976 1.99999999999523fopt = -2.699999999999213e+002key = 1结论:由上述结果知该函数的最优解点为:X = 8.0 2.0 故此函数的最小值为: fopt = -2.70e+0025-6Aeq=;Beq=;f=1,-2;A=1,1;-2,-1;B=5;-3;LB=z
16、eros(2,1); UB=;X,fopt,key=linprog(f,A,B,Aeq,Beq,LB,UB);X,fopt,keycc4Optimization terminated successfully.X = 0.00000000016734 4.99999999277444fopt = -9.99999998538153key = 1结论:由上述结果知该函数的最优解点为:X = 0.0 5.0故此函数的最小值为: fopt = -10.005-7Aeq=1,2,1;Beq=6;f=-5,-4,-8;A=5,3,0;2,-1,0;B=15;4;LB=zeros(3,1); UB=;X,
17、fopt,key=linprog(f,A,B,Aeq,Beq,LB,UB);X,fopt,keyOptimization terminated successfully.X = 0.00000000000002 0.00000000000000 5.99999999999997fopt = -47.99999999999991key = 1结论:由上述结果知该函数的最优解点为:X = 0.0 0.06.0故此函数的最小值为: fopt = -48.00第六章6-2 已知约束优化问题: min s.t. ,试以,,为复合型的初始点,用复合型法进行二次迭代计算。主程序:function f=exe
18、fun(x)f=4*x(1)-x(2)*x(2)-12;function c,ceq=execonfun(x)c=x(1)*x(1)+x(2)*x(2)-25; -x(1); -x(2);ceq=;x0=2,1;lb=0,0;ub=;options=optimset(LargeScale,off,display,iter,tolx,1e-6);x,fval,exitflag,output=fmincon(exefun,x0,lb,ub,execonfun,options)输出结果: max Directional First-order Iter F-count f(x) constraint
19、 Step-size derivative optimality Procedure 1 7 -21 0 1 -20 6 2 11 -44.1111 7.111 1 -30.2 5.53 Hessian modified twice 3 15 -37.3937 0.3937 1 6.32 0.409 Hessian modified twice 4 19 -37.0015 0.001526 1 0.391 0.1 5 23 -37 2.327e-008 1 0.00153 0.1 Hessian modified 6 27 -37 4.416e-022 1 2.3e-008 4 Hessian
20、 modified twice Optimization terminated successfully: Search direction less than 2*options.TolX and maximum constraint violation is less than options.TolConActive Constraints:3x =-0 5fval =-37exitflag =1output = iterations: 6 funcCount: 27 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line
21、-search firstorderopt: 4.0000 cgiterations: 6-3用外点法求解下列问题的最优解,并用MATLAB计算下列约束优化问题。 min s.t. ,主程序为:function f=exefun(x)f=x(1)+x(2);function c,ceq=execonfun(x)c=3-x(2); -x(1); x(2);ceq=;x0=2,1;lb=0,0;ub=;options=optimset(LargeScale,off,display,iter,tolx,1e-6);x,fval,exitflag,output=fmincon(exefun,x0,lb
22、,ub,execonfun,options)输出结果: max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Procedure 1 7 3.5 1.5 1 0.5 1 infeasible 2 11 3.5 1.5 1 -8.59e-009 1 Hessian modified twice; infeasibleOptimization terminated: No feasible solution found. Search direction less than
23、2*options.TolX but constraints are not satisfied.x =2 1.5fval =3.5000exitflag = -1output = iterations: 2 funcCount: 11 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: 1.0000 cgiterations: 6-4 用内点法求解下列问题的最优解,并用Matlab计算下列约束优化问题。 min s.t. ,主程序为:function f=exefun(x)f=x
24、(1)+x(2);function c,ceq=execonfun(x)c=x(1)*x(1)-x(2);-x(1);ceq=;x0=2,1;lb=0,0;ub=;options=optimset(LargeScale,off,display,iter,tolx,1e-6);x,fval,exitflag,output=fmincon(exefun,x0,lb,ub,execonfun,options)输出结果: max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Pr
25、ocedure 1 7 1 1 1 -2 1 2 11 5.02476e-009 2.525e-017 1 -1 0.62 Hessian modified twice 3 15 0 0 1 -5.02e-009 2.22e-016 Hessian modified Optimization terminated successfully: First-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolConActive Constraints:1;2x =0 0fval =0exitflag = 1output = iterations: 3 funcCount: 15 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: 2.2204e-016 cgiterations:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1