共轭梯度法,机械优化设计_第1页
共轭梯度法,机械优化设计_第2页
共轭梯度法,机械优化设计_第3页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、实用标准文案实验报告实验课程名称 机械优化设计实验项目名称 共轭梯度法年级专业学生姓名学号实验时间:2012 年11 月 2日学生所在学院:专业:班级:姓名学 号实验组实验时间指导教师成绩实验项目名称共轭梯度法求函数极小值1、实验目的及要求:实验目的:掌握机械优化设计方法并能够理论联系实际地加以应用,任务是将课程所学的知识应用于实践,通过实际编写调试及运行程序加深理论知识的掌握并提高解决 优化问题的能力。根据实验指导书的要求应能够独立的编写优化程序并在计算机上运行,学会判断结果及程序的正确性, 学会建立机械优化设计的数学模型,合理选用优化方法,独立的解决机械优化设计的头际冋题。精彩文档实验(或

2、算法)原理:共轭梯度法是共轭方向法中的一种,该方法中每一个共轭向量都是依赖与迭代点处的负梯度而构造出来。它通过梯度来寻找极小点。先通过一维搜索确定搜索区间,然后再通过共轭梯度法运用 c语言编程求解。实验硬件及软件平台:VS2010实验步骤:1. 确定所需求解的函数 y=pow ( x0+t*p0,2)+25*pow(x1+t*p1,2)2. 确定搜索区间3. 画出程序框图4. 用c语言在VS2010 上写出源代码5. 运行程序6. 检验试验结果,分析结果实验内容(包括实验具体内容、算法分析、源代码等等)本实验通过c语言编程,运用共轭梯度法求解函数y极小值;程序框图开1廿°帥k十加是_

3、3_结 束否否TI卫A图4-10共犯梯度陆程序框围源程序#i nclude<stdio.h>#i nclude<math.h>#defi neN 10#defi neeps pow(10,-6)double f(double x, double p, double t)double s;s=pow(x0+t*p0,2)+25*pow(x1+t*p1,2);return s;void sb( double *a, double *b, double x, double p)double t0,t1,t,h,alpha,f0,f1;int k=0;t0=2.5;/*初始值*

4、/h=1;/*初始步长*/alpha=2; /*加步系数*/ f0=f(x,p,t0);t1=t0+h;f1=f(x,p,t1);while if(flvfO)h=alpha*h; t=tO; tO=t1; fO=f1; k+;elseif(k=O)h=-h;t=t1; else*a=t<t1?t:t1;*b=t>t1?t:t1;break ;t仁tO+h;f仁f(x,p,t1);double hjfg( double x, double p)double beta,t1,t2,t;double f1,f2;double a=0,b=0;double *c,*d;c=&a,

5、d=&b;,x0,x1,p0,p1);"pause");sb(c,d,x,p);printf( "nx 1= %lf,x2=%lf,p1=%lf,p2=%lf" printf( "na,b=%lf,%lf" ,a,b);system( beta=(sqrt(5)-1.0)/2;t2=a+beta*(b-a); f2=f(x,p,t2);t1=a+b-t2;f1=f(x,p,t1);while (1)if (fabs(t1-t2)<eps)break ;elseif (f1<f2)t=(t1+t2)/2;b=t2;t

6、2=t1;f2=f1;t仁 a+b-t2;f1=f(x,p,t1);elsea=t1;t1=t2;f仁f2;t2=a+beta*(b-a);f2=f(x,p, t2);t=(t1+t2)/2;return t;void gtd()double xN,gN,pN,t=0,f0,mod1=0,mod2=0,nanda=0;int i,k, n;printf("请输入函数的元数值n=");seanf( "%d",&n);printf( "n请输入初始值n");for (i=0;i <n ;i+)scanf("%lf&

7、quot;,&xi);f0=f(x,g,t);g0=2*x0; g1=50*x1;mod1=sqrt(pow(g0,2)+pow(g1,2);if(mod1>eps)p0=-g0; pi=-gi; k=0; sa)宀OH>I 一匸卩出匸亠xosdoaAIJX*0gHE6 mx* 瓷 005(UHHL+E 七 sa)->|eq (sdHV0polu)± -(cxlLo)Mod+(3o6)Mod)±bsH0polu AJ(E6-O6-EX-O><-J_&HCXI6_&H L6_&HCXI><±:

8、&H Lxurmuucu-匸 d*+ uxllLx-OCU+OXHOX UEd-od-5=&IL_&Hcxld_&HLdur)££d_(d-x)6=ll'L(L)壬m实用标准文案nan da=pow(mod2,2)/pow(mod1,2);printf( "nnanda=%lf,mod=%lf" ,nanda,mod2);P°=-g°+nan da*pO;P1=-g1+nan da*p1;mod1=mod2;k+;printf( "n");printf( "n 最优

9、解 a为ax1= %lf,x2=%lf",x0,x1);printf( "n 最终的函数值为 a%lf" ,f(x,g,t);mai n()gtd();实验结果与讨论:运行截图f ;嵌rs'ywusiminDe5klopVS 2010CHS o丫亡ierDcqugba v;e erx0请输入函数的兀数直"2请输入初始值,1020xl=1dr030000.x2=20-H800Q0* pl=20-0QQ0QGj p2=1000,0QQ0Q0 *, h 1 - -4.500000,1. S80800 111pj_ =20 - 000000 j. p2

10、=1B00 - 9B0000, t; =0 - Q28DGSnanda=0 000369#nad=19 283?62k1=?_5?839,x2=-0.008115,pl=19.20704SjP2=0.C3?09 5, h】 = l:T-500000 "丄£00000 J请按任意键继獵.pl =19.207049,p2-0.037099,t-0.499702Kl=0 003505,k2=0010427,pl=-0L001010,p2=-B,21329 a, bl = -4.5000B0,1.5008001 请按在意键躱绞.pl=-0.001010,p2=-0-521328,t=0-0209Q0nnda=0.000000.nod=0-B00970 xlW.000485,x2=0_000000,pl_000970,p20.80Q00? Cci,hJ = E-4 _560080r L-50000B 】谙按任意锂维续.pl=-0.000770, p2 =-0 - 000009. t=0_49?068k1 =0. 300001 ,x2=-0-000004,pl =0-SB0062.p2 =0.608205 a,bl = -4 5£0阿思阿.1.500国00青扌安任意键媒豉pl=0.000002,p2=0_000205,t=0_ 020002nanda=

温馨提示

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

评论

0/150

提交评论