一为搜索法程序说明

一为搜索法程序说明

ID:42524791

大小:772.82 KB

页数:10页

时间:2019-09-16

一为搜索法程序说明_第1页
一为搜索法程序说明_第2页
一为搜索法程序说明_第3页
一为搜索法程序说明_第4页
一为搜索法程序说明_第5页
资源描述:

《一为搜索法程序说明》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一维搜索方法求极小点的程序说明一、程序编写的基本思想打开VC++6.0,文件——新建——文件一一C卄SourceFile——输入文件名——创建一个简单的程序。在所建立的程序下编写所需要的程序,用switch分别将牛顿法、黄金分割法、二次插值法(抛物线法)编写程序计算函数函数f(x)=sinx的极小点x*,迭代次数,以及每次迭代时近似极小点。各种一维搜索方法的具体过程(1)用switch语句选择搜索方法while(l){switch(getchar()){case'A':{牛顿法};break;case'B':{黄金

2、分割法};break;case'C':{二次插值法};break;casevDf:jieshu=l;break;}(2)各种方法流程图A、牛顿法:①牛顿法流程图:结束B、黄金分割法①黄金分割法程序框图:结束C.二次插值法:①二次差值法流程图:①根据流程图编写程序://shejixpp:Definestheentrypointfortheconsoleapplication.//includeMstdafx.hH#include#include#definef(x)sin(x)//宏

3、定义函数g(x)=sinxvoidmain()floatr,e=0・00001,min;〃定义初始变量while(l){printf(n选择方法:A牛顿法,B黄金分割法,C二次插值法D,结束「);intjieshu=0;switch(getchar())floatdl,d2,d,fl,f2,h;intp=l;printfC*输入初始值j;scanf(M%r&dl);//^j入初始区间fl二cos(dl);/////////////////////////////////////改公式,求公式的导数f2=-s

4、in(dl);d2=dl-(fl/f2);while(fabs(dl-d2)>=e){P++;dl=d2;fl=cos(dl);f2=-sin(dl);d2=dl-(fl/f2);r=d2;printf(n%hn,r);//////^出极小点}r=d2;min=f(r);printfC迭代次数=%dH,p);///输出迭代次数printf("函数的极小点二%fH?r);////僦出极小点printf(n极小值min=%f”,min);////////〃瀚出极小值};break;//continue;ca

5、se'B*:{floatal,a2,yl,y2,k;floata,b;inti=l;printfL输入初始搜索区间[a,b]H);scanf(M%f%&b);/隔入初始区间e=0.00001;al=b-0.618*(b-a);a2=a+0.618*(b-a);yl=f(al);y2=f(a2);while((fabs((b-a)/b)>e&&fabs((y2-yl)/y2)>e))i=i+l;if(yl>=y2)a=al;al=a2;yi=y2;a2=a+0.618*(b-a);y2=sin(a2);}else

6、{b=a2;a2=al;y2=yi;al=b-0.618*(b-a);yl=sin(al);}r=a;printf(H%foi,r);/////瀚出极小点a=(a+b)/2;r=a;min=f(r);printf(n^代次数=%d”,i);〃触出迭代次数printf(n函数的极小点二%fn,r);//////^g出极小点printf(n极小值min=%fM?min);////////////^出极小值};break;//continue;case'C*:floatml,m2,m3;//////////

7、////////////////////////////////////取值范围floatw=1;floathl,h2,h3,h,cl,c2,m;intn=0;print"输入初始搜索区间[ml,m3]iT);scanf(n%f%fn,&ml,&m3);/隔入初始区间m2=(ml+m3)/2;don++;hl=f(ml);h2=f(m2);h3=f(m3);cl=(h3-hl)/(m3-ml);c2=((h2-hl)/(m2-ml)-cl)/(m2-m3);m=(ml+m3・cl/c2)/2;h=f(m);if(

8、(m・m2)*v>0){if(h2>=h){ml=m2;hl=h2;m2=m;h2=h;}else{m3=m;h3=h;}elseif(h2>=h)m3=m2;h3=h2;m2=m;h2=h;}else{ml=m;hl=h;printf(H%AnH,r);///////输出极小点}while(fabs(m3-ml)>=e);r=m;min=f(r);pri

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

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

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