机械优化设计实验报告.doc
《机械优化设计实验报告.doc》由会员分享,可在线阅读,更多相关《机械优化设计实验报告.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、机械优化设计实验报告 Compilation of reports 20XX 报 告 汇 编 报告文档借鉴学习 word 可编辑实用文档 机械优化设计 实验报告 报告文档借鉴学习 word 可编辑实用文档 目录 1.进退法确定初始区间 . 4 1.1 进退法基本思路 . 4 1.2 进退法程序框图 . 4 1.3 题目 . 4 1.4 源程序代码及运行结果 . 4 2.黄金分割法 . 5 2.2 黄金分割法流程图 . 5 2.3 题目 . 6 2.4 源程序代码及结果 . 6 3.牛顿型法 . 6 3.1 牛顿型法基本思路 . 7 3.2 阻尼牛顿法的流程图 . 7 3.3 题目 . 7 3.
2、4 源程序代码及结果 . 7 4.鲍威尔法 . 8 4.1 鲍威尔法基本思路 . 8 4.2 鲍威尔法流程图 . 8 43 题目 . 9 4.4 源程序代码及结果 . 9 5. 复合形法 . 16 5.1 复合行法基本思想 . 16 5.3 源程序代码及结果 . 16 6. 外点惩罚函数法 . 24 6.1 解题思路:. 24 6.2 流程框图 . 24 6.3 题目 . 24 6.4 源程序代码及结果 . 24 7.机械设计实际问题分析 . 30 7.2 计算过程如下 . 30 7.3 源程序编写 . 31 8.报告总结 . 33 报告文档借鉴学习 word 可编辑实用文档 1. 进退法确定
3、初始区间 1.1 进退法基本思路 :按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。1.2 进退法程序框图 1.3 题目 :用进退法求解函数 ( )27 10 f x x x = - + 的搜索区间 1.4 源程序代码及运行结果 #include #include main() float h,h0,y1,y2,y3,a1=0,a2,a3,fa2,fa3; scanf(“h0=%f,y1=%f”,&h0,&y1); h=h0;a2=h;y2=a2*a2-7*a2+10; if (y2y1) h=-h;a3=a1;y3=y1; loop:a1=a2;
4、y1=y2;a2=a3;y2=y3; a3=a2+2*h;y3=a3*a3-7*a3+10; 报告文档借鉴学习 word 可编辑实用文档 if (y3eps) if(y1=y2) a=a1; a1=a2; y1=y2; a2=a+0.618*(b-a); y2=f(a2); else b=a2;a2=a1;y2=y1; a1=b-0.618*(b-a); y1=f(a1); end end xxx=0.5*(a+b) f = Inline function: f(x) = x-7*x+9 xxx = 3.4997 3. 牛顿型法 报告文档借鉴学习 word 可编辑实用文档 3.1 牛顿型法基本
5、思路 :在kx 邻域内用一个二次函数 ( ) x f 来近似代替原目标函数,并将 ( ) x f 的极小点作为对目标函数 ( ) f x 求优的下一个迭代点1 kx+。经多次迭代,使之逼近目标函数 ( ) f x 的极小点。3.2 阻尼牛 顿法的流程图 : 3.3 题目 :用牛顿阻尼法求函数 ( ) ( ) ( )41 2 1 1 2, 2 2 f x x x x x = - + - 的极小点 3.4 源程序代码及结果 : 开始给定结束0, e x2 1 ( ) ( )k k kf f- d x x1:min ( )k k kkk kkfaaa a+ +x x dx d1 k ke+- =pt
6、ol f1=4*xk(1,1)-24*xk(1,1)+50*xk(1,1)-4*xk(2,1)-32;-4*xk(1,1)+8*xk(2,1); G=12*xk(1,1)-48*xk(1,1)+50,-4;-4,8; dk=-inv(G)*f1; a=-(dk”*f1)/(dk”*G*dk); xk=xk+a*dk; itcl=a*dk; k=k+1; end f=(xk(1,1)-2)+(xk(1,1)-2*xk(2,1); fprintf(“n %d x* f :n”,k); disp(xk); disp(f); 结果显示:input x0:1;1 用阻尼牛顿法迭代 27 次后得到 极小点
7、 x*及极小值 f 为: 2.0000 1.0000 1.3270e-019 4. 鲍威尔法 4.1 鲍威尔法基本思路 :在不用导数的前提下,在迭代中逐次构造 G 的共轭方向。4.2 鲍威尔法流程图 :报告文档借鉴学习 word 可编辑实用文档 4 3 题目 :求函数 f(x)= x0*x0+x1*x1-x0*x1-10*x0-4*x1+60的最优点,收敛精度=0.001 4.4 源程序代码及结果 : #include “stdio.h” #include “stdlib.h” #include “math.h” double objf(double x) double ff; ff=x0*x
8、0+x1*x1-x0*x1-10*x0-4*x1+60; return(ff); 报告文档借鉴学习 word 可编辑实用文档 void jtf(double x0,double h0,double s,int n,double a,double b) int i; double *x3,h,f1,f2,f3; for(i=0;i=f1) h=-h0; for(i=0;if2) for(i=0;ieps); for(i=0;idlt) dlt=df; m=j; sdx=0; for(i=0;i #include #include #include #define E0 1e-5 /*复合形法收敛
9、控制精度*/ 报告文档借鉴学习 word 可编辑实用文档 double *apply(int,int); /*申请矩阵空间*/ double f(double *); /*目标函数*/ double *g(double *); /*约束函数*/ bool judge(double *); /*可行点的判断*/ int main() int n,k; int i,j,k1; int l; double temporary; double restrain; /*收敛条件*/ double reflect; /*反射系数*/ srand(unsigned)time(NULL); printf(“请
10、输入目标函数的维数 n:”); /*输入已知数据*/ scanf(“%d”,&n); printf(“请输入复合形的顶点数 k:”); scanf(“%d”,&k); double *x=apply(k,n); /*存放复合形顶点*/ double *y=(double *)calloc(k,sizeof(double); /*存放目标函数值*/ double *p=(double *)calloc(3,sizeof(double); /*存放约束函数值*/ double *a=(double *)calloc(n,sizeof(double); /*存放设计变量的下限*/ double *b
11、=(double *)calloc(n,sizeof(double); /*存放设计变量的上限*/ double *x_c=(double *)calloc(n,sizeof(double); /*存放可行点中心*/ double *x_r=(double *)calloc(n,sizeof(double); /*存放最坏点的反射点*/ printf(“请输入选定的第一个可行点 x1(包含%d 个数):”,n); for(i=0;i0) break; if(i=3) return true; else return false; 报告文档借鉴学习 word 可编辑实用文档 6. 外点惩罚函数法
12、 6.1 :解题思路:外点法是从可行域的外部构造一个点序列去逼近原约束问题的最优解。外点法可以用来求解含不等式和等式约束的优化问题。外点惩罚函数的形式为:6.2 流程框图 : 6.3 题目:求函数 f(x)=(x1-5)*(x1-5)+4*(x2-6)*(x2-6)的最优点,约束条件:g1(x)=64-x1*x1-x2*x20;g2(x)=x2-x1-100;g3(x)=x1-100;收敛精度=0.00001; 6.4 源程序 代码及结果 : 2 21 1( , ) ( ) max0, ( ) ( )m li ji jr f r g r h f= = + + x x x x报告文档借鉴学习 w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 优化 设计 实验 报告
限制150内