计算方法与实习 方程求根(二分法)

实验报告 方程求根——二分法

班级: 学号: 姓名: 百事尢可乐

一、目的和要求

1)通过对二分法的编程练习,掌握方程求根的二分法的算法;

2)通过对二分法的上机运算,进一步体会二分法的特点。

二、实习内容

1)二分法的编程实现。

2)进行有根区间和误差限的比较和讨论。

三、算法

流程图:

1)准备:计算f(x)在有根区间[a, b]端点处的值 f(a), f(b)。

2)二分:计算f(x)在区间中点c=

3)判断 a b 处的函数值f(c)。 2

•若f(c)与f(a)异号,则根位于区间[a, c]内,以c 代替b ;

•若f(c)与f(a)同号,则根位于区间[c, b]内,以c 代替a ;

四、实验步骤

1)完成二分法的程序设计及录入;

2)完成程序的编译和链接,并进行修改;

3)用书上的例子对程序进行验证,并进行修改;

4)对比估算次数与实际二分次数;

5)输入不同的区间初值a, b,查看二分次数的变化;

6)输入不同的误差限,查看二分次数的变化;

7)完成实验报告。

五、实验结果

1. 经编译、链接及例子验证结果正确的源程序:

#include

#include

#define delta 1e-6

int main(void)

{

int i=0;

float a,b,c,fa,fb,fc,fab,ESP;

printf("输入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;

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)

{

b = c;

fb = fc;

}

else

{

a = c;

fa = fc;

}

if(fabs(fc)

{

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次。

2. 输入不同的区间初值a, b,二分次数的变化情况

当a ,b 的值相差越大,二分次数越大。

3. 输入不同的误差限EPS ,二分次数的变化情况

ESP 越小,所需的二分次数越多。

七、心得

①调试过程中遇到的问题和解决对策;②经验体会等。

在编写代码过程中大小关系混淆,导致二分向反方向进行,得出错误结果,经逐步排查,解决问题。同时对二分法也有了更深的了解。

实验报告 方程求根——二分法

班级: 学号: 姓名: 百事尢可乐

一、目的和要求

1)通过对二分法的编程练习,掌握方程求根的二分法的算法;

2)通过对二分法的上机运算,进一步体会二分法的特点。

二、实习内容

1)二分法的编程实现。

2)进行有根区间和误差限的比较和讨论。

三、算法

流程图:

1)准备:计算f(x)在有根区间[a, b]端点处的值 f(a), f(b)。

2)二分:计算f(x)在区间中点c=

3)判断 a b 处的函数值f(c)。 2

•若f(c)与f(a)异号,则根位于区间[a, c]内,以c 代替b ;

•若f(c)与f(a)同号,则根位于区间[c, b]内,以c 代替a ;

四、实验步骤

1)完成二分法的程序设计及录入;

2)完成程序的编译和链接,并进行修改;

3)用书上的例子对程序进行验证,并进行修改;

4)对比估算次数与实际二分次数;

5)输入不同的区间初值a, b,查看二分次数的变化;

6)输入不同的误差限,查看二分次数的变化;

7)完成实验报告。

五、实验结果

1. 经编译、链接及例子验证结果正确的源程序:

#include

#include

#define delta 1e-6

int main(void)

{

int i=0;

float a,b,c,fa,fb,fc,fab,ESP;

printf("输入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;

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)

{

b = c;

fb = fc;

}

else

{

a = c;

fa = fc;

}

if(fabs(fc)

{

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次。

2. 输入不同的区间初值a, b,二分次数的变化情况

当a ,b 的值相差越大,二分次数越大。

3. 输入不同的误差限EPS ,二分次数的变化情况

ESP 越小,所需的二分次数越多。

七、心得

①调试过程中遇到的问题和解决对策;②经验体会等。

在编写代码过程中大小关系混淆,导致二分向反方向进行,得出错误结果,经逐步排查,解决问题。同时对二分法也有了更深的了解。


相关文章

  • 09-10方程求根
  • 第十章 非线性方程求根 知识点:根的隔离, 根的精化, 二分法,一般迭代法,牛顿迭代法,收敛性. 1. 根的性态 (1)根的概念 方程f(x)=0的解叫做方程的根或f(x)的零点,当f(x)较复杂时,很难求解析解,但可以求近似根.求实根问题 ...查看


  • 用二分法求方程的近似解教案
  • <用二分法求方程的近似解>一课的教学设计教案 求方程的解是常见的数学问题,这之前我们都是在等式状态下研究方程的变化关系,从而得到诸如求根公式等方程的解.但有些方程求精确解较难,本课试图从另一个角度来求方程的近似解.说求方程的近似 ...查看


  • 二分法和牛顿迭代法求解非线性方程的比较及应用
  • 二分法和牛顿迭代法求解非线性方程的比较及应用 摘要:本文基于计算机matlab和c语言编程去分析两者的计算复杂性,并深入探讨了两种方法的优缺点.最后,通过将两种方法结合起来解决非线性方程的求解问题,取得了显著地效果.同时,这也再次证明了方法 ...查看


  • 3.1.2用二分法求方程的近似解(学案)2
  • 3.1.2用二分法求方程的近似解 备课时间: 授课时间: 姓名: 一.学习目标 1. 根据具体函数图象,能够借助计算器用二分法求相应方程的近似解: 2. 通过用二分法求方程的近似解,使学生体会函数零点与方程根之间的联系,初步形成用函数观点处 ...查看


  • 用二分法求方程的近似值
  • 1.3 用二分法求方程的近似解 大荔县朝邑中学 杨 艳 (一)教学目标 1.知识与技能 掌握应用二分法求方程近似解的原理与步骤,会用二分法求方程的近似解. 2.过程与方法 体会通过取区间中点,应用零点存在性定理,逐步缩小零点所属区间的范围, ...查看


  • 二分法求方程的近似解
  • <用二分法求方程的近似解>说课 各位专家.同仁: 大家好! 今天我说课的内容是人教版必修一第三章第一节<利用二分法求方程的近似解>.我将 从背景分析.教学目标设计.课堂结构设计.教学媒体设计.教学过程设计.教学评价设 ...查看


  • 关于对[数值分析]中用割线法求方程根的探讨
  • l+nX1 第1期(总第44期) 2005年2月 山西广播电视大学学报 JournalofShanxiRadio8LTVUniversity NO.1Feb.2005 摘要:在日常实际应用中,人们会经常遇到求非线性方程f(x)一0的近似根问 ...查看


  • 数值分析学习心得体会
  • 数值分析学习感想 一个学期的数值分析,在老师的带领下,让我对这门课程有了深刻的理解和感悟.这门 课程是一个十分重视算法和原理的学科,同时它能够将人的思维引入数学思考的模式,在处 理问题的时候,可以合理适当的提出方案和假设.他的内容贴近实际, ...查看


  • 基于三点二次插值的方程求根算法
  • 第7卷第12期2008年12月 南阳师范学院学报 JoumalofNanyang Nomal Unive鹉ity V01.7No.12Dec.2008 基于三点二次插值的方程求根算法 张天良 (南京信息工程大学数理学院.江苏南京210044 ...查看


热门内容