机械优化设计(MATLAB的编程教程+习题)
- 格式:ppt
- 大小:476.00 KB
- 文档页数:5
化设计hl4HU©0⑥ 3 hlu 凹内r d X1州fci-rU-fFF卢F ♦ 忡下¥为+1 —*— S-ll-« F41:Si —MATLABoftiHMirjirCfiffliiiiJ PHI■1**■ 温不平?」11,・—喜M - 〜FT 文词一时y 片 34ml 3F*L9TR0i. Jill!-LkftLgWf 1S1CSI掰f 1 ■ >A A A »W I % :k Dnfl w I ■ J k^lXMprfaMk tjn nn Alflhw初选 x0=[1,1] 程序:Step 1: Write an Mfle objfunl.m.function f1=objfun1(x)f1=x(1)人2+2*x(2)入2-2*x(1)*x(2)-4*x(1);Step 2: Invoke one of the unconstrained optimization routinesx0=[1,1];>> options = 0Ptimset('LargeScale','off);>> [x,fval,exitflag,output] = fminunc(@objfun1,x0,options)运行结果: x =4.0000 2.0000 fval = -8.0000exitflag =1 output = iterations: 3 funcCount: 12 stepsize: 1 firstorderopt: 2.3842e-007algorithm: 'medium-scale: Quasi-Newton line search message: [1x85 char]非线性有约束优化1. Min f(x)=3 x : + x 2+2 x 1-3 x 2+5 Subject to:g 2(x)=5 X 1-3 X 2 -25 < 0 g (x)=13 X -41 X 2 < 0 3 12g 4(x)=14 < X 1 < 130无约束优化 min f(x)=X 2 + x 2-2 x 1 x 2-4 x 1g5 (x)=2 < X 2 < 57初选x0=[10,10]Step 1: Write an M-file objfun2.mfunction f2=objfun2(x)f2=3*x(1)人2+x(2)人2+2*x(1)-3*x(2)+5;Step 2: Write an M-file confunl.m for the constraints. function [c,ceq]=confun1(x) % Nonlinear inequality constraints c=[x(1)+x(2)+18;5*x(1)-3*x(2)-25;13*x(1)-41*x(2)人2;14-x(1);x(1)-130;2-x(2);x(2)-57];% Nonlinear inequality constraints ceq=[];Step 3: Invoke constrained optimization routinex0=[10,10]; % Make a starting guess at the solution>> options = optimset('LargeScale','off);>> [x, fval]=...fmincon(@objfun2,x0,[],[],[],[],[],[],@confun1,options)运行结果:x =3.6755 -7.0744 fval =124.14952.min f (x) =4x2 + 5x2s.t. g 1(x) = 2X] + 3x2- 6 < 0g (x) = x x +1 > 0初选x0=[1,1]Step 1: Write an M-file objfun3.m function f=objfun3(x) f=4*x(1)人2 + 5*x(2)人2Step 2: Write an M-file confun3.m for the constraints. function [c,ceq]=confun3(x) %Nonlinear inequality constraints c=[2*x(1)+3*x(2)-6;-x(1)*x(2)-1];% Nonlinear equality constraints ceq口;Step 3: Invoke constrained optimization routinex0=[1,1];% Make a starting guess at the solution>> options = optimset('LargeScale','off);>> [x, fval]=...fmincon(@objfun,x0,[],[],[],[],[],[],@confun,options)运行结果:Optimization terminated: no feasible solution found. Magnitude of search direction less than2*options.TolX but constraints are not satisfied.x =11fval =-13实例:螺栓连接的优化设计图示为一压气机气缸与缸盖连接的示意图。
长江大学机械工程学院机械优化设计大作业班级2012年5月31-361、⎩⎨⎧=+-=++⋅+-++=22422min 321321321232221x x x x x x t s x x x x x x f解: function f=fun1(x)f=x(1)^2+2*x(2)^2+x(3)^2-2*x(1)*x(2)+x(3)clearclcx0=[1;1;1];A=[];b=[];Aeq=[1 1 1;2 -1 1];beq=[4;2];lb=[];ub=[];[x,fval,exitflag]=fmincon('fun1',x0,A,b,Aeq,beq,lb,ub)x =1.90911.95450.1364fval =3.9773exitflag =12、221212min ()2130f x x x x s t x =+-+⋅-≤解: function f=fun2(x)f=x(1)^2+x(2)^2-2*x(1)+1clearclcx0=[1;1];A=[0 -1];b=-3;Aeq=[];beq=[];lb=[];ub=[];[x,fval,exitflag]=fmincon('fun2',x0,A,b,Aeq,beq,lb,ub)x =13fval =9exitflag =13、 2212min ()(2)f X x x =-+112222312..()0()0()10s t g X x g X x g X x x =-≤=-≤=-+-≤解:function f=fun3(x)f=(x(1)-2)^2+x(2)^2function [g,ceq]=mycon3(x)g=[-x(1);-x(2);-x(1)^2+x(2)^2-1];ceq=[];clearclcx0=[0;0];A=[];b=[];Aeq=[];beq=[];lb=[];ub=[];[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,lb,ub,'mycon3')x =2.0000fval =2.2204e-0164、⎩⎨⎧≤--≤+--⋅++++=01005.1)12424(min 21212122122211x x x x x x t s x x x x x e f x解: function f=fun4(x)f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);function [g,ceq]=mycon4(x)g(1)=1.5+x(1)*x(2)-x(1)-x(2);g(2)=-x(1)*x(2)-10;ceq=[];clearclcx0=[0;0];A=[];b=[];Aeq=[];beq=[];lb=[];ub=[];[x,fval]=fmincon('fun4',x0,A,b,Aeq,beq,lb,ub,'mycon4')x =1.1825-1.7398fval =3.06085 喜糖问题:需要购买甲乙两种喜糖,喜糖甲10元/斤,喜糖乙20元/斤。
机械优化设计实验(常用优化方法程序考核题)姓名吕超班级机工1005班学号 104057010111.一位搜索方法程序考核题1)调用函数fminbnd[x0,fval]=fminbnd(@(t)t^2-10*t+36,-5,5)实验结果:x0 =5fval =112)调用函数fminbnd[x0,fval]=fminbnd(@(t)t^4-5*t^3+4*t^2-6*t+60,-5,5)实验结果:x0 =3.2796fval =22.65903)调用函数fminbnd[x0,fval]=fminbnd(@(t)(t+1)*(t-2)^2,0,5)实验结果:x0 =2.0000fval =1.0656e-0102.无约束优化方法程序考核题1)编写M文件function f=y(x)f=4*(x(1)-5)^2+(x(2)-6)^2;调用函数fminunc[x0 fval]=fminunc('y',[8;9])实验结果:x0 =5.0000fval =1.7876e-0122)编写M文件function f=y(x)f=(x(1)^2+x(2)-11)^2+(x(1)+x(2)^2-7)^2;调用函数fminunc[x0 fval]=fminunc('y',[1;1])实验结果:x0 =3.00002.0000fval =5.2125e-0123)编写M文件function f=y(x)u(1)=1.5-x(1)*(1-x(2));u(2)=2.25-x(1)*(1-x(2)^2);u(3)=2.625-x(1)*(1-x(2)^3);f=u(1)^2+u(2)^2+u(3)^2;调用函数fminunc[x0 fval]=fminunc('y',[2;0.2])实验结果:x0 =3.00000.5000fval =3.9195e-0144)编写M文件function f=y(x)f=(x(1)^2+12*x(2)-1)^2+(49*x(1)+49*x(2)+84*x(1)+2324*x(2)-681)^2; 调用函数fminsearch[x0 fval]=fminsearch('y',[1;1])x0 =0.33630.2681fval =5.43185)编写M文件function f=y(x)f=(x(1)+10*x(2))^2+5*(x(3)-x(4))^2+(x(2)-2*x(3))^4+10*(x(1)-x(4))^4; 调用函数fminunc[x0 fval]=fminunc('y',[3 -1 0 1]')实验结果:x0 =0.0015-0.0002-0.0031-0.0031fval =6.3890e-0093.约束优化方法程序考核题1)编写M文件(1) function f=y(x)f=(x(1)-2)^2+(x(2)-1)^2;(2) function [c,ceq]=z(x)c=x(1)^2-x(2);ceq=[];调用fmincon函数:[x0,fval]=fmincon('y',[3 3],[1 1],[2],[],[],'z')实验结果x0 =1.0000 1.0000fval =1.00002)编写M文件调用fmincon函数:A=[-1/sqrt(3) 1;-1 1/sqrt(3);1 1/sqrt(3)];,b=[0 0 6]';[x0,fval]=fmincon('y',[1 5],A,b,[],[],[0;0])实验结果x0 =4.5000 2.5981fval =-2.53133)编写M文件(1)function f=y(x)f=1000-x(1)^2-2*x(2)^2-x(3)^2-x(1)*x(2)-x(1)*x(3);(2)function [c ceq]=z(x)c=[];ceq(1)=x(1)^2+x(2)^2+x(3)^2-25;ceq(2)=8*x(1)+14*x(2)+7*x(3)-56;调用fmincon函数[x0,fval]=fmincon('y',[2;2;2],[],[],[],[],[0 0 0]',[],'z')实验结果:x0 =3.51210.21703.5522fval =961.71524)编写M文件function f=y(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2+90*(x(4)-x(3)^2)^2+(1-x(3))^2+10*((x(2)-1)^2+( x(4)-1)^2)+19.8*(x(2)-1)*(x(4)-1);调用fmincon函数:[x0,fval]=fmincon('y',[-3 -1 -3 -1]',[],[],[],[],-10*ones(4,1),10*ones(4,1))实验结果x0 =1.00011.00020.99990.9997 fval =2.3989e-007。
机械优化设计与Matlab应用上机实验指导书V2.0班级:学号:姓名:机械学院说明1.由于机械优化设计与Matlab应用是一门实践性很强的课,本实验指导书中上机练习内容是为巩固课堂所学知识安排的。
2.要求每次上机必须完成规定的练习内容,课堂上即时完成有难度的在课前要按照相关实验说明做好相应的准备工作。
3.明确每一次上机练习的目标,并在每次实验小结表中填入本次练习完成情况及相关实验小结。
4.所有实验结束后,要求写出一篇关于这门课的课程小结。
5.严格遵守机房的有关管理规定。
目录上机练习一MATLAB软件使用初步上机练习二矩阵、向量的创建,字符串及其处理上机练习三程序流程控制及符号工具箱的使用上机练习四MATLAB基本绘图函数的使用上机练习五无约束优化方法编程上机练习六约束优化方法编程。
上机练习七优化工具箱典型函数的使用上机练习八机械优化设计工程问题的求解上机练习九总复习上机实验一MATLAB软件使用初步一、实验目标1.熟悉Matlab界面,并掌握相关基本操作。
2.掌握变量创建、变量管理,访问程序及函数文件、命令窗口管理的基本方法。
3.在命令窗口中熟练使用各种运算符以及各种常用数学表达式的matlab表示方式。
4.熟悉matlab特殊字符的使用说明。
二、实验环境1.计算机2.MATLAB7.0集成环境三、实验说明1.首先应熟悉MATLAB7.0运行环境,正确操作2.实验学时:2学时四、实验内容及步骤1.命令窗口的使用;2.变量名的创建,注意大小写是否敏感;3.clear 、clear session、who、whos命令的含义;4.File下拉菜单的Set Path实现路径信息的输入;5.Format函数的使用;6.赋值操作,表达式加分号与不加分号的区别,一行输入多个表达式,特殊字符的使用,各种运算符的使用及优先级的高低;7.帮助系统的使用;8.用Matlab表达式完成如下表达式计算五、实验报告要求1.将求螺栓刚度的Matlab表达式填入下表;2. 小结其余实验内容的心得体会。
(一)matlab基本用法介绍5. 循环、结束命令¾break是直接跳出该层循环¾continue是直接进入该层循环的下一次迭代¾return是直接退出程序或函数返回大概的等级关系如下¾return>break>continue(二)matlab语法应用实例1. 循环的用法(用于优化迭代)%%%%%%%%%%%%%%%%%% while 循环i=0;while(i<10)i=i+1;end%%%%%%%%%%%%%%%%%% for 循环i=0;for j=1:10i=i+1;end%%%%%%%%%%%%%%%%%% break终止本层循环for i=1:2ik=0;for j=1:10k=k+1if k==5;break;endendend%%%%%%%%%%%%%%%%%% continue直接进入下一次循环变量的迭代k=0;for j=1:10k=k+1;if k==5;continue;endkend %注意,k=5时,后面的循环体未被执行,即k=5不显示在输出窗口中2 函数调用(利用外部m文件定义函数)(用于定义目标函数、约束函数、优化子程序等)建立wad2.m文件:function F1=wad2(x)F1=x(1)^2+x(2)^2;在主程序m文件中或者matlab的commond window中输入x0=[3 5]';fx0= wad2(x0)运行结果如下:fx0 = 34 ,得到了函数的值※另外函数中的F1也可以定义成向量。
3 全局变量(可用于优化过程中的重要参数定义,在程序任意部位都可以访问)建立wad3.m文件:function F1=wad3(x)global ac bcF1=ac*x(1)^2+bc*x(2)^2;在主程序m文件中定义x0=[3 5]';ac=0.2; bc=0.8;fx0= wad3(x0)结果:fx0 = 14.60004 判断语句(例如可以用于优化计算收敛的终止条件判断)k=2if k>3'yes k>3'else'no ,k<3'endif k==2'yes k=2'end5 数组(例如可以用于优化计算收敛的终止条件判断)% 1. 数组:matlab 程序以矩阵为运算单位,任何变量都是矩阵(数组)% 数组不需要声明,直接定义、使用即可a=[1 2 3]b=[ 1 2 34 5 6]c=b'; %求矩阵的转置矩阵b23=b(2,3) %取出矩阵b中第2行第3列元素x=[123]Hk=eye(4);% 生成4维的单位阵6 清屏clcclear7 二维绘图x=1:0.1:10;y1=sin(x);y2=cos(x);figure;plot(x,y1,'r');hold on;plot(x,y2,'b');grid on;xlabel('x axis'),ylabel('y axis');8 三维绘图x=1:0.1:10;y1=sin(x);y2=cos(x);z=x+cos(y1);figure;plot3(x,y1,z,'b');hold on;grid on;xlabel('x axis'),ylabel('y axis'),zlabel('z axis');9 二维等值线图%%对函数: F=(xk(1)-2)^4+(xk(1)-2*xk(2))^2; [x3,y3]=meshgrid(-5:0.2:10,-10:0.2:10);z3=(x3-2).^4+(x3-2*y3).^2;contour(x3,y3,z3,40);%目标函数的等值线hold on;axis equal;xlabel('自变量x1','FontSize',12);ylabel('自变量x2','FontSize',12);title('×××××××方法', 'FontSize',15);。
基于Matlab的机械优化设计课后题1.一维搜索法说明:采用0.618法进行编程代码如下:syms tf=(需要计算的函数)x1=0;h=2;f1=subs(f,x1);x2=x1+h;f2=subs(f,x2);f3=f2-1;t=1;if (f1-f2)>0while f3<f2f3=subs(f,x2+t*h);t=t+1;endx3=x2+t*h;elsef3=f2;f2=f1;t=1;f1=f2-1;x3=x2;x2=x1;while f1<f2f1=subs(f,x2-t*h);t=t+1;endx1=x2-t*h;enda=x1;b=x3;e=1e-05;k=0.618;a1=b-k*(b-a);a2=a+k*(b-a);f1=subs(f,a1);f2=subs(f,a2);c=(b-a)/2;while c>eif f1>f2a=a1;a1=a2;a2=a+k*(b-a);f1=f2;f2=subs(f,a2);elseb=a2;a2=a1;a1=b-k*(b-a);f2=f1;f1=subs(f,a1);endc=(b-a)/2;end实际运行结果如下:1. t=a1=5;f=11;2. t=a1=3.2796;f=22.6590;3. t=a1=2;f=1.1122e-011;2.无约束的优化设计说明:一共采用了三种算法的编程首先要建立步长函数,步长函数代码如下:function az=buchang(x,d,f)b=symvar(f);syms aaxn=x-d*aa;pa=subs(f,b,xn);pd=diff(pa,aa);aa=solve(pd);aa=real(aa);aa=subs(aa);n=size(aa,1);z=zeros(1,n);for i=1:nxn(:,i)=x-aa(i)*d;endfor i=1:nz(i)=subs(f,b,xn(:,i));ends=z(1);c=1;for i=1:n-1if s>z(i+1)s=z(i+1);c=i+1;endendaz=aa(c);end1.DFP:·¨syms (函数中的变量)f=(所需要优化的函数)x0=;b=symvar(f);n=size(b,2);g=cell(n,1);G=cell(n,n);H0=eye(n,n);for i=1:ng{i,1}=diff(f,b(i));endfor i=1:n %²úÉúº£Èû¾ØÕófor j=1:nG{j,i}=diff(g{i},b(j));endendg0=subs(g,b,x0);d0=H0*g0;a=buchang(x0,d0,f);x1=x0-a*d0;xcha=x1-x0;dis=mo(xcha);k=1while dis>1e-5g1=subs(g,b,x1);if g1==0Gy=subs(G,b,x1)breakendy0=g1-g0;s0=x1-x0;H1=H0+(s0*s0')/(s0'*y0)-(H0*y0*y0'*H0)/(y0'*H0*y0); d1=H1*g1;a=buchang(x1,d1,f);x2=x1-a*d1;g0=g1;x0=x1;x1=x2;H0=H1;xcha=x1-x0;dis=mo(xcha);x1subs(f,b,x1)k=k+1end2.坐标轮换法:syms t1t2f=(t1^2+t2-11)^2+(t1+t2^2-7)^2;b=symvar(f);n=size(b,2);A=eye(n,n);x0=[1;1];dis=1;k=0;while dis>1e-5if k==30breakende=A(:,1);a=buchang(x0,e,f);x1=x0-e*a;i=2;while i<n+1e=A(:,i);a=buchang(x1,e,f);x2=x1-e*a;x1=x2;i=i+1;endxcha=x1-x0;dis=mo(xcha);x0=x1;k=k+1x0end3.鲍威尔法:syms t1t2t3t4f=(t1+10*t2)^2+5*(t3-t4)^2+(t2-2*t3)^4+10*(t1-t4)^4;x0=[3;-1;0;1];b=symvar(f);n=size(b,2);A=eye(n,n);dis=1;while dis>1e-6F0=subs(f,b,x0);e=A(:,1);a=buchang(x0,e,f);x1=x0-e*a;i=2;fz=zeros(1,n);while i<n+1e=A(:,i);fd=subs(f,b,x1);fz(1,i-1)=fd;a=buchang(x1,e,f);x2=x1-a*e;x1=x2;i=i+1;endxcha=x1-x0;dis=mo(xcha);d=x1-x0;x=x1+d;F2=subs(f,b,x1);F3=subs(f,b,x);fz=[F0,fz];cz=zeros(1,n);for i=1:ncz(i)=fz(i)-fz(i+1);endczm=max(cz);m=find(czm);P1=F3-F0;P2=(F0-2*F2+F3)*(F0-F2-czm)^2-0.5*czm*(F0-F3)^2;if P1<0&&P2<0a=buchang(x1,d,f);x0=x1-a*d;A(:,m)=[];A=[A,d];elseif F2<F3x0=x1;elsex0=x;endendx0end实际运行结果如下:1.x=[5;6];f=02.x=[3;2];f=03.x=[3;0.5];f=0.52978;4.x=[0.1239;0.2844];f=5.8969;5.x=[0;0;0;0];f=0;3.约束优化方法程序说明:本题采用matlab自带的fmincon函数来解决非线性优化问题具体代码如下:1. function y=fun1(x)y=(x(1)-2).^2+(x(2)-1).^2;endfunction [c,ceq]=gt1(x)c=x(1).^2-x(2);ceq=[];endA=[1,1];b=2;x0=[1;2];lb=[];ub=[];[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(@fun1,x0,A,b,[], [],lb,ub,@gt1);运行结果如下:x=[1;1];fval=12. function y=fun2(x)y=x(2).^3*((x(1)-3).^2-9)/(27*sqrt(3));endA=[-1/sqrt(3),1;-1,1/sqrt(3);1,1/sqrt(3)];b=[0;0;6];x0=[2;3];lb=[0;0];ub=[];[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(@fun2,x0,A,b,[], [],lb,ub)运行结果如下:X=[4.5000;2.5981];f=-2.5313;备注:引用函数并未能够达到最优点,原因不明;3. function y=fun3(x)y=1000-x(1).^2-2*x(2).^2-x(3)^2-x(1).*x(2)-x(1).*x(3);endfunction [c,cev]=gt2(x)c=[];cev(1)=x(1).^2+x(2).^2+x(3).^2-25;cev(2)=8*x(1)+14*x(2)+7*x(3)-56;endA=[];b=[];Aq=[];bq=[];lb=[0;0;0];ub=[];x0=[2;2;2];[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(@fun3,x0,A,b,Aq, bq,lb,ub,'gt2')运行结果如下:x= [3.5121;0.2170;3.5522];f= 961.7152;exitflag =4备注:引用函数由于算法在迭代过程中产生了NaN,迭代被迫终止4. function y=fun4(x)y=100*(x(2)-x(1).^2).^2+(1-x(1)).^2+90*(x(4)-x(3).^2).^2+(1-x(3))^2+1 0*((x(2)-1).^2+(x(4)-...1).^2)+19.8*(x(2)-1)*(x(4)-1);endA=[];b=[];Aq=[];bq=[];lb=[-10;-10;-10;-10];ub=[10;10;10;10];x0=[-3;-1 ;-3;-1];[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(@fun4,x0,A,b,Aq, bq,lb,ub)运行结果如下:X=[1.0001;1.0002;0.9999;0.9997];f=0;exitflag=5 备注:原始对偶问题没有可行解。
机械优化设计MATLAB程序机械优化设计作业1.用二次插值法求函数tt1t22极小值,精度e=。
在MATLAB的M文件xx器中编写的M文件,如下:f=inline('(t+1)*(t-2)^2','t') a=0;b=3;epsilon=; t1=a;f1=f(t1); t3=b;f3=f(t3);t2=*(t1+t3);f2=f(t2); c1=(f3-f1)/(t3-t1);c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=*(t1+t3-c1/c2);f4=f(t4); k=0;while(abs(t4-t2)>=epsilon) if t2f4f1=f2;t1=t2; t2=t4;f2=f4; elsef3=f4;t3=t4; end elseif f2>f4f3=f2;t3=t2; t2=t4;f2=f4; elsef1=f4;t2=t4; end endc1=(f3-f1)/(t3-t1);c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=*(t1+t3-c1/c2);f4=f(t4); k=k+1; end%输出最优解 if f2>f4t=t4;f=f(t4); elset=t2;f=f(t2); endfprintf(1,'迭代计算k=%\\n',k) fprintf(1,'极小点坐标t=%\\n',t) fprintf(1,'函数值f=%\\n',f) 运行结果如下:迭代计算k= 7 极小点坐标t= 2 函数值f=2.用黄金分割法求函数t3t23t21的极小值,精度e=。
在MATLAB的M文件xx器中编写的M文件,如下:f=inline('t^(2/3)-(t^2+1)^(1/3)','t');a=0;b=3;epsilon=; t1=*(b-a);f1=f(t1); t2=a+*(b-a);f2=f(t2); k=1;while abs(b-a)>=epsilon if f1epson) p=-G1\\g1; x0=x0+p;g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)}); G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)});k=k+1; end x=x0;fx=subs(f,{x1,x2},{x(1,1),x(2,1)}); 运行结果如下:>> [x,fx,k]=niudunfa([1;1])x =fx = k =23(2)用阻尼牛顿法在MATLAB的M文件xx器中编写的M 文件,如下:function [x,fx,k]=zuniniudunfa(x0)%阻尼牛顿法syms x1 x2f=(x1-2)^4+(x1-2*x2)^2; fx=0;v=[x1,x2];df=jacobian(f,v); df=df.';G=jacobian(df,v);epson=1e-12;%停机原则g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)});G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)}); k=0;%迭代次数 p=-G1\\g1;a0=-p'*g1/(p'*G1*p); x0=x0+a0*p;while(norm(a0*p)>epson) p=-G1\\g1;a0=-p'*g1/(p'*G1*p); x0=x0+a0*p;g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)}); G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)});k=k+1; end x=x0;fx=subs(f,{x1,x2},{x0(1,1),x0(2,1)});运行结果如下:>>[x,fx,k]=zuniniudunfa([1;1])x=fx= k=23(3)用变尺度法在MATLAB的M文件xx器中编写的M文件,如下:32124.用共轭梯度法求函数fx1,x2x1x2x1x22x1的极小点22用共轭梯度法在MATLAB的M文件xx器中编写的M文件,如下:function[y,x,k]=CG(A,b,c,x0)%共轭梯度法解minf=*X'*A*X+b'x+c eps=1e-6;%迭代停机原则%fx=*x0'.*A.*x0+b'.*x0+c; r0=A*x0+b; if norm(r0)epsbeta=(r1'*r1)/(r0'*r0); p1=-r1+beta*p0;alpha=-(r1'*p1)/(p1'*A*p1);x1=x1+alpha*p1; r2=A*x1+b; p0=p1; r0=r1; r1=r2; k=k+1; end x=x1;y=*x'*A*x+b'*x+c;运行结果如下:[y,x,k]=CG([3 -1;-1 1],[-2;0],0,[2;1]) y = -1x = k = 1(2)用变尺度法在MATLAB的M文件xx器中编写的M文件,如下:function [x,fx,k]=bianchidufa(A,b,c,x0) %用变尺度法求fx=*x'*A*x+b'*x+c; epson=1e-12; g0=A*x0+b; G0=A; H0=eye(2); k=0; d0=-H0*g0;a0=-d0'*g0/(d0'*G0*d0); s0=a0*d0; %x(k+1)-x(k); y0=A*a0*d0; %g(k+1)-g(k); x1=x0+a0*d0;while (norm(s0)>=epson) switch k case{10} x0=x1;g0=A*x0+b;H0=eye(2);k=0; d0=-H0*g0;a0=-d0'*g0/(d0'*G0*d0);s0=a0*d0; x1=x0+a0*d0; break otherwiseg1=A*x1+b; y0=A*a0*d0; s0=a0*d0;% H1=H0+s0*s0'/(s0'*y0)-H0*y0*y0'*H0/(y0'*H0*y0);H1=H0+((1+y0'*H0*y0/(s0'*y0))*s0*s0'-H0*y0*s0'-s0*y0'*H0)/(s0'*y0); k=k+1; d1=-H1*g1;a1=-d1'*g1/(d1'*G0*d1);a0=a1;d0=d1; H0=H1; s0=a0*d0; x1=x1+a0*d0; break end end x=x1;fx=*x1'*A*x1+b'*x1+c;运行结果如下:》[x,fx,k]=bianchidufa([3 -1;-1 1],[-2;0],0,[2;1]) H1 =fx = -1 x =fx = -1 k = 1故函数极小点是点25.用鲍威尔法求函数fx1,x2x122x24x12x1x2的极小点。
机械优化设计试题及答案试题一:1. 请简述机械优化设计的定义及重要性。
答案:机械优化设计是通过数学模型和计算机仿真技术,以最优化的方式对机械结构进行设计和改进的过程。
机械优化设计的重要性在于能够提高机械产品的性能和效率,降低成本和能源消耗,并且缩短产品开发周期。
2. 请阐述机械优化设计的基本步骤及流程。
答案:机械优化设计的基本步骤包括:问题定义、数学建模、解的搜索、结果评价和优化、最优解验证等。
具体流程如下:(1) 问题定义:明确机械优化设计的目标和约束条件,例如提高某项指标、降低成本等。
(2) 数学建模:通过将机械系统抽象为数学模型,建立与优化目标和约束条件相关的函数关系。
(3) 解的搜索:采用合适的搜索算法,寻找函数的最优解或近似最优解。
(4) 结果评价和优化:对搜索得到的解进行评价和分析,进一步进行调整和改进,以得到更好的解。
(5) 最优解验证:通过实验或仿真验证最优解的可行性和有效性。
试题二:1. 请简述梯度下降法在机械优化设计中的应用原理。
答案:梯度下降法是一种常用的优化算法,其原理是通过求解函数的梯度向量,并采取沿着梯度方向逐步迭代优化的方法。
在机械优化设计中,可以将需要优化的机械结构的性能指标作为目标函数,通过梯度下降法不断调整结构参数,以寻找最优解。
2. 请列举至少三种机械优化设计的常用方法。
答案:常见的机械优化设计方法包括:遗传算法、粒子群优化算法、模拟退火算法等。
其中:(1) 遗传算法通过模拟生物进化过程,通过选择、交叉和变异等操作,逐渐优化机械结构,以达到最优解。
(2) 粒子群优化算法模拟鸟群或鱼群的行为,通过不断迭代更新粒子的位置和速度,最终找到最优解。
(3) 模拟退火算法基于金属退火的原理,随机选择新解,并通过一定的准则接受或拒绝新解,以便在解空间中发现更优解。
试题三:1. 请解释有限元分析在机械优化设计中的作用。
答案:有限元分析是一种基于数值计算的方法,通过将复杂的结构划分成有限个单元,建立结构的有限元模型,并对其进行离散化求解,用于分析机械结构的应力、振动、热传导等特性。
《机械优化设计》试题及答案解析《机械优化设计》复习题及答案⼀、填空题1、⽤最速下降法求f(X)=100(x 2- x 12) 2+(1- x 1) 2的最优解时,设X (0)=[-0.5,0.5]T ,第⼀步迭代的搜索⽅向为[-47;-50]。
2、机械优化设计采⽤数学规划法,其核⼼⼀是建⽴搜索⽅向⼆是计算最佳步长因⼦。
3、当优化问题是__凸规划______的情况下,任何局部最优解就是全域最优解。
4、应⽤进退法来确定搜索区间时,最后得到的三点,即为搜索区间的始点、中间点和终点,它们的函数值形成⾼-低-⾼趋势。
5、包含n 个设计变量的优化问题,称为 n 维优化问题。
6、函数 C X B HX X T T ++21的梯度为 HX+B 。
7、设G 为n×n 对称正定矩阵,若n 维空间中有两个⾮零向量d 0,d 1,满⾜(d 0)T Gd 1=0,则d 0、d 1之间存在_共轭_____关系。
8、设计变量、约束条件、⽬标函数是优化设计问题数学模型的基本要素。
9、对于⽆约束⼆元函数),(21x x f ,若在),(x 20100x x 点处取得极⼩值,其必要条件是梯度为零,充分条件是海塞矩阵正定。
10、库恩-塔克条件可以叙述为在极值点处⽬标函数的梯度为起作⽤的各约束函数梯度的⾮负线性组合。
11、⽤黄⾦分割法求⼀元函数3610)(2+-=x x x f 的极⼩点,初始搜索区间]10,10[],[-=b a ,经第⼀次区间消去后得到的新区间为 [-2.36,2.36] 。
12、优化设计问题的数学模型的基本要素有设计变量、约束条件⽬标函数、13、⽜顿法的搜索⽅向d k = ,其计算量⼤,且要求初始点在极⼩点逼近位置。
14、将函数f(X)=x 12+x 22-x 1x 2-10x 1-4x 2+60表⽰成C X B HX X T T ++21的形式。
15、存在矩阵H ,向量 d 1,向量 d 2,当满⾜ (d1)TGd2=0 ,向量 d 1和向量 d 2是关于H 共轭。
要求根据目标函数和约束条件采用适合的MATLAB 优化函数求解优化问题,即线性规划问题、无约束非线性规划、约束非线性规划问题、二次规划问题。
问答题要求:(1)对该问题进行分析,写出该问题的优化模型(包括设计变量、目标函数、约束条件);(2)将优化模型转化为matlab 程序(m 文件);(3)利用matlab 软件求解该优化问题,写出最优解。
题目一:⎪⎩⎪⎨⎧≥=++≥++⋅++=0,20521532min 21321321321x x x x x x x x t s x x x f分析:目标函数:min f=x1+x2+x3此为线性规划问题,有一个等式约束,一个不等式约束;采用命令:x=linprog (c ,A ,b ,Aeq,beq )1,编写M 文件如下:c=[1 1 1];A=[-1 -2 -3];b=[-15];Aeq=[2 1 5];beq=[20];lb=[0;0;0;];ub=[];[x,fval,exitflag]=linprog(c,A,b,Aeq,beq,lb,ub); x = linprog(f,A,b,Aeq,beq,lb,ub) 功能:求解最小化问题 min f*x 条件 A*x ≤ b Aeq*x = beq lb ≤ x ≤ ub ,决策变量有上下限时,如果没有不等式就设置A = []和b = [] ;没有等式就设置 Aeq=[],beq=[]2,运行结果;Optimization terminated.>> x =0.00002.14293.5714>> fval = 5.7143>> exitflag =1题目二:⎪⎪⎩⎪⎪⎨⎧≥≤+≤+-≤+⋅---+=0,32222625.0min 2121212121212221x x x x x x x x t s x x x x x x f分析:目标函数:min f=0.5x1^2+x2^2-x1x2-2x1-6x2此为二次规划问题,并为线性约束;采用命令[x,fval,exitflag,output, grad,hessian]=fmincon(@fun,x0,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)1.先编写M 文件fun 。
要求根据目标函数和约束条件采用适合的MA TLAB 优化函数求解优化问题,即线性规划问题、无约束非线性规划、约束非线性规划问题、二次规划问题。
问答题要求:(1)对该问题进行分析,写出该问题的优化模型(包括设计变量、目标函数、约束条件);(2)将优化模型转化为matlab 程序(m 文件);(3)利用matlab 软件求解该优化问题,写出最优解。
1、⎪⎪⎩⎪⎪⎨⎧≥≤-≤+≤+-⋅--=0,31232424min 2121212121x x x x x x x x t s x x f 解:程序如下:f=[-4 ;-1];A=[-1 2;2 3;1 -1;];b=[4;12;3];lb=[0 0];[x,fval,exitflag] = linprog(f,A,b,[],[],lb)优化结果:Optimization terminated.x =fval =exitflag =12、72220:m in 321321≤++≤⋅-=x x x t s x x x f解:程序如下:fun='-1*x(1)*x(2)*x(3)';x0=[1 1 1];A=[-1,-2,-2;1,2,2;-1,0,0;0,-1,0;0,0,-1];b=[0;72;0;0;0];Aeq=[];beq=[];lb=[];ub=[];[x,fval,exitflag]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)优化结果:x =fval =+003exitflag =53、022:)1()2(m in 212221=-+⋅-+-=x x t s x x f解:程序如下:fun='(x(1)-2)^2+(x(2)-1)^2';x0=[1 1];A=[];b=[];Aeq=[1 2];beq=[2];lb=[];ub=[];[x,fval,exitflag]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)优化结果:x =fval =exitflag =14、2221)3(m in x x f +-=⎪⎩⎪⎨⎧≥-≥≥--⋅05.000412221x x x x t s解:建立非线性约束函数文件:function [c,ceq]=mycon(x)c=(x(1)^2+x(2)-4);ceq=[]; %无等式约束end编程如下:fun='(x(1)-2)^2+(x(2)-1)^2';x0=[1 1];A=[];b=[];Aeq=[1 2];beq=[2];lb=[];ub=[];[x,fval,exitflag]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,,@mycon)优化结果:x =fval =exitflag =55、求函数42121122(,)32(15)f x x x x x x =+++的极小点。