机械优化设计黄金分割法.doc

上传人:数据九部 文档编号:10202715 上传时间:2021-04-28 格式:DOC 页数:5 大小:28.50KB
返回 下载 相关 举报
机械优化设计黄金分割法.doc_第1页
第1页 / 共5页
机械优化设计黄金分割法.doc_第2页
第2页 / 共5页
机械优化设计黄金分割法.doc_第3页
第3页 / 共5页
机械优化设计黄金分割法.doc_第4页
第4页 / 共5页
机械优化设计黄金分割法.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《机械优化设计黄金分割法.doc》由会员分享,可在线阅读,更多相关《机械优化设计黄金分割法.doc(5页珍藏版)》请在三一文库上搜索。

1、已知:F(x)=x4-4x3-6x2-16x+4,求极小值,极小值点,区间,迭代次数?用进退法确定区间,用黄金分割法求极值。#include #include #define e 0.001#define tt 0.01float f(double x)float y=pow(x,4)-4*pow(x,3)-6*pow(x,2)-16*x+4;return(y);finding(float *p1,float*p2)float x1=0,x2,x3,t,f1,f2,f3,h=tt;int n=0;x2=x1+h;f1=f(x1);f2=f(x2);if(f2f1) h=-h;t=x2;x2=x

2、1;x1=t;do x3=x2+h;h=2*h;f3=f(x3);n=n+1;while(f3x3) t=x1;x1=x3;x3=t;*p1=x1;*p2=x3;return(n);gold(float *p)float a,b,x1,x2,f1,f2;int n=0;finding(&a,&b);do x1=a+0.382*(b-a); x2=a+0.618*(b-a);f1=f(x1);f2=f(x2);n=n+1; if(f1f2) a=x1; else b=x2;while(b-a)e);*p=(x1+x2)/2;return(n);main()float a,b,x,min;int

3、n1,n2;n1=finding(&a,&b);n2=gold(&x);min=f(x);printf(n The area is %f to %f.,a,b); printf(n The nunmber 1 is %d.,n1);printf(n The min is %f and the result is %f.,x,min);printf(n The nunmber 2 is %d.,n2)二插法已知:F(x1,x2)=4*x1-x2的平方-12;求极小值,极小值点,迭代次数?用复合形法求极值。约束条件:x2=0; x1=0; 25-x1的平方-x2的平方=0;#include #in

4、clude #define EP 0.0001#define E 0.01#define fori for(i=0;i=1;i+)int i;float f(float *p)float y;y=4*p0-pow(p1,2)-12;return(y);int cons(float *q)int n;if(pow(q0,2)+pow(q1,2)-25=0)&(q1=0) n=1;else n=0;return(n);void paixu(float *p1,float *p2,float *p3)float f1,f2,f3;float L2,M2,H2;f1=f(p1);f2=f(p2);f3

5、=f(p3);fori Hi=p1i;Mi=p2i;Li=p3i;if(f1f2) if(f2f3)fori Mi=p3i;Li=p2i; elsefori Hi=p3i;Mi=p1i;Li=p2i; else if(f2f3) fori Hi=p2i;Mi=p1i;Li=p3i; else fori Hi=p2i;Mi=p3i;Li=p1i;fori p1i=Hi;p2i=Mi;p3i=Li;float r()float rr;do rr=rand();while(rr=0);rr=rr/32767;return(rr);main()float x12=2,1,x22=4,1,x32=3,3

6、;float XC2,XR2,A2,B2;float H=1.3,FH,FR,FC,FL,cha,min,S;int tf,tf1,tf2;do do paixu(x1,x2,x3); /* fori printf(n X1%d is %f,X2%d is %f,X3%d is %f.,i,x1i,i,x2i,i,x3i); */ fori XCi=(x2i+x3i)/2; /* fori printf(n XC%d is %f.,i,XCi); */ tf1=cons(XC); if(tf1=0) FC=f(XC); FL=f(x3); if(FLFC) fori Ai=x3i;Bi=XCi

7、; else fori Ai=XCi;Bi=x3i; do S=r();x1i=Ai+S*(Bi-Ai);tf2=cons(x1); while(tf2=0); do S=r();x2i=Ai+S*(Bi-Ai);tf2=cons(x2); while(tf2=0); do S=r();x3i=Ai+S*(Bi-Ai);tf2=cons(x3); while(tf2=0); while(tf1=0); fori XRi=XCi+H*(XCi-x1i); /* fori printf(n XR%d is %f.,i,XRi); */ FH=f(x1); FR=f(XR); tf=cons(XR); if(tf&(FRFH) fori x1i=XRi; /* printf(n 1); */ else H=H/2; /* printf(n H is %f.,H); */ if(HE);min=f(x3);printf(n The Min is %f.,min);fori printf(n The X%d is %f.,i,x3i);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1