1) 问题 :
1) 问题 : 给定方程 f(x)=0, 设 f(x) 在区间 [a,b] 连续 ,且 f(a)f(b)<0, 则方程 f(x) 在 (a,b) 内至少有一根,为便于讨论,不妨设方程 f(x)=0 在 (a,b) 内只有一个 ( 重根视为一个 ) 实根 , 求满足精度要求的的近似值实根 。 2) 解题思路 取 [a,b] 区间二等分的中点 x 1 =(a+b)/2, 若 f(x 1 )=0, 则 x 1 是 f(x)=0 的实根
1) 问题 :
E N D
Presentation Transcript
1)问题: 给定方程f(x)=0,设f(x)在区间[a,b]连续,且f(a)f(b)<0,则方程f(x)在(a,b)内至少有一根,为便于讨论,不妨设方程f(x)=0在(a,b)内只有一个(重根视为一个)实根 ,求满足精度要求的的近似值实根 。 2)解题思路 取[a,b]区间二等分的中点x1 =(a+b)/2, 若f(x1)=0,则x1是f(x)=0的实根 若f(a)f(x1)<0 成立,则 必在区间(a, x1)内,取a1=a,b1= x1;否则 必在区间(x1,b)内,取a1= x1,b1=b, 这样,得到新区间[a1,b1],其长度为[a,b]的一半,如此继续下去,进行n次等分后,得到一组不断缩小的区间,[a,b],[a1,b1],......[an,bn]….
其中每一个区间都是前一个长度的一半,从而[ , ]的长度为 如此继续下去,则有这些区间将收敛于一点 ,该点即为所求的根. 当做到第n步时,若有 为给定精度 此时 均满足 即为所求方程的近似解. 以上方法就是用于求方程实根近似值的二分法 3)迭代步数n的确定 因为
所以由 得 因此只要对分 次,则 有 注:因为 为 的一个端点,所以将区间 对分 后,取 的中点 作为 的近似值,满足
收敛性分析 现在来研究用二分法求 函数的根时的精确性。假定f(x) 是连续函数,并且它在区间[a0.b0]的两端点 所取的值有相反 的符号,于是在[a0.b0]中有一个根r,如果用中点c0 = (a0+b0)/2 作为对r的估计则有r- c0 (b0 -a0)/2.如图所示: r- c0 a0 r c0 b0 现在应用二分算法,并将算出的量用a0, b0 ,c0,a1,b1,c1 等来表 示,则由同样的推理, r- cn(bn-an)/2 n=0,1,2,...... 由于这些区间的宽度在每一步中都除以2,所以可断定 r- cn 可见经过n步后将算出一个近似根其误 差至多为
二分法的优缺点 二分法计算过程简单,程序容易实现.可在大范围内求根,但该方法收敛较慢,且不能求重根和复根,一般用于求根的初始近似值,而后在使用其它的求根方法。 二分法收敛速度不快,其收敛速度仅与一个以 1/2为比值的等比级数相同 。
例题求解 例1:用二分法求方程 在区间(1,2) 内的实根,要求误差限为 。 解:令 f(1)<0, f(2)>0 记I0=[1,2] , x0 =(1+2)/2=1.5 因为 f(x0) f(1)>0 得I1=[1.5, 2] , x1 =(1.5+2)/2=1.75 f(x1) f(1.5)<0 得I2=[1.5, 1.75] , x2 =(1.5+1.75)/2=1.625 ……. I6=[1.681875, 1.6875], I7=[1.671875, 1.679688] b7 - a7=0.781310-2 < 10-2 x*x7 =1.6758
例2,求方程f(x)= x 3 –e-x =0的一个实根。 因为 f(0)<0,f(1)>0。 故f(x)在(0,1)内有根 用二分法解之,(a,b)=(0,1)’计算结果如表: k a bk xk f(xk)符号 0 0 1 0.5000 - 1 0.5000 - 0.7500 - 2 0.7500 - 0.8750 + 3 - 0.8750 0.8125 + 4 - 0.8125 0.7812 + 5 - 0.7812 0.7656 - 6 0.7656 - 0.7734 + 7 - 0.7734 0.7695 - 8 0.7695 - 0.7714 - 9 0.7714 - 0.7724 - 10 0.7724 - 0.7729 + 取x10=0.7729,误差为| x* -x10|<=1/211 。