欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    机械优化设计实验报告.docx

    • 资源ID:4085141       资源大小:27.36KB        全文页数:56页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    机械优化设计实验报告.docx

    1、机械优化设计实验报告.机械优化设计实验报告.1.进退法确立初始区间 . .31.1进退法基本思路 . .31.2进退法程序框图 . .31.3题目 . .31.4源程序代码及运转结果 . .32.黄金切割法 . .42.2黄金切割法流程图 .42.3题目 . .52.4源程序代码及结果 . .53.牛顿型法 .63.1牛顿型法基本思路 .63.2阻尼牛顿法的流程图 . .63.3题目 . .73.4源程序代码及结果 . .74.鲍威尔法 .84.1鲍威尔法基本思路 . .84.2鲍威尔法流程图 . .84 3 题目 . .94.4源程序代码及结果 . .95.复合形法 . .165.1复合行法

    2、基本思想 . .165.3源程序代码及结果 . .176.外点处罚函数法 . .246.1解题思路: .246.2流程框图 . .246.3题目 . .256.4源程序代码及结果 . .257.机械设计实质问题剖析 . .367.2计算过程以下 .367.3源程序编写 . .378.报告总结 .40.1.进退法确立初始区间1.1 进退法基本思路: 依据必定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高 - 低- 高”变化的单峰区间。1.2 进退法程序框图1.3 题目:用进退法求解函数 f x x2 7x 10的搜寻区间1.4 源程序代码及运转结果#include #include

    3、 main()float h,h0,y1,y2,y3,a1=0,a2,a3,fa2,fa3;scanf(h0=%f,y1=%f,&h0,&y1);h=h0;a2=h;y2=a2*a2-7*a2+10;if (y2y1)h=-h;a3=a1;y3=y1;loop:a1=a2;y1=y2;a2=a3;y2=y3;a3=a2+2*h;y3=a3*a3-7*a3+10;.if (y3eps)if (y1=y2)a=a1;a1=a2;y1=y2;a2=a+0.618*(b-a);y2=f(a2);elseb=a2;a2=a1;y2=y1;a1=b-0.618*(b-a);y1=f(a1);endend.

    4、xxx=0.5*(a+b)f =Inline function:f(x) = x2-7*x+9xxx =3.49973.牛顿型法3.1牛顿型法基本思路 :在 xk 邻域内用一个二次函数x来近似取代原目标函数,并将x 的极小点作为对目标函数 fx 求优的下一个迭代点 xk1 。经多次迭代,使之迫近目标函数 f x 的极小点。3.2 阻尼牛顿法的流程图:开始给定 x 0 ,k 0dk 2 f ( xk ) 1 f (xk ).xk 1xkkdkk k 1k : min f (xkdk ).3.3 题目 : 用牛顿阻尼法求函数 f x1 , x2x1 24x1 2x2的极小点3.4 源程序代码及结果

    5、:k=0;ptol=1.0e-5;xk=input( input x0: )itcl=1;1;while norm(itcl)=ptolf1=4*xk(1,1)3-24*xk(1,1)2+50*xk(1,1)-4*xk(2,1)-32;-4*xk(1,1)+8*xk(2,1);G=12*xk(1,1)2-48*xk(1,1)+50,-4;-4,8;dk=-inv(G)*f1; a=-(dk*f1)/(dk*G*dk);xk=xk+a*dk;itcl=a*dk;k=k+1;endf=(xk(1,1)-2)4+(xk(1,1)-2*xk(2,1)2;fprintf( n ? ? %d ?o ? ?

    6、D? x*? n?D?,k); f ?a:disp(xk);disp(f);结果显示: input x0:1;1用阻尼牛顿法迭代 27 次后获得 极小点 x* 及极小值 f 为 :.2.00001.00001.3270e-0194.鲍威尔法4.1 鲍威尔法基本思路 :在不用导数的前提下,在迭代中逐次结构 G的共轭方向。4.2 鲍威尔法流程图:.4 3 题 目 : 求 函 数 f ( x ) =x0*x0+x1*x1-x0*x1-10*x0-4*x1+60 的最长处,收敛精度=0.0014.4 源程序代码及结果:#include stdio.h#include stdlib.h#include

    7、math.hdouble objf(double x)double ff;ff=x0*x0+x1*x1-x0*x1-10*x0-4*x1+60;.return(ff);void jtf(double x0,double h0,double s,int n,double a,double b)int i;double *x3,h,f1,f2,f3;for(i=0;i3;i+)xi=(double *)malloc(n*sizeof(double);h=h0;for(i=0;in;i+)*(x0+i)=x0i;f1=objf(x0);for(i=0;i=f1)h=-h0;for(i=0;in;i+

    8、)*(x2+i)=*(x0+i);f3=f1;for(i=0;in;i+)*(x0+i)=*(x1+i);*(x1+i)=*(x2+i);f1=f2;f2=f3;for(;)h=2*h;for(i=0;in;i+)*(x2+i)=*(x1+i)+h*si;f3=objf(x2);.if(f2f3) break;else for(i=0;in;i+) *(x0+i)=*(x1+i); *(x1+i)=*(x2+i);f1=f2;f2=f3;if(h0)for(i=0;in;i+)ai=*(x2+i);bi=*(x0+i);else for(i=0;in;i+) ai=*(x0+i); bi=*(

    9、x2+i);for(i=0;i3;i+)free(xi);double gold(double a,double b,double eps,int n,double xx) int i;double f1,f2,*x2,ff,q,w; for(i=0;i2;i+)xi=(double *)malloc(n*sizeof(double); for(i=0;if2)for(i=0;in;i+)bi=*(x0+i);*(x0+i)=*(x1+i);f1=f2;for(i=0;in;i+)*(x1+i)=ai+0.382*(bi-ai);f2=objf(x1);else for(i=0;in;i+)

    10、ai=*(x1+i); *(x1+i)=*(x0+i); f2=f1; for(i=0;in;i+) *(x0+i)=ai+0.618*(bi-ai); f1=objf(x0);q=0;for(i=0;ieps); for(i=0;in;i+) xxi=0.5*(ai+bi); ff=objf(xx);.for(i=0;i2;i+)free(xi);return(ff);double oneoptim(double x0,double s,double h0,double epsg,intn,double x)double *a,*b,ff;a=(double *)malloc(n*sizeo

    11、f(double);b=(double *)malloc(n*sizeof(double);jtf(x0,h0,s,n,a,b);ff=gold(a,b,epsg,n,x);free(a);free(b);return (ff);double powell(double p,double h0,double eps,double epsg,int n,double x)int i,j,m;double *xx4,*ss,*s;double f,f0,f1,f2,f3,fx,dlt,df,sdx,q,d;ss=(double *)malloc(n*(n+1)*sizeof(double);s=(

    12、double *)malloc(n*sizeof(double);for(i=0;in;i+)for(j=0;j=n;j+)*(ss+i*(n+1)+j)=0;*(ss+i*(n+1)+i)=1;for(i=0;i4;i+)xxi=(double *)malloc(n*sizeof(double);for(i=0;in;i+)*(xx0+i)=pi;.for(;)for(i=0;in;i+)*(xx1+i)=*(xx0+i);xi=*(xx1+i);f0=f1=objf(x);dlt=-1;for(j=0;jn;j+)for(i=0;idlt)dlt=df;m=j;sdx=0;for(i=0;

    13、in;i+)sdx=sdx+fabs(xi-(*(xx1+i);if(sdxeps)free(ss);free(s);for(i=0;i4;i+)free(xxi);return(f);for(i=0;in;i+)*(xx2+i)=xi;.f2=f;for(i=0;in;i+)*(xx3+i)=2*(*(xx2+i)-(*(xx1+i);xi=*(xx3+i);fx=objf(x);f3=fx;q=(f1-2*f2+f3)*(f1-f2-dlt)*(f1-f2-dlt);d=0.5*dlt*(f1-f3)*(f1-f3);if(f3f1)|(qd)if(f2=f3)for(i=0;in;i+)

    14、*(xx0+i)=*(xx2+i);elsefor(i=0;in;i+)*(xx0+i)=*(xx3+i);elsefor(i=0;in;i+)*(ss+(i+1)*(n+1)=xi-(*(xx1+i);*(s+i)=*(ss+(i+1)*(n+1);f=oneoptim(xx0,s,h0,epsg,n,x);for(i=0;in;i+)*(xx0+i)=xi;for(j=m+1;j=n;j+)for(i=0;in;i+)*(ss+i*(n+1)+j-1)=*(ss+i*(n+1)+j);.void main()double p=1,2;double ff,x2;ff=powell(p,0.3

    15、,0.001,0.0001,2,x);printf(x0=%f,x1=%f,ff=%fn,x0,x1,ff);getchar();5.复合形法5.1 复合行法基本思想: 在可行域中选用 K 个设计点 (n+1K2n)作为初始复合形的极点。 比较各极点目标函数值的大小,去掉目标函数值最大的极点 ( 称最坏点 ) ,以坏点之外其他各点的中心为映照中心, 用坏点的映照点替代该点, 组成新的复合形顶点。 频频迭代计算,使复合形不停向最长处挪动和缩短,直至缩短到复合形的极点与形心特别靠近,且知足迭代精度要求为止。.5.2 题目:求函数 f(x)=(x1-5)*(x1-5)+4*(x2-6)*(x2-6)

    16、 的最长处,拘束条件为 g1(x)=64-x1*x1-x2*x2 0; g2(x)=x2-x1-10 0;g3(x)=x1-10 0;收敛精度自定义;5.3 源程序代码及结果 :#include #include #include #include #define E0 1e-5 /* 复合形法收敛控制精度 */double *apply(int,int); /*申请矩阵空间 */double f(double *); /*目标函数 */double *g(double *); /*拘束函数 */bool judge(double *); /*可行点的判断 */int main() int n

    17、,k;int i,j,k1;int l;double temporary;double restrain; /*收敛条件 */double reflect; /*反射系数 */srand(unsigned)time(NULL);printf(请输入目标函数的维数 n:); /*输入已知数据 */scanf(%d,&n);printf(请输入复合形的极点数 k:);scanf(%d,&k);double *x=apply(k,n); /*寄存复合形极点 */double *y=(double *)calloc(k,sizeof(double); /*寄存目标函数值 */double *p=(do

    18、uble *)calloc(3,sizeof(double); /*寄存拘束函数值 */double *a=(double *)calloc(n,sizeof(double); /*寄存设计变量的下限 */double *b=(double *)calloc(n,sizeof(double); /*寄存设计变量的上限 */double *x_c=(double *)calloc(n,sizeof(double); /*寄存可行点中心 */.double *x_r=(double *)calloc(n,sizeof(double); /* 寄存最坏点的反射点*/printf( 请输当选定的第一个可行点 x1( 包括 %d 个数 ):,n);for(i=0;in;i+)scanf(%lf,*x+i);printf( 请输入初选变量的下限 a( 包括 %d 个数 ):,n);for(i=0;in;i+) scanf(%lf,a+i);printf( 请输入初选变量的上限 b( 包括 %d 个数 ):,n);for(i=0;in;i+) scanf(%lf,b+i);p


    注意事项

    本文(机械优化设计实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开