共轭梯度法-机械优化设计(共9页).doc

上传人:飞****2 文档编号:17304026 上传时间:2022-05-23 格式:DOC 页数:9 大小:75KB
返回 下载 相关 举报
共轭梯度法-机械优化设计(共9页).doc_第1页
第1页 / 共9页
共轭梯度法-机械优化设计(共9页).doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《共轭梯度法-机械优化设计(共9页).doc》由会员分享,可在线阅读,更多相关《共轭梯度法-机械优化设计(共9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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极小值

3、; 程序框图源程序#include#include#define N 10#define eps 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; /*初始值*/h=1; /*初始步长*/alpha=2; /*加步系数*/f0=f(x,p,t0);t1=t0+h;f1=

4、f(x,p,t1);while(1) if(f1f0) h=alpha*h; t=t0; t0=t1; f0=f1; k+; else if(k=0) h=-h;t=t1; else *a=tt1?t:t1; break; t1=t0+h; f1=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,d=&b;sb(c,d,x,p);printf(nx1=%lf,x2=%lf,p1=%lf,p2=%lf,x0,x1,p0,p1);prin

5、tf(na,b=%lf,%lf,a,b);system(pause);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; else if(f1f2) t=(t1+t2)/2; b=t2; t2=t1; f2=f1; t1=a+b-t2; f1=f(x,p,t1); else a=t1; t1=t2; f1=f2; t2=a+beta*(b-a); f2=f(x,p,t2); t=(t1+t2)/2;return t;void g

6、td()double xN,gN,pN,t=0,f0,mod1=0,mod2=0,nanda=0;int i,k,n;printf(请输入函数的元数值n=);scanf(%d,&n);printf(n请输入初始值n);for(i=0;ieps) p0=-g0; p1=-g1; k=0; while(1) t=hjfg(x,p); printf(np1=%lf,p2=%lf,t=%lf,p0,p1,t); x0=x0+t*p0; x1=x1+t*p1; g0=2*x0; g1=50*x1; /*printf(nx1=%lf,x2=%lf,g1=%lf,g2=%lf,x0,x1,g0,g1);*/

7、 mod2=sqrt(pow(g0,2)+pow(g1,2);if(mod2=eps) break; else if(k+1=n) g0=2*x0; g1=50*x1; p0=-g0; p1=-g1; k=0; else nanda=pow(mod2,2)/pow(mod1,2); printf(nnanda=%lf,mod=%lf,nanda,mod2); p0=-g0+nanda*p0; p1=-g1+nanda*p1; mod1=mod2; k+; printf(n-); printf(n最优解a为ax1=%lf,x2=%lf,x0,x1);printf(n最终的函数值为a%lf,f(x,g,t);main()gtd();实验结果与讨论: 运行截图通过运行得到结果:x1=0.,x2=0时,ymin=0.经验证结果正确指导教师意见: 签名: 年 月 日专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁