黄金分割法与进退法的C语言程序

黄金分割法与进退法的C语言程序

ID:38929952

大小:179.69 KB

页数:5页

时间:2019-06-21

黄金分割法与进退法的C语言程序_第1页
黄金分割法与进退法的C语言程序_第2页
黄金分割法与进退法的C语言程序_第3页
黄金分割法与进退法的C语言程序_第4页
黄金分割法与进退法的C语言程序_第5页
资源描述:

《黄金分割法与进退法的C语言程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基本思想:对f(x)任选一个初始点a1及初始步长h,通过比较这两点函数值的大小,确定第三点位置,比较这三点的函数值大小,确定是否为“高—低—高”形态。(1)选定初始点a,初始步长h=h0,计算y1=f(a1),y2=f(a1+h)。(2)比较y1和y2。(a)如y1>y2,向右前进;加大步长h=2h,转(3)向前;(b)如y1

2、y3:(b)如y2>y3,加大步长h=2h,a1=a2,a2=a3,转(3)继续探测。(a)如y2#include#definef(x)3*x*x*x-4*x+2main(){doublef1,f2,f3,temp,x1,x2,x3,h,a,b,Y1,Y2,A,A1,A2,e=0.2;intn;printf("x1=");scanf("%lf",&x1);pri

3、ntf("h=");scanf("%lf",&h);f1=f(x1);x2=x1+h;f2=f(x2);if(f1==f2)a=x1<(x1+h)?x1:x1+h;b=x1>(x1+h)?x1:x1+h;if(f2>f1){h=-h;temp=x1;x1=x2;x2=temp;temp=f1;f1=f2;f2=temp;x3=x2+h;f3=f(x3);}elseif(f2f3){x1=x2;x2=x3;f2=f(x3);x3=x2+h;f3=f(x3)

4、;}a=x1x3?x1:x3;printf("[%f,%f]",a,b);A1=b+0.328*(b-a);Y1=f(A1);A2=a+0.618*(b-a);Y2=f(A2);do{n++;if(!(Y1=e

5、

6、(a-b)<=-e);A=(a+b)*0.5;printf("

7、A=%lf",A);printf("f(A)=%lf",f(A));printf("n=%d",n);printf("a=%f,b=%f",a,b);getch();}陈文斌#includedoublem,n,p,e,a,b;doubleF(doublex){returnm*x*x+n*x+p;}InputData()//数据输入函数的名称要和倒数第四行的一起改,要同时改成同一名称{printf("x,y,z=?");//这里提示输入方程的系数,提示语句x,y,z=?改成你自己的scanf("%lf

8、,%lf,%lf",&m,&n,&p);printf("e=?");//这里提示输入黄金分割的精度,提示语句e=?改成你自己的scanf("%lf",&e);}JTF()//进退法的名称要和倒数第三行一起改{doublex1,x2,x3,f1,f2,f3,t,h;printf("x0,h=?");//这里提示输入进退法的初始点和步长,提示语句x0,h=?改成你自己的scanf("%lf,%lf",&x1,&h);f1=F(x1);x2=x1+h;f2=F(x2);if(f1

9、f1;f1=f2;f2=t;}else{h=2*h;}x3=x2+h;f3=F(x3);while(!(f2x3){a=x3;b=x1;}else{a=x1;b=x3;}printf("[%lf,%lf]",a,b);}HJFGF()//黄金分割法的名称要和倒数第二行一起改{doublex1,x2,f1,f2;x1=a+0.382*(b-a);x2=a+0.618*(b-a);do{if(F(x1)

10、x1;f2=f1;x1=a+0.382*(b-a);f1=F(x1);}else{a=x1;x1=x2;f1=f2;x2=a+0.618*(b-a);f2=F(x2);}}while(!((a-b>0?a-b:b-a)

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

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

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