二分法求根 设已知方程f(x)=0,且f(x)在区间[a,b]内单调连续。显然,若 f(a)*(b)<0,则方程f(x)在区间[ab]内有且只有一个根x 二分法的基本数学思想是:取方程根所在区间的中点 Xn=(a+b)/2 将所在区间平均分为二个想区间,然后判断根在那个小区间内, 也就是说f(xn)与f(a)是否同号。此时有三种情况 1.f(xmn)=0,表示Xm就是方程的根,即x*=xm; 2.f(xn)f(a)>0,说明根不在[ax]区间内,而是在[Xm,b]区间内 3.f(xm)f(a)<0,说明根在[a,x]区间内 对有根区间循环上述过程,根的存才范围每次缩小一半,则可 以求出一系列根的近似值。在实际计算时候,一般设定一个满 足工程需要的计算精度ε,使得在有限此次计算之后,|Xn Ⅺ<ε,则Ⅺ即所求得近似根
二分法求根 设已知方程f(x)=0,且f(x)在区间[a,b]内单调连续。显然,若 f(a)*f(b)<0 ,则方程f(x)在区间[a,b]内有且只有一个根x*。 二分法的基本数学思想是:取方程根所在区间的中点 xm=(a+b)/2, 将所在区间平均分为二个想区间,然后判断根在那个小区间内, 也就是说f(xm)与f(a)是否同号。此时有三种情况: 1. f(xm)=0,表示xm就是方程的根,即x*=xm; 2. f(xm)f(a)>0,说明根不在[a,xm]区间内,而是在[xm,b]区间内。 3. f(xm)f(a)<0,说明根在[a,xm]区间内。 对有根区间循环上述过程,根的存才范围每次缩小一半,则可 以求出一系列根的近似值。在实际计算时候,一般设定一个满 足工程需要的计算精度,使得在有限此次计算之后,|xnxn-1|< ,则xn即所求得近似根
开始 输入ab (a+b)2=> 令 b=tRue false f(a)f(x<0 a=x false fb-a<£ True 输出x 结束
输入a,b, 开始 (a+b)/2=>x f(a)f(x)<0 If b-a< 输出x 结束 令b=x 令a=x True True false false
例题三 使用两分法求方程f(x)=x3-x-1=0在区间(1,1.5)内的根 要求计算精度到10E2 解:由题目知道,a=1,b=1.5,取区间中点 X0=(1+15)/2=125,由于f(125)=-02969<0与f(1)同号。则令 a1=125,b1=15此时新的有根区间为[125,15]。 对新的有根区间取中点X1=(125+15)/2=1375 由于f(1375)=02246>0,f(125)<0,则令a2=125,b2=1375, 如此下去就可以得到满足方程精度需求的解。 k ak bk Xf(×)×fa)的符号 1.5 1.25 1.25 1.5 1.375 5 13121.32811.3203 二++ 6 1.3201.32811.3242 3
例题三: 使用两分法求方程 在区间(1,1.5)内的根。 要求计算精度到10E-2. 解:由题目知道,a=1, b=1.5,取区间中点 x0=(1+1.5)/2=1.25,由于f(1.25)= - 0.2969<0与f(1)同号。则令 a1=1.25,b1=1.5 此时新的有根区间为[1.25 , 1.5]。 对新的有根区间取中点x1=(1.25+1.5)/2=1.375. 由于f(1.375)=0.2246>0, f(1.25)<0, 则令a2=1.25,b2=1.375, 如此下去就可以得到满足方程精度需求的解。 ( ) 1 0 3 f x = x − x − = k ak bk xk f(xk)×f(ak)的符号 0 1 1.5 1.25 + 1 1.25 1.5 1.375 - 5 1.312 5 1.3281 1.3203 + 6 1.320 3 1.3281 1.3242 +