机械优化设计编程(c语言)

机械优化设计编程(c语言)

ID:9047167

大小:35.00 KB

页数:6页

时间:2018-04-15

机械优化设计编程(c语言)_第1页
机械优化设计编程(c语言)_第2页
机械优化设计编程(c语言)_第3页
机械优化设计编程(c语言)_第4页
机械优化设计编程(c语言)_第5页
资源描述:

《机械优化设计编程(c语言)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、反反复复二分法:#include#include"math.h"#defineE0.01voidmain(){floata,b,x,erfen(floata,floatb);printf("Entera,b");scanf("%f,%f",&a,&b);x=erfen(a,b);printf("x=%f",x);}floaterfen(floata,floatb){floatc,df(floatx);while(fabs(a-b)>E){c=(a+b)/2;if(df(c)==0)break;else{if(df(a)*df(c)<0)b=c;elsea

2、=c;}}returnc;}floatdf(floatx){return2*x-6;}黄金分割法:#include#include"math.h"#defineE0.001#defineH0.618voidmain(){floata,b,x;floatgoldcut(floata,floatb);printf("Entera,b");scanf("%f,%f",&a,&b);x=goldcut(a,b);printf("x*=%f",x);}floatgoldcut(floata,floatb){floatx1,x2,y1,y2;floatf(float

3、x);x2=a+H*(b-a);x1=a+b-x2;y1=f(x1);y2=f(x2);while(fabs(y1-y2)>=E){if(y1>y2){a=x1;x1=x2;y1=y2;x2=a+H*(b-a);y2=f(x2);}else{b=x2;x2=x1;y2=y1;x1=a+(1-H)*(b-a);y1=f(x1);}}return(x1+x2)/2;}floatf(floatx){returnx*x-6*x+2;}进退法:#include#include"math.h"voidmain(){floatx0,h,x1,jintui(floatx0,fl

4、oath);printf("Enterx0,h:");scanf("%f,%f",&x0,&h);x1=jintui(x0,h);printf("(%f,%f)",x0,x1);}floatjintui(floatx0,floath){floatf(floatx),x1,march(floatx0,floath);if(f(x0)>f(x0+h)){x1=march(x0,h);}else{h=-h;x1=march(x0,h);}returnx1;}floatf(floatx){returnx*x-6*x+2;}floatmarch(floatx0,floath){fl

5、oatx1=x0+h;while(f(x0)>f(x1)){x0=x1;h=2*h;x1=x0+h;}returnx1;}牛顿法:#include#include"math.h"#defineE0.0001voidmain(){floatx,x0,f(floatx);floatnewton(floatx);printf("Enterx");scanf("%f",&x);x0=newton(x);printf("(%f,%f)",x0,f(x0));}floatnewton(floatx){floatx1;floatf(floatx),df(floatx)

6、,ddf(floatx);while(fabs(df(x))>E){x1=x-df(x)/ddf(x);x=x1;}returnx;}floatf(floatx){returnx*x-6*x+2;}floatdf(floatx){return2*x-6;}floatddf(floatx){return0*x+2;}进退法与二分法结合:#include#include"math.h"#defineE0.001voidmain(){floatx0,h,x1,x2;floatjintui(floatx0,floath);floaterfen(floatx0,float

7、x1);printf("Enterx0,h");scanf("%f,%f",&x0,&h);x1=jintui(x0,h);printf("(%f,%f)",x0,x1);x2=erfen(x0,x1);printf("%f",x2);}floatjintui(floatx0,floath){floatx1;floatf(floatx);floatmarch(floatx0,floath);if(f(x0)>f(x0+h))x1=march(x0,h);else{h=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。