二分法实验报告
实验报告 方程求根——二分法一、目的和要求1)通过对二分法的编程练习,掌握方程求根的二分法的算法;2)通过对二分法的上机运算,进一步体会二分法的特点。二、实习内容1)二分法的编程实现。2)进行有根区间和误差限的比较和讨论。三、算法流程图:1)准备:计算f(x)在有根区间[a, b]端点处的值 f(a), f(b)。2)二分:计算f(x)在区间中点c=处的函数值f(c)。3)判断若f(c)与f(a)异号,则根位于区间[a, c]内,以c代替b;若f(c)与f(a)同号,则根位于区间[c, b]内,以c代替a;反复执行步2和步3,直到区间[a, b]长度缩小到允许误差范围之内或f(c)=0,此时区间中点c即可作为所求的根。四、实验步骤1)完成二分法的程序设计及录入;2)完成程序的编译和链接,并进行修改;3)用书上的例子对程序进行验证,并进行修改;4)对比估算次数与实际二分次数;5)输入不同的区间初值a, b,查看二分次数的变化;6)输入不同的误差限,查看二分次数的变化;7)完成实验报告。五、实验结果经编译、链接及例子验证结果正确的源程序:#include #include float f(float x);void main(){floata,b,c,EPS,DELTA,fa,fb,fc,fab;inti=1;printf("please input a,b,EPS,DELTA\n");scanf("%f%f%f%f",&a,&b,&EPS,&DELTA);fa=f(a);fb=f(b);fab=fa*fb;if(fab>0)printf("无根");while(fab<0){c=(a+b)/2;fc=f(c);if((fa*fc)<0){b=c;fb=fc;printf("%d %20f %20f\n",i,c,fc);i++;}else if((fb*fc)<0){a=c;fa=fc;printf("%d %20f %20f\n",i,c,fc);i++;}if(fabs(fc)