1.2 二分法

二分法计算过程

二分法的计算过程为:

  1. 取区间 [ a , b ] [a,b] [a,b]的中点 x 0 = a + b 2 x_{0}=\frac{a+b}{2} x0=2a+b,并计算中点函数值 f ( x 0 ) f(x_{0}) f(x0),判断:
    • f ( a ) f ( x 0 ) < 0 f(a)f(x_{0})<0 f(a)f(x0)<0,则有根区间为 [ a , x 0 ] [a,x_{0}] [a,x0],取 a 1 = a , b 1 = x 0 a_{1}=a,b_{1}=x_{0} a1=a,b1=x0,即新的有根区间为 [ a 1 , b 1 ] [a_{1},b_{1}] [a1,b1]
    • f ( a ) f ( x 0 ) = 0 f(a)f(x_{0})=0 f(a)f(x0)=0,则 x 0 x_{0} x0即为所求的根 α \alpha α
    • f ( a ) f ( x 0 ) > 0 f(a)f(x_{0})>0 f(a)f(x0)>0 ,则有根区间为 [ x 0 , b ] [x_{0},b] [x0,b],取 a 1 = x 0 , b 1 = b a_{1}=x_{0},b_{1}=b a1=x0,b1=b,即新的有根区间为 [ a 1 , b 1 ] [a_{1},b_{1}] [a1,b1]
  2. 取区间 [ a 1 , b 1 ] [a_{1},b_{1}] [a1,b1]的中点 x 1 = a 1 + b 1 2 x_{1}=\frac{a_{1}+b_{1}}{2} x1=2a1+b1,并计算中点函数值 f ( x 1 ) f(x_{1}) f(x1),判断:
    • f ( a 1 ) f ( x 1 ) < 0 f(a_{1})f(x_{1})<0 f(a1)f(x1)<0,则有根区间为 [ a 1 , x 1 ] [a_{1},x_{1}] [a1,x1],取 a 2 = a 1 , b 2 = x 1 a_{2}=a_{1},b_{2}=x_{1} a2=a1,b2=x1,即新的有根区间为 [ a 2 , b 2 ] [a_{2},b_{2}] [a2,b2]
    • f ( a 1 ) f ( x 1 ) = 0 f(a_{1})f(x_{1})=0 f(a1)f(x1)=0,则 x 1 x_{1} x1即为所求的根 α \alpha α
    • f ( a 1 ) f ( x 0 ) > 0 f(a_{1})f(x_{0})>0 f(a1)f(x0)>0 ,则有根区间为 [ x 1 , b 1 ] [x_{1},b_{1}] [x1,b1],取 a 2 = x 0 , b 2 = b 1 a_{2}=x_{0},b_{2}=b_{1} a2=x0,b2=b1,即新的有根区间为 [ a 2 , b 2 ] [a_{2},b_{2}] [a2,b2]

此过程可以一直进行下去,则可得到一系列有根区间
[ a , b ] ⊃ [ a 1 , b 1 ] ⊃ [ a 2 , b 2 ] ⊃ ⋯ ⊃ [ a n , b n ] ⊃ ⋯ [a,b]\supset [a_{1},b_{1}]\supset [a_{2}, b_{2}]\supset \cdots\supset [a_{n}, b_{n}]\supset \cdots [a,b][a1,b1][a2,b2][an,bn]
显然, [ a n , b n ] [a_{n},b_{n}] [an,bn]的区间长度为:
b n − a n = b n − 1 − a n − 1 2 = ⋯ = b − a 2 n (1) b_{n}-a_{n}=\frac{b_{n-1}-a_{n-1}}{2}=\cdots=\frac{b-a}{2^{n}}\tag{1} bnan=2bn1an1==2nba(1)
此过程如下图所示:

350
取最后一个区间的中点 x n x_{n} xn作为方程的根的近似值:
x n = a n + b n 2 , x n ∈ [ a n , b n ] (2) x_{n}=\frac{a_{n}+b_{n}}{2},\quad x_{n}\in [a_{n},b_{n}]\tag{2} xn=2an+bn,xn[an,bn](2)

二分法误差和迭代次数

其误差估计式为:
∣ α − x n ∣ ≤ b n − a n 2 = b − a 2 n + 1 (3) |\alpha-x_{n}|\le \frac{b_{n}-a_{n}}{2}=\frac{b-a}{2^{n+1}}\tag{3} αxn2bnan=2n+1ba(3)
n → ∞ n\to \infty n时, ∣ α − x n ∣ ≤ b − a 2 n + 1 → 0 |\alpha-x_{n}|\le \frac{b-a}{2^{n+1}}\to 0 αxn2n+1ba0,即 x n → α x_{n}\to \alpha xnα

对给定的小数 ε > 0 \varepsilon>0 ε>0,要使:
∣ α − x n ∣ < ε |\alpha-x_{n}|<\varepsilon αxn<ε
只须令
b − a 2 n + 1 < ε \frac{b-a}{2^{n+1}}<\varepsilon 2n+1ba<ε

2 n + 1 > b − a ε 2^{n+1}>\frac{b-a}{\varepsilon} 2n+1>εba
所以
n = ⌊ [ ( l n ( b − a ) − l n ε ) / l n 2 ] ⌋ (4) n=\lfloor{[(ln(b-a)-ln\varepsilon)/ln2]}\rfloor\tag{4} n=[(ln(ba)lnε)/ln2](4)
利用式(4)可以预先确定出二分的次数。

二分法优缺点

  • 优点:计算简单,收敛性可保证,对函数的性质要求低,只要求连续就可以了。
  • 缺点:计算收敛的速度慢,不能求偶数重根,也不能求复根和虚根。特别是函数值 f ( a k ) , f ( b k ) ( k = 0 , 1 , 2 , ⋯   ) f(a_{k}),f(b_{k})(k=0,1,2,\cdots) f(ak),f(bk)(k=0,1,2,)每次均已计算出来,但没有利用上,只利用了它们的符号,是一种浪费。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值