2020(机械制造行业)MATLB机械优化设计程序

上传人:精****库 文档编号:134570985 上传时间:2020-06-06 格式:DOC 页数:63 大小:356.65KB
返回 下载 相关 举报
2020(机械制造行业)MATLB机械优化设计程序_第1页
第1页 / 共63页
2020(机械制造行业)MATLB机械优化设计程序_第2页
第2页 / 共63页
2020(机械制造行业)MATLB机械优化设计程序_第3页
第3页 / 共63页
2020(机械制造行业)MATLB机械优化设计程序_第4页
第4页 / 共63页
2020(机械制造行业)MATLB机械优化设计程序_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《2020(机械制造行业)MATLB机械优化设计程序》由会员分享,可在线阅读,更多相关《2020(机械制造行业)MATLB机械优化设计程序(63页珍藏版)》请在金锄头文库上搜索。

1、(机械制造行业)MATLB机械优化设计程序例2-1求 在点和点的梯度。%例2-1梯度的计算syms x1 x2 %定义符号变量f=x12+x22-4*x1+4; %定义二维目标函数gradf=jacobian(f) %计算函数梯度Xzuobiao1=3,2;Xzuobiao2=2,0; %定义Xzuobiao点坐标gfk1=subs(subs(gradf,Xzuobiao1(1),Xzuobiao1(2) %计算Xzuobiao1点的梯度值gmk1=norm(gfk1) %计算Xzuobiao1点的梯度模igk1=gfk1/gmk1 %计算Xzuobiao1点的梯度单位向量gfk2=subs(

2、subs(gradf,Xzuobiao2(1),Xzuobiao2(2) %计算Xzuobiao1点的梯度值gmk2=norm(gfk2) %计算Xzuobiao1点的梯度模igk2=gfk2/gmk2 %计算Xzuobiao1点的梯度单位向量gradf = 2*x1-4, 2*x2gfk1 = 2 4gmk1 = 4.4721igk1 = 0.4472 0.8944gfk2 = 0 0gmk2 = 0Warning: Divide by zero.igk2 = NaN NaN例2-2把函数在点展开泰勒二次近似式%例2-2 Taylor展开 syms x1 x2f=4+4.5*x1-4*x2+

3、x12+2*x22-2*x1*x2+x14-2*x12*x2disp(函数f的表达式:)pretty(simplify(f);%计算函数的一阶偏导数dx1=diff(f,x1);dx2=diff(f,x2);disp(函数f的一阶偏导数表达式:)pretty(simplify(dx1);pretty(simplify(dx2);%计算函数的二阶偏导数dx1x1=diff(f,x1,2);dx1x2=diff(dx1,x2);dx2x1=diff(dx2,x1);dx2x2=diff(f,x2,2);%根据函数f的二阶偏导数,构成Hessian矩阵disp(函数f的二阶偏导数表达式:)prett

4、y(simplify(dx1);H=dx1x1 dx1x2;dx2x1 dx2x2;pretty(simplify(H);%计算xk点的值x1=2.0; x2=2.5;disp(函数在xk点的函数值:)fk=subs(f)disp(函数在xk点的一节偏导数矩阵:)dk=subs(dx1 dx2)disp(函数xk点的海色矩阵:)HK=subs(dx1x1 dx1x2;dx2x1 dx2x2)disp(函数在xk点的二阶Taylor展开式:)syms x1 x2fkTL=fk+dk*x1-2.0;x2-2.5+0.5*x1-2.0,x2-2.5*HK*x1-2.0;x2-2.5;pretty(s

5、implify(fkTL);f =4+9/2*x1-4*x2+x12+2*x22-2*x1*x2+x14-2*x12*x2 函数f的表达式: 2 2 4 2 4 + 9/2 x1 - 4 x2 + x1 + 2 x2 - 2 x1 x2 + x1 - 2 x1 x2函数f的一阶偏导数表达式: 3 9/2 + 2 x1 - 2 x2 + 4 x1 - 4 x1 x2 2 -4 + 4 x2 - 2 x1 - 2 x1函数f的二阶偏导数表达式: 3 9/2 + 2 x1 - 2 x2 + 4 x1 - 4 x1 x2 2 2 + 12 x1 - 4 x2 -2 - 4 x1 -2 - 4 x1 4

6、 函数在xk点的函数值:fk = 5.5000函数在xk点的一节偏导数矩阵:dk = 15.5000 -6.0000函数xk点的海色矩阵:HK = 40 -10 -10 4函数在xk点的二阶Taylor展开式: 2 2 32 - 79/2 x1 + 4 x2 + 20 x1 - 10 x1 x2 + 2 x2例2-3求函数的极值点和极值%例2-3 求函数的极值syms x1 x2 x3f=2*x12+5*x22+x32+2*x2*x3+2*x1*x3-6*x2+3;disp(函数f的表达式:)pretty(simplify(f);latex(f);%计算函数的1阶偏导数dsx1=diff(f,

7、x1);dsx2=diff(f,x2);dsx3=diff(f,x3);disp(函数f的1阶偏导数:)pretty(simplify(dsx1);pretty(simplify(dsx2);pretty(simplify(dsx3);%计算函数的2阶偏导数dsx1x1=diff(f,x1,2);dsx1x2=diff(dsx1,x2);dsx1x3=diff(dsx1,x3);dsx2x1=diff(dsx2,x1);dsx2x2=diff(f,x2,2);dsx2x3=diff(dsx2,x3);dsx3x1=diff(dsx3,x1);dsx3x2=diff(dsx3,x2);dsx3x

8、3=diff(f,x3,2);%根据函数f的2阶偏导数,构成海色矩阵disp(函数f的2阶偏导数矩阵)H=dsx1x1 dsx1x2 dsx1x3;dsx2x1 dsx2x2 dsx2x3;dsx3x1 dsx3x2 dsx3x3%计算海色矩阵的正定性D,p=chol(subs(H);if p=0;disp(海色矩阵为正定,函数f有极小点:);end%计算极值存在的必要条件,求极值点坐标x1,x2,x3=solve(dsx1,dsx2,dsx3,x1,x2,x3);disp(极值点坐标:)fprintf(1,x1=%3.4fn,subs(x1);fprintf(1,x2=%3.4fn,subs

9、(x2);fprintf(1,x3=%3.4fn,subs(x3);disp(在极值点,函数f数值:)fmb=subs(f)M文件的运行结果如下函数f的表达式: 2 2 2 2 x1 + 5 x2 + x3 + 2 x2 x3 + 2 x1 x3 - 6 x2 + 3函数f的1阶偏导数: 4 x1 + 2 x3 10 x2 + 2 x3 - 6 2 x3 + 2 x2 + 2 x1函数f的2阶偏导数矩阵 H = 4, 0, 2 0, 10, 2 2, 2, 2海色矩阵为正定,函数f有极小点:极值点坐标:x1=1.0000x2=1.0000x3=-2.0000在极值点,函数f数值: fmb =

10、0例2-5 已知二维约束问题受约束为 例2-5 MATLAB实现,用M文件判别函数的凸性:%例2-5判别函数的凸性syms x1 x2f=60-10*x1-4*x2+x12+x22-x1*x2;disp(函数f的表达式:)pretty(simplify(f);dsx1=diff(f,x1);dsx2=diff(f,x2);disp(函数f的1阶偏导数:)pretty(simplify(dsx1);pretty(simplify(dsx2);%计算函数的2阶偏导数dsx1x1=diff(f,x1,2);dsx1x2=diff(dsx1,x2);dsx2x1=diff(dsx2,x1);dsx2x2=diff(f,x2,2);%根据函数f的2阶偏导数,构成海色矩阵disp(函数f的2阶偏导数矩阵)H=dsx1x1 dsx1x2;dsx2x1 dsx2x2%计算函数矩阵的正定性d,p=chol(subs(H);if p=0;disp(海色矩阵为正定,函数f为凸函数);endM文件的运行结果如下函数f的表达式: 2 2 60 - 10 x1 - 4 x2 + x1 + x2 - x1 x2函数f的1阶偏导数: -10 + 2 x1 - x2 -4 + 2 x2 - x1函数f的2阶偏导数矩阵H = 2, -1 -1, 2海色矩阵为正定,函数f为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号