欢迎来到天天文库
浏览记录
ID:38734929
大小:102.50 KB
页数:15页
时间:2019-06-18
《优化设计上机报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、机械优化设计上机报告姓名:邓小芬学号:2008500303学院:机械工程学院班级:08机设一班指导老师:龚曙光完成时间:2011年12月8日黄金分割法1、数学模型为:f(x)=x2-5x+9的最优解。设置初始点为:x0=0,初始步长h=1,取迭代精度e=0.352、采用的优化方法简介黄金分割法适用于(a,b)区间上的任何单谷函数求极小值问题。对函数除要求“单谷”外不作其他要求,甚至可以不连续。因此,这种方法的适应相当广。黄金分割方法也是建立在区间消去法原理基础上的试探方法,即经搜索区间(a,b)内适当插入两点x1,x2并计算其函数值。x1,x2将区间
2、分成三段。应用函数的单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。然后再在保留下来的区间上作同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。黄金分割法能使相邻两次都具有相同的缩短率0.618,故黄金分割法又称作0.618法。3、程序:#include"stdio.h"#include"math.h"#include"conio.h"#include#definee0.35#definett1floatfunction(floatx){floaty;y=pow(x,2)-5*x+9;retu
3、rn(y);}voidsearching(floata[3],floatf[3]){floath=tt,a1,f1,ia,i;a[0]=0;f[0]=function(a[0]);for(i=0;;i++){a[1]=a[0]+h;f[1]=function(a[1]);if(f[1]=e){h=-h;a[0]=a[1];f[0]=f[1];}else{if(ia==1)return;h=h/2;ia=1;}}for(i=0;;i++){a[2]=a[1]+h;f[2]=function(
4、a[2]);if(f[2]>f[1])break;h=2*h;a[0]=a[1];f[0]=f[1];a[1]=a[2];f[1]=f[2];}if(a[0]>a[2]){a1=a[0];f1=f[0];a[0]=a[2];f[0]=f[2];a[2]=a1;f[2]=f1;}return;}voidmain(){time_tlt;floatfunction(floatx);floata1[3],f1[3],a[4],f[4];floatF1,F2,m,n,xx;searching(a1,f1);a[0]=a1[0];f[0]=f1[0];a[3]=
5、a1[2];f[3]=f1[2];while(fabs(a[0]-a[3])>e){m=a[3]-0.618*(a[3]-a[0]);n=a[0]+0.618*(a[3]-a[0]);F1=function(m);F2=function(n);if(F16、me(<));getch();}}运行结果如下图所示:无约束问题:梯度法算f(x1,x2)=X1²+2*X2²-3*X1-2*X1X2的无约束极值,初始点x0=[1,1]。梯度法是一种古老的优化算法,它的迭代方向是由负梯度构成的,也称最速下降法。梯度法每次迭代都是沿迭代点函数值下降最快的方向搜索,其搜索路线很曲折,收敛速度较慢。梯度法迭代过程中前后迭代向量为正交,故迭代过程是呈直角锯齿形路线曲折走向目标函数的极小点X*。所谓“最速下降”只指函数在迭代点的局部特性,对于目标函数的等值线是同心圆或是同心椭圆且初始点选在其对称轴上,则只要进行一次搜索即7、达到全域极小点。程序:#include#include#include#include#include#definett0.01#defineff1.0e-6#defineac1.0e-6#definead1.0e-6#definen2doubleia;doublefny(double*x){doublex1=x[0],x2=x[1];doublef;f=x1*x1+2*x2*x2-3*x1-2*x1*x2;returnf;}double*iterate(doub8、le*x,doublea,double*s){double*x1;inti;x1=(double*)mall
6、me(<));getch();}}运行结果如下图所示:无约束问题:梯度法算f(x1,x2)=X1²+2*X2²-3*X1-2*X1X2的无约束极值,初始点x0=[1,1]。梯度法是一种古老的优化算法,它的迭代方向是由负梯度构成的,也称最速下降法。梯度法每次迭代都是沿迭代点函数值下降最快的方向搜索,其搜索路线很曲折,收敛速度较慢。梯度法迭代过程中前后迭代向量为正交,故迭代过程是呈直角锯齿形路线曲折走向目标函数的极小点X*。所谓“最速下降”只指函数在迭代点的局部特性,对于目标函数的等值线是同心圆或是同心椭圆且初始点选在其对称轴上,则只要进行一次搜索即
7、达到全域极小点。程序:#include#include#include#include#include#definett0.01#defineff1.0e-6#defineac1.0e-6#definead1.0e-6#definen2doubleia;doublefny(double*x){doublex1=x[0],x2=x[1];doublef;f=x1*x1+2*x2*x2-3*x1-2*x1*x2;returnf;}double*iterate(doub
8、le*x,doublea,double*s){double*x1;inti;x1=(double*)mall
此文档下载收益归作者所有