用二分法求方程在区间[0,1]内的根,精确到3位有效数字

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
float Bisection(float a,float b,float(*f)(float))
{
float c,fc,fa=(*f)(a),fb=(*f)(b);
int n=1;
printf("二分次数\t\tc\t\t f(c)\n");
while(1)
{
if(fa*fb>0)
{
printf("不能用二分法求解");
计算方法实验报告
实验内容:
用二分法求方程 在区间[0,1]内的根,精确到3位有效数字。
实验前预备内容:
1.计算机基础知识
2.熟悉变成基本思想
3.熟悉常见基本函数
实验程序:
#include<stdio.h>
#include<math.h>
#define eps 5e-6
#define delta 1e-6
}
return c;
}
float f(float x)
{
return 2*exp(-x)-sin(x);
}
int main(int argc,char *argv[])
{
float a=0,b=1;
float x;
x=Bisection(a,b,f);
printf("|n方程的根为%0.4f",x);
运行9次
根的值为:x = 0.919
运行10次
根的值为:x = 0.920
运行11次
根的值为:x = 0.921
根的最终值为:x = 0.921
Press any key to continue
最终运算结果:
根的最终值为:x = 0.921
break;
}
c=(a+b)/2,fc=(*f)(c);
printf("%d\t\t%f\t\t%f\n",n++,c,fc);
if(fabs(fc)<delta)break;
else if(fa*fc<0){b=c;fb=fc;}
else {a=c;fa=fc;}
if(b-a<eps)break;
return 0;
}计算过程:
运行1次
根的值为:x = 0.500
运行2次
根的值为:x = 0.750
运行3次
根的值为:x = 0.875
运行4次
根的值为:x = 0.937
运行5次
根的值为:x = 0.906
运来自百度文库6次
根的值为:x = 0.921
运行7次
根的值为:x = 0.914
运行8次
根的值为:x = 0.917
相关文档
最新文档