机械优化设计王荣老师

上传人:回**** 文档编号:146910979 上传时间:2022-09-01 格式:DOC 页数:28 大小:2.19MB
返回 下载 相关 举报
机械优化设计王荣老师_第1页
第1页 / 共28页
机械优化设计王荣老师_第2页
第2页 / 共28页
机械优化设计王荣老师_第3页
第3页 / 共28页
点击查看更多>>
资源描述
(一) 一维搜索方法1.1 题目: 1.2 最优解: 1.3 采用的算法及其算法的基本思想:首先采用进退法确定函数极值点所在的搜索区间a, b,然后采用牛顿法求出极值。进退法的基本思想:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。黄金分割法的基本思想:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。按()缩小 比较大小 确定取舍区间。1.4 程序框图: 进退法和黄金分割法流程图如下: 图1 进退法流程图图2 黄金分割法程序框图1.5 具体程序如下:共3个M文件,文件名分别为:F.m;JINTUI.m;FGOLDEN.mF.m具体程序:%定义f(x)函数的表达式f(x)=t2-10*t+36function y=F(t)y=t2-10*t+36;JINTUI.m具体程序:function t,minF=FGOLDEN(precision,a0,h)a,b=JINTUI(a0,h); A=a; B=b; n=1;while 0.618(n-1)=precision C=A+0.312*(B-A); D=A+0.618*(B-A); if CD if F(C)F(D) B=D; else A=C; end else if F(C)F(D) A=C; else B=D; endend n=n+1; endt=A;minF=F(A);FGOLDEN.m具体程序如下:function x1,x2=JINTUI(a0,h) a=a0; b=a0+h;while 1 if F(a)F(b) h=-h; a=a+h; b=a-h; if F(b)F(b-h)&F(b)F(a) break; end else a=b; b=a+h; if F(a)F(b)&F(a)F(a-h) break; end endendx1=a;x2=b;1.6 输出结果: 2.1 题目: 2.2 最优解: 2.3 采用的算法及其算法的基本思想:首先采用进退法确定函数极值点所在的搜索区间a, b,然后采用牛顿法求出极值。进退法的基本思想:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。黄金分割法的基本思想:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。按()缩小 比较大小 确定取舍区间。2.4程序框图: 进退法和黄金分割法流程图如下: 图1 进退法流程图图2 黄金分割法程序框图2.5具体程序如下:共3个M文件,文件名分别为:F12.m;JINTUI12.m;FGOLDEN12.mF12.m具体程序:%定义f(x)函数的表达式f(x)=t4-5*t3+4*t2-6*t+60function y12=F12(t)y12=t4-5*(t3)+4*(t2)-6*t+60;JINTUI12.m具体程序如下:%用进退法找到合适的初始区间function x1,x2=JINTUI12(a0,h) a=a0; b=a0+h;while 1 if F12(a)F12(b) h=-h; a=a+h; b=a-h; if F12(b)F12(b-h)&F12(b)F12(a) break; end else a=b; b=a+h; if F12(a)F12(b)&F12(a)=precision C=A+0.312*(B-A); D=A+0.618*(B-A); %以上黄金分割法赋值 if CD if F12(C)F12(D) B=D; else A=C; end %判断1,取区间AD,将D点值赋给B或是取区间CBelse if F12(C)F12(D) A=C; else B=D; endend%判断2 n=n+1; %循环加1endt=A;minF12=F12(A);2.6 计算运行结果如下:3.1 题目: 3.2 最优解: 3.3 采用的算法及其算法的基本思想:首先采用进退法确定函数极值点所在的搜索区间a, b,然后采用牛顿法求出极值。进退法的基本思想:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。黄金分割法的基本思想:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。按()缩小 比较大小 确定取舍区间。3.4程序框图: 进退法和黄金分割法流程图如下: 图3.1 进退法流程图 图3.2 黄金分割法程序框图3.5具体程序如下:共3个M文件,文件名分别为:F13.m;JINTUI13.m;FGOLDEN13.mF13.m: %定义f(x)函数的表达式f(x)=(t+1)(t-2)2function y13=F13(t)y13=t3-3*t2+4;JINTUI13.m:%用进退法找到合适的初始区间function x1,x2=JINTUI13(a0,h) a=a0; b=a0+h;while 1 if F13(a)F13(b) h=-h; a=a+h; b=a-h; if F13(b)F13(b-h)&F13(b)F13(a) break; end else a=b; b=a+h; if F13(a)F13(b)&F13(a)=precision C=A+0.312*(B-A); D=A+0.618*(B-A); %以上黄金分割法赋值 if CD if F13(C)F13(D) B=D; else A=C; end %判断1,取区间AD,将D点值赋给B或是取区间CBelse if F13(C)F13(D) A=C; else B=D; endend%判断2 n=n+1; %循环加1endt=A;minF13=F13(2);3.6 计算运行结果如下:二 无约束优化问题1.1 题目: 1.2 最优解: 1.3 采用的算法及其算法的基本思想: 将f(x)在x(k)点作泰勒展开,取二次函数式(x) 作为近似函数,以(x)的极小值点作为 f(x)的近似极小值点。求二次函数的极值1.4程序框图: 牛顿法程图如下:1.6 程序:共一个main21.m文件: main21.m具体程序如下:clc;clear all;syms x1 x2 t p maxn precision; %定义 变量 f21=4*x12+x22-40*x1-12*x2+136;%定义函数 fx1=diff(f21,x1); % 对f求x1偏导 求的一阶导数; diff(函数, n) , 求的n阶导数(n是具体整数); %diff(函数,变量名), 求对的偏导数; diff(函数, 变量名,n)fx2=diff(f21,x2); %对f求x2偏导p=0;g=1;disp( 用梯度法求二元二次目标函数f(X)=4*x12+x22-40*x1-12*x2+136的最优解);for i=1:5 %for i=1:5if(p=0) %if(p=0)x1=input(Please enter the initial starting point x1:);x2=input(Please enter the initial starting point x2:);maxn=input(Please enter the maxmum number of interations maxn:);precision=input(Please enter the minimum of the searching direction precision:);g=input(Output the result of each interation,if you want Enter 1,or not:);for a=1:maxn % for a=1:2:8,则每次取值为1,3,5,7.其中2是步长 %但步长为1时可省略 即原式为 for n=1:1:100f0=subs(f21); %subs(函数名)将函数里的变量用已知量代换 对f中的变量带入已知量f1=subs(fx1); %subs(函数名)将函数里的变量用已知量代换 对fx1中的变量带入已知量f2=subs(fx2); %subs(函数名)将函数里的变量用已知量代换 对fx2中的变量带入已知量if (double(sqrt(f12+f22) precision) s=-H0*g0; x0=x0+s; g0=subs(df,v,x0); H0=subs(H,v,x0); H0=inv(H0); k=k+1;enddisp(-);disp(计算结果如下:);fprintf(迭代的总次数:n k=%dn,k);fprintf(最优点坐标 :n x1=%3.4fn,x0(1);fprintf(最优点坐标 :n x2=%3.4fn ,x0(2)f=subs(f,v,x0);fprintf(函数的极值:n f=%3.4fn,f);disp(*);disp(*);2.6 计算和输出结果: 3.1 题目: 3.2 最优解: 3.3 采用的算法及其算法的基本思想: 将f(x)在x(k)点作泰勒展开,取二次函数式(x) 作为近似函数,以(x)的极小值点作为 f(x)的近似极小值点。求二次函数的极值3.4程序框图: 3.5 程序: 共一个M文件:main23.m:%用牛顿法求目标函数f(x)=(x12+10*x2)2+5*(x3-x42)2+(x2-2*x3)2+10*(x1-x4)4最优解clc;syms x1 x2 x3 x4 precision;f=(x12+10*x2)2+5*(x3-x42)2+(x2-2*x3)2+10*(x1-x4)4;%目标函数v=x1 x2 x3 x4; %变量向量df=jacobian(f,v);%梯度 df=df.; %非共轭转置H=jacobian(df,v);%海森矩阵 disp(*);disp(用牛顿法求目标函数f(x)=(x12+10*x2)2+5*(x3-x42)2+(x2-2*x3)2+10*(x1-x4)4的最优解);disp(*);disp(请输入初始位置点以及精度要求);fprintf(n);x1=input(选取的初始点坐标点x1:);x2=input(选取的初始点坐标点x2:);x3=input(选取的初始点坐标点x3:);x4=input(选取的初始点坐标点x4:);precision=input(计算所要求迭代精度要求:);x0=x1,x2,x3,x4;g0=subs(df,v,x0);H0=subs(H,v,x0);H0=inv(H0); %海森矩阵的逆 k=0; s=-H0*g0;while(subs(sqrt(s(1,1)2+s(2,1)2)+s(3,1)2+s(4,1)2)precision) s=-H0*g0; x0=x0+s; g0=subs(df,v,x0); %求梯度的值 H0=subs(H,v,x0); %求海森矩阵的值 H0=inv(H0); k=k+1;enddisp(-);disp(计算结果如下:);fprintf(迭代的总次数:n k=%dn,k);fprintf(最优点坐标 :n x1=%3.4fn,x0(1);fprintf(最优点坐标 :n x2=%3.4fn ,x0(2);fprintf(最优点坐标 :n x3=%3.4fn ,x0(3);fprintf(最优点坐标 :n x4=%3.4fn ,x0(4);f=subs(f,v,x0);fprintf(函数的极值:n f=%3.4fn,f);disp(*);disp(*);3.6 计算结果如下: 三 约束优化问题1.1 题目: 1.2 最优解: 1.3 采用的算法及其算法的基本思想: 采用的为外点法来进行计算。其基本思想:外点法是从可行域的外部构造一个点序列去逼近原约束问题的最优解。构造函数进行计算。1.4 程序框图: 1.5 程序: 共2个M文件,分别为:main31.m和fdd31.m.main31.m具体如下:%用外点法求多维有约束目标函数f(x)=(x1-2)2+(x2-1)2极值clc;k=0;M=1;c=10;syms x1 x2 precision1 precision2 a1 a2;v=x1 x2; %变量向量f=(x1-2)2+(x2-1)2;%目标函数g1=-x12-x2;g2=x1+x2-2;disp(*);disp(用外点法求多维有约束目标函数f(x)=(x1-2)2+(x2-1)2极值);disp(*);disp(请输入初始位置点以及精度要求);fprintf(n);a1=input(选取的初始点坐标点a1:);a2=input(选取的初始点坐标点a2:);precision1=input(计算所要求迭代精度要求precision1:);precision2=input(计算所要求迭代精度要求precision2:);X0=a1,a2;while(k100) q=f+M*(g1)2+(g2)2); X1=fdd31(q,x1,x2,X0); norm=subs(sqrt(X1(1)-X0(1)2+(X1(2)-X0(2)2); ff0=subs(subs(q,v,X0); ff1=subs(subs(q,v,X1); if(norm=precision1)&(abs(ff0-ff1)/ff0)eps) s=-G1*g1; X0=X0+s; g1=subs(df,v,X0); %求梯度的值 G1=subs(G,v,X0); %求海森矩阵的值 G1=inv(G1); s1=subs(sqrt(s(1)2+s(2)2); k=k+1;end;sc=X0;1.6 运算结果:2.1 题目: 2.2 最优解: 2.3 采用的算法及其算法的基本思想: 采用的为外点法来进行计算。其基本思想:外点法是从可行域的外部构造一个点序列去逼近原约束问题的最优解。构造函数进行计算。2.4 程序框图: 1。.5 程序:2.5 程序 共2个M文件,分别为:main32.m和fdd32.m.Main32.m具体程序:%用外点法求多维有约束目标函数第二大题第二小题f(x)=(x23*(x1-3)2-9)/(27*sqrt(3)极值clc;k=0;M=1;c=8;syms x1 x2 precision1 precision2 a1 a2;v=x1 x2; %变量向量f=(x23*(x1-3)2-9)/(27*sqrt(3);%目标函数g1=x2-x1/sqrt(3);g2=-x1+x2/sqrt(3);g3=x1+x2/sqrt(3)-6;g4=-x1;g5=-x2;h1=x12+x22+x32-25;h2=8*x1+14*x2+7*x3-56; disp(*);disp(用外点法求多维有约束目标函数f(x)=(x23*(x1-3)2-9)/(27*sqrt(3)极值);disp(*);disp(请输入初始位置点以及精度要求);fprintf(n);a1=input(选取的初始点坐标点a1:);a2=input(选取的初始点坐标点a2:);precision1=input(计算所要求迭代精度要求precision1:);precision2=input(计算所要求迭代精度要求precision2:);X0=a1,a2;while(k100) q=f+M*(g1)2+(g2)2+(g3)2+(g4)2+(g5)2); X1=fdd32(q,x1,x2,X0); norm=subs(sqrt(X1(1)-X0(1)2+(X1(2)-X0(2)2); ff0=subs(subs(q,v,X0); ff1=subs(subs(q,v,X1); if(norm=precision1)&(abs(ff0-ff1)/ff0)eps) s=-G1*g1; X0=X0+s; g1=subs(df,v,X0); %求梯度的值 G1=subs(G,v,X0); %求海森矩阵的值 G1=inv(G1); s1=subs(sqrt(s(1)2+s(2)2); k=k+1;end;sc=X0;2.6 运算结果如下:3.1 题目: 3.2 最优解: 3.3 采用的算法及其算法的基本思想: 采用的为外点法来进行计算。其基本思想:外点法是从可行域的外部构造一个点序列去逼近原约束问题的最优解。构造函数进行计算。3.4 程序框图: 3.5 程序 共2个M文件,分别为:main33.m和fdd33.m.main33.m具体程序:%用外点法求多维有约束目标函数f(x)=1000-x12-2*x22-x32-x1*x2-x1*x3极值clc;k=0;M=1;c=8;syms x1 x2 x3 precision1 precision2 a1 a2 a3;v=x1 x2 x3; f=1000-x12-2*x22-x32-x1*x2-x1*x3;g1=-x1;g2=-x2;g3=-x3;h1=x12+x22+x32-25;h2=8*x1+14*x2+7*x3-56; disp(*);disp(用外点法求多维有约束目标函数f(x)=1000-x12-2*x22-x32-x1*x2-x1*x3极值);disp(*);disp(请输入初始位置点以及精度要求:);fprintf(n);a1=input(选取的初始点坐标点a1:);a2=input(选取的初始点坐标点a2:);a3=input(选取的初始点坐标点a3:);precision1=input(计算所需要的迭代精度为precision1:);precision2=input(计算所需要的迭代精度为precision2:);X0=a1,a2,a3;while(k100) q=f+M*(g1)2+(g2)2+(g3)2+(h1)2+(h2)2); X1=fdd33(q,x1,x2,x3,X0); pitch=subs(sqrt(X1(1)-X0(1)2+(X1(2)-X0(2)2+(X1(3)-X0(3)2); XMK1=subs(subs(q,v,X0); XMK=subs(subs(q,v,X1); if(pitch=precision1)&(abs(XMK1-XMK)/XMK1)eps) s=-G1*g1; X0=X0+s; g1=subs(df,v,X0); %求梯度的值 G1=subs(G,v,X0); %求海森矩阵的值 G1=inv(G1); s1=subs(sqrt(s(1)2+s(2)2+s(3)2); k=k+1;end;sc=X0;3.6 运算结果如下
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!