1.
题意描述
利用二分法求f(x)=x3- x-1在[1,1.5]的零点。 f(1)<0,. f(1.5)>0,误差设为10。二分法优缺点是什么?如何估计误差?在什么情况下不能用二分法求根?
2.
问题分析与解决
二分法的三个步骤是:
步骤1 准备:计算f(x)在有根区间[a,b]端点的值f(a),f(b).
步骤2 二分:计算f(x)在区间中点(a+b)/2处的值f((a+b)/2)
步骤3 判断:若f((a+b)/2)=0,则(a+b)/2即是根,计算过程结束,否则检验。
若f((a+b)/2)f(a)<0,则以(a+b)/2代替b,否则以(a+b)/2代替a。反复执行步骤2和步骤3 直到区间[a,b]长度小于允许的误差范围10。
本实验的遇到的主要问题是怎么估计误差,题目已经给出了f(1)<0,. f(1.5)>0,误差设为10,那么根据这个误差可以计算出所要二分的次数,由公式|x*-xk| <= (b-a)/2k+1 当二分次数为16次精度就达到10了。但是再程序代码中,就不需要自己预先估算,只需要当答案达到这个精度的时候就可以停止运行。
附源程序代码如下:
# include <stdio.h> # include <math.h> void main(){ t=x2; x2=-x1; x1=t; } float f(float x) { } |
3.
调试、测试运行情况及结果分析
(1)
实验中碰到的问题及解决方法
实验过程中似乎没有遇到什么问题。J
(2) 测试数据及运行结果
测试数据:函数f(x)=x3- x-1,f(1)<0,. f(1.5)>0,误差设为10。
运行结果为:
(3) 结果分析与结论
二分法的优点是:算法简单,且总是收敛的,缺点是收敛太慢,故一般不单独将其用于求根,只用于其为根求得一个较好的近似值。
用户201423 2009-5-31 22:45
zhangshaobing517_935512703 2009-5-31 17:21
用户1414082 2009-5-30 21:01