实验报告阻尼牛顿法.doc_第1页
实验报告阻尼牛顿法.doc_第2页
实验报告阻尼牛顿法.doc_第3页
实验报告阻尼牛顿法.doc_第4页
实验报告阻尼牛顿法.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学机械学院机测系课程上机实验报告课 程 名 称: 机械优化设计 班级日 期成绩评定姓名实验室老师签名实验名称用阻尼牛顿法程序解题所用软件C+ DEV实验目的及内容实验目的: 1.掌握并能够建立最优化基本类型问题的数学模型。 2.掌握最优化方法的基本概念、基本理论和基本方法,奠定最优化的理论基础。 3.能够熟练编制和调试最优化方法的程序,奠定解决实际中的优化问题的基础实验内容:理解阻尼牛顿法并编写相关程序求其最优解。 牛顿法程序考核题 实验原理步骤、实验原理:实验步骤: 1,画流程图,编写程序; 2,将目标函数代入; 3,编译运行,将结果保存实验结果及分析 *阻尼牛顿法计算结果*+一维搜索方法:黄金分割法+初始坐标: x( 0)= 0.0000000, 0.0000000, f( 0)= 16.0000000迭代轮数 k= 1 x( 1)= -1.1249988, 0.7499992, f( 1)= 9.8125000 迭代精度: 0.000009986迭代轮数 k= 2 x( 2)= -1.1250000, 0.7500000, f( 2)= 9.8125000 迭代精度: 0.000000114*阻尼牛顿法法优化最优点及目标函数值为: x( * )= -1.1250000, 0.7500000, f( * )= 9.8125000 迭代精度: 0.000000114算法程序实现/*csssqj.cpp */ #include #include #include #include #include #define N 2 /*优化设计维数*/#define EPSIN 0.000001 /*迭代精度*/#define H_QJ 1.0 /*初始区间搜索步长*/#define Y_F 1 /*一维搜索方法选择:1黄金分割法*/ /* 2二次插值法*/ FILE *fp;char outname50=阻尼牛顿法计算结果.txt; /*计算结果输出文件*/*给出初始点坐标*/void csd_x(double x0)int i;for(i=0;iN;i+) /*初始点为坐标原点的情况*/x0i=0.0;return;/*目标函数*/double hanshu(double x)double f;f=4.0*(x0+1.0)*(x0+1.0)+2.0*(x1-1.0)*(x1-1.0)+x0+x1+10.0; /*阻尼牛顿法*/return f;/*函数的梯度*/void gread(double x,double gf)/*阻尼牛顿法*/gf0=8.0*(x0+1.0)+1.0;gf1=4.0*(x1-1.0)+1.0;return;/*Heisen矩阵*/void heisen(double x,double heiN)hei00=8.0;hei01=0.0;hei10=0.0;hei11=4.0;return;/*计算f(xk+as)*/double xkadd(double x,double d,double a)int i;double x1N;for(i=0;iN;i+)x1i=xi+a*di;return hanshu(x1);/*输出选定的一维迭代方法*/void ywddf(int yw)switch(yw)case 1:fprintf(fp,+一维搜索方法:黄金分割法+nn);break;case 2:fprintf(fp,+一维搜索方法:二次插值法+nn);break;return;/*输出当前迭代点坐标及目标函数值*/double xfout(double x,int m)int j;double f;f=hanshu(x);if(-1=m)fprintf(fp, x( * )=);elsefprintf(fp, x(%3d)=,m);for(j=0;jf2)a2=a3;a3=0.0;f1=f2;f2=f3;f3=f1;h=-h;doa1=a2;a2=a3;f1=f2;f2=f3;a3=a2+h;f3=xkadd(x,d,a3);h=2*h;while(f30.0)ab0=a1;ab1=a3;elseab0=a3;ab1=a1;return;/*黄金分割法*/void goldcut(double x,double d,double h,double ebsin)double a1,a2,f1,f2,a,b,ab2;int i;csssqj(x,d,h,ab);a=ab0;b=ab1;a1=b-0.618*(b-a);f1=xkadd(x,d,a1);a2=a+0.618*(b-a);f2=xkadd(x,d,a2);doif(f1f2)a=a1;a1=a2;f1=f2;a2=a+0.618*(b-a);f2=xkadd(x,d,a2);elseb=a2;a2=a1;f2=f1;a1=b-0.618*(b-a);f1=xkadd(x,d,a1);while(b-aebsin);for(i=0;iN;i+)xi+=(b+a)*di/2;return;/*二次插值法*/int rccz(double x,double d,double h,double ebsin)double a1,a2,a3,a4,f1,f2,f3,f4,c1,c2,ab2;int i,p=0,k=0;csssqj(x,d,h,ab);a1=ab0;a3=ab1;a2=(a1+a3)/2;f1=xkadd(x,d,a1);f2=xkadd(x,d,a2);f3=xkadd(x,d,a3);while(1)c1=(f3-f1)/(a3-a1);c2=(f2-f1)/(a2-a1)-c1)/(a2-a3);if(0=c2)p=1;break;a4=0.5*(a1+a3-c1/c2);if(a4-a1)*(a3-a4)=0.0)p=2;break;f4=xkadd(x,d,a4);if(1=k&fabs(a4-a2)=ebsin)break;if(a4f4)f1=f2;a1=a2;k=1;a2=a4;f2=f4;elsea3=a4;f3=f4;elseif(f2f4)f3=f2;a3=a2;k=1;a2=a4;f2=f4;elsea1=a4;f1=f4;if(0=p)f1=f4-f2?a4:a2;elsef1=a2;for(i=0;iN;i+)xi+=f1*di;return p;/*矩阵求逆*/void atoa_1(double aN,double bN)int i,j,k,m;double fact,ebs=0.0;for(i=0;iN;i+)for(j=0;jN;j+)bij=0.0;ebs+=aij*aij;ebs=sqrt(ebs)/(N*N*100);for(i=0;iN;i+)bii=1.0;for(i=0;iN;i+)if(fabs(aii)ebs)for(k=i;kebs)for(m=0;mN;m+)fact=aim;aim=akm;akm=fact;fact=bim;bim=bkm;bkm=fact;break;fact=aii;for(k=0;kN;k+)aik/=fact;bik/=fact;for(k=0;ki;k+)fact=aki;for(m=0;mN;m+)aim-=aim*fact;bim-=bim*fact;for(k=i+1;kN;k+)fact=aki;for(m=0;mN;m+)aim-=aim*fact;bim-=bim*fact;return;/*阻尼牛顿法*/void newtow_method(double x,double h,double ebsin,int yw)double dN,t,f,sN,heiNN,hei_1NN;int i,j,k=1;fprintf(fp,*阻尼牛顿法计算结果*nn);ywddf(yw); /*输出一维迭代方法*/fprintf(fp,初始坐标:n);f=xfout(x,0);fprintf(fp,n);gread(x,d);doheisen(x,hei);atoa_1(hei,hei_1);for(i=0;iN;i+)si=0.0;for(j=0;jN;j+)si+=hei_1ij*dj;switch(yw)case 1:goldcut(x,s,h,ebsin);break;case 2:j=rccz(x,s,h,ebsin);break;gread(x,d);fprintf(fp,迭代轮数 k=%3d n,k);f=xfout(x,k);t=0;for(i=0;iebsin);fprintf(fp,n*n);fprintf(fp,阻尼牛顿法法优化最优点及目标函数值为:n);f=xfout(x,-1);fprintf(fp, 迭代精度:);fprintf(fp,%15.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论