计算方法与实习 方程求根(二分法)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2)二分:计算f(x)在区间中点c= 处的函数值f(c)。
3)判断
•若f(c)与f(a)异号,则根位于区间[a, c]内,以c代替b;
•若f(c)与f(a)同号,则根位于区间[c, b]内,以c代替a;
四、实验步骤
1)完成二分法的程序设计及录入;
2)完成程序的编译和链接,并进行修改;
3)用书上的例子对程序进行验证,并进行修改;
实验报告方程求根——二分法
班级:学号:姓名:百事尢可乐
一、目的和要求
1)通过对二分法的编程练习,掌握方程求根的二分法的算法;
2)通过对二分法的上机运算,进一步体会二分法的特点。
二、实习内容
1)二分法的编程实现。
2)进行有根区间和误差限的比较和讨论。
三、算法
流程图:
1)准备:计算f(x)在有根区间[a, b]端点处的值f(a), f(b)。
{
printf("最后答案%f\n",c);break;
}
}
printf("二分次数%d\n",i);
}
return(0);
}
2.实例验证结果:
1)方程:f(x)=x3+x2-3x-3=0
2)输入初始参数:a=1, b=2,EPS=5e-6
3)结果输出:
最后答案1.732052
二分次数18
3.改变a, b的值为:a=0, b=2, EPS不变,仍为5e-6,其结果为:
最后答案1.732052
二分次数19
4.改变EPS的值为:EPS=5e-4,a, b不变,仍为a=1, b=2,其结果为:
最后答案1.731934
二分次数11
六、分析和讨论
1.估算次数与实际二分次数的分析和讨论
当输入a1,b=2,esp=5e-6时,估计二分7次即可到达精度,实际二分18次。
int main(void)
{
int i=0;
float a,b,c,fa,fb,fc,fab,ESP;
priFra Baidu bibliotektf("输入ESP:");
scanf("%f",&ESP);
printf("输入a,b:");
scanf("%f,%f", &a, &b);
fa=a*a*a+a*a-3*a-3;
fb=b*b*b+b*b-3*b-3;
4)对比估算次数与实际二分次数;
5)输入不同的区间初值a, b,查看二分次数的变化;
6)输入不同的误差限,查看二分次数的变化;
7)完成实验报告。
五、实验结果
1.经编译、链接及例子验证结果正确的源程序:
#include<stdio.h>
#include<math.h>
#define delta 1e-6
fab=(fa)*(fb);
if(fab>0)
printf("无根");
else
{
while(1)
{
c=(a+b)/2.0;i++;
fc=c*c*c+c*c-3*c-3;
if((fa)*(fc)<0)
{
b = c;
fb = fc;
}
else
{
a = c;
fa = fc;
}
if(fabs(fc)<delta,b-a<ESP)
3)判断
•若f(c)与f(a)异号,则根位于区间[a, c]内,以c代替b;
•若f(c)与f(a)同号,则根位于区间[c, b]内,以c代替a;
四、实验步骤
1)完成二分法的程序设计及录入;
2)完成程序的编译和链接,并进行修改;
3)用书上的例子对程序进行验证,并进行修改;
实验报告方程求根——二分法
班级:学号:姓名:百事尢可乐
一、目的和要求
1)通过对二分法的编程练习,掌握方程求根的二分法的算法;
2)通过对二分法的上机运算,进一步体会二分法的特点。
二、实习内容
1)二分法的编程实现。
2)进行有根区间和误差限的比较和讨论。
三、算法
流程图:
1)准备:计算f(x)在有根区间[a, b]端点处的值f(a), f(b)。
{
printf("最后答案%f\n",c);break;
}
}
printf("二分次数%d\n",i);
}
return(0);
}
2.实例验证结果:
1)方程:f(x)=x3+x2-3x-3=0
2)输入初始参数:a=1, b=2,EPS=5e-6
3)结果输出:
最后答案1.732052
二分次数18
3.改变a, b的值为:a=0, b=2, EPS不变,仍为5e-6,其结果为:
最后答案1.732052
二分次数19
4.改变EPS的值为:EPS=5e-4,a, b不变,仍为a=1, b=2,其结果为:
最后答案1.731934
二分次数11
六、分析和讨论
1.估算次数与实际二分次数的分析和讨论
当输入a1,b=2,esp=5e-6时,估计二分7次即可到达精度,实际二分18次。
int main(void)
{
int i=0;
float a,b,c,fa,fb,fc,fab,ESP;
priFra Baidu bibliotektf("输入ESP:");
scanf("%f",&ESP);
printf("输入a,b:");
scanf("%f,%f", &a, &b);
fa=a*a*a+a*a-3*a-3;
fb=b*b*b+b*b-3*b-3;
4)对比估算次数与实际二分次数;
5)输入不同的区间初值a, b,查看二分次数的变化;
6)输入不同的误差限,查看二分次数的变化;
7)完成实验报告。
五、实验结果
1.经编译、链接及例子验证结果正确的源程序:
#include<stdio.h>
#include<math.h>
#define delta 1e-6
fab=(fa)*(fb);
if(fab>0)
printf("无根");
else
{
while(1)
{
c=(a+b)/2.0;i++;
fc=c*c*c+c*c-3*c-3;
if((fa)*(fc)<0)
{
b = c;
fb = fc;
}
else
{
a = c;
fa = fc;
}
if(fabs(fc)<delta,b-a<ESP)