C语言程序设计说明书_第1页
C语言程序设计说明书_第2页
C语言程序设计说明书_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、黄金分割法的C语言程序应用#include #include #define e 0.001 (给定收敛精度e=0.001)float f(float x)float y=pow(x,2)+2*x; (我们需要求解的目标函数:)return(y);main() (主函数)float a=-3,b=5; (给定初始单峰区间 a, b)float x1,x2,f1,f2,c,min;x1=a+0.382*(b-a); (在区间 a, b内取两个内插点x1和x2并计算其函数值)x2=a+0.618*(b-a);f1=f(x1);f2=f(x2);printf(n %f %f,a,b); while(

2、b-a)e) (当新的b-ae=0.001时,就执行下列这些运算)if (f1f2)(若 f1 f2 ,则取a,x2为新区间,而x1则作为新区间内的第一个试算点,即令b=x2,x2=x1,f2=f1,而另一试算点可按x1=a+0.382*(b-a)算出)b=x2; x2=x1;x1=a+0.382*(b-a);f2=f1;f1=f(x1);else (若 f1 f2 ,则取x1,b为新区间,而x2则作为新区间内的第一个试算点,即令a=x1,x1=x2,f1=f2,而另一试算点可按x2=a+0.618*(b-a)算出)a=x1;x1=x2;x2=a+0.618*(b-a);f1=f2;f2=f(

3、x2);printf(n %f %f,a,b); c=(a+b)/2; min=f(c);printf(n The area is %f to %f,a,b); printf(n The min is %f and the result is %f,c,min);二次插值法的C语言程序应用#include#include double f(double x) return x*x*x-3*x+2;void main(void) double a1,a2,a3,a0; double f1,f2,f3,f0; double q=0.; (给定计算精度q=0.) int k=1; a1=0; (给定

4、初始搜索区间【a1,a3】) a3=3; a2= 0.5*(a1+a3); (采用等距原则取点) f1=f(a1); (计算三点的函数值) f2=f(a2); f3=f(a3); while(1) a0=0.5*(a2*a2-a3*a3)*f1+(a3*a3-a1*a1)*f2+(a1*a1-a2*a2)*f3)/(a2-a3)*f1+(a3-a1)*f2+(a1-a2)*f3); (计算插值函数的极小点a0) f0=f(a0); (计算极小值f0) if(fabs(a0-a2)a2) (用进退法确定搜索区间) if(f0=f2) (进一步缩小区间,以得到新的单峰区间) a1=a2; a2=a0; f1=f2; f2=f0; k+; else a3=a0; f3=f0; k+; else (这里的否定是表示:如果当a0a2) if(f0=f2) a3=a2; a2=a0; f3=f2; f2=f0; k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论