网站大量收购独家精品文档,联系QQ:2885784924

机械优化设计上机实验.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机械优化设计上机实验

机械优化设计上机实验 机械五班 李煎饼 2009301390XXX 题目:通过编程发实现求解形如的二元二次目标函数的最优解。 要求: 1)输入系数a、b、c、d、e、f 迭代精度ε 初始点(x1,x2) 2) 输出最优值和最优点 带入书本P66例题得如下运行结果: 运行结果与书本求解结果一致 源程序代码如下: #include iostream.h #includemath.h double fun(double x[2],double f_xs[6]); void D_fun(double x[2],double f_xs[6],double g0[2]); void abc(double x[2],double p[2],double f_xs[6],double t[3]); double t_c(double t[3]); int H(double g0[2],double c); void main() { int i; double f_xs[6], x[2],f0,g0[2],c,t[3],t_bc,p[2]; cout请输入f(x1,x2)=ax1^2+bx2^2+cx1+dx2+e+fx1x2 的系数a、b、c、d、e、fendl; cinf_xs[0]f_xs[1]f_xs[2]f_xs[3]f_xs[4]f_xs[5]; cout请输入初始点(x1,x2)endl; cinx[0]x[1]; cout请输入迭代精度εendl; cinc; D_fun(x,f_xs,g0); for(i=0;i2;i++) { p[i]=(-1)*g0[i]; } for(;;) { D_fun(x,f_xs,g0); abc(x,p,f_xs,t); t_bc=t_c(t); for(i=0;i2;i++) { x[i]=x[i]+t_bc*p[i]; } if(H(g0,c)!=0) break; for(i=0;i2;i++) { p[i]=g0[i]+t_bc*p[i]; } } f0=fun(x,f_xs); coutendl由梯度法求得二次目标函数最优点为(x[0]、x[1])endl; cout函数值f=f0endl; } double fun(double x[2],double f_xs[6]) { int i,j; double f=0; for(i=0;i2;i++) { f+=pow(x[i],2)*f_xs[i]; } for(;i4;i++) { f+=x[i%2]*f_xs[i]; } f+=f_xs[i]; for(i=0;i2;i++) { for(j=i+1;j2;j++) { f+=f_xs[3+2*(i+1)-i*(i+1)/2+j-i-1]*x[i]*x[j]; } } return f; } void D_fun(double x[2],double f_xs[6],double g0[2]) { g0[0]=2*f_xs[0]*x[0]+f_xs[2]+x[1]*f_xs[5]; g0[1]=2*f_xs[1]*x[1]+f_xs[3]+x[0]*f_xs[5]; } void abc(double x[2],double p[2],double f_xs[6],double t[3])

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档