当前位置:文档之家› 计算方法(2)第二章 方程的近似解法

计算方法(2)第二章 方程的近似解法


(1)描图法
例如,求方程3x-1-cosx=0的隔根区间。
将方程等价变形为3x-1=cosx ,易见y=3x-1与y=cosx
的图像只有一个交点位于[0.5,1]内。
(2)逐步搜索法 运用零点定理可以得到如下逐步搜索法:
先确定方程f(x)=0的所有实根所在的区间为 [a,b],从x0=a 出发,以步长
定理2.2(收敛定理) 设方程x=φ(x),如果 (1)迭代函数φ(x)在区间[a,b]可导; (2)当x[a,b]时,φ(x)[a,b] ; (3)对于任意的x[a,b] ,有| ( x) | L 1 则有 ①方程x=φ(x)在区间[a,b]上有唯一的根α ; ②对于任意的初值 x0[a,b] ,由迭代公式
a o b x
图3
二分法计算过程简单,程序容易实现.可在大范 围内求根,但该方法收敛较慢,且不能求偶数重根和 复根,一般用于求根的初始近似值,而后再使用其它 的求根方法。 二分法收敛速度不快,其收敛速度仅与一个以 1/2为比值的等比级数相同 。
§2.2
迭代法
求解过程分以下二步: (1) 建立迭代公式。由公式f(x)=0出发将其分解为 等价形式x=φ(x),式中φ(x)叫做方程的迭代函数. (2) 进行迭代计算。由初值x0出发,按迭代函数进
3.若f(x1)· f(b)<0,则x*必在区间 [x1,b]内,此时令x1=a1, b =b1 。
………………
如此重复上述过程可以得到 一系列长度逐次减半的隔根 区间 [a,b]⊃[a1,b1]⊃…⊃[an,bn]⊃… 这些区间将收敛于方程的根α。 因而若k满足(ε为给定的精度)
xn bn an
基本思想
二分法就是将方程 的隔根区间对分,然后 再选择比原来区间缩小 一半的隔根区间,如此 继续下去,直到得到满 足精度要求的根为止的 一种简单的区间方法。
1.若f(x1)=0,则x1是f(x)=0的实根 2.若f(a)· f(x1)<0,则x*必在区间 [a,x1]内,此时令a=a1,x1=b1 。
数f(x)=0的零点。
理论上已证明,对于次数n≤4的代数方程,它的 根可以用公式表示,而次数大于5的多项式方程,它的 根一般不能用解析表达式表示。对于超越方程一般更 无求根公式。因此对于f(x)=0的函数方程,一般来说, 根的解析表达式是不存在的,而实际应用中,也不一定 必需得到求根的解析表达式,只要得到满足精度要求 的根的近似值就可以了。常用的求根方法分为区间法 和迭代法两大类。 求根方法中最直观最简单的方法是二分法,收敛 快的是牛顿迭代法。
1 求绝对误差不超过 10 2 2
解:显然 f(x)=x3+4x2-10在(1,2)内连续,且 满足
f (1) 5 0 f ( 2) 14 0
ba 1 2 10 2n 2
n lg 200(b a) / lg 2 7.结果如下: 隔根区间 中点 xn
μ= max { |-3.2| , |1.9| , |0.8| }=3.2 1 ν = max {1, |-3.2| ,|1.9| } 0 .8 故 0.2 | | 4.2 ,即有根区间为(-4.2,-0.2)和(0.2,4.2)
2.
根的隔离
在用近似方法时,需要知道方程的根所在区间。 若区间a,b含有方程f(x)=0的根,则称a,b为f(x)=0的 有根区间;若区间a,b仅含方程f(x)= 0的一个根,则 称a,b为f(x)= 0的一个隔根区间。求隔根区间有两种 方法: (1)描图法 (2)逐步搜索法
方程求根有以下三个基本问题:
1 .根的存在性;2.根的隔离;3. 根的精确化 1. 根的存在性
零点定理: f(x)为[a,b]上的连续函数,若 f(a)· f(b)<0,则 [a,b]中至少有一个实根。如果f(x)在[a,b]上还是单 调递增或递减的,则f(x)=0仅有一个实根。
对于m次代数方程 f (x) = xm+am-1xm-1+ …+a1x+a0=0其根的模 的上下界有如下结论: (1)若μ= max { |am-1| , ……, |a1| , |a0| },则方程根的模小于μ+1 1 1 …… (2)若 ν= max {1, |am-1| , , |a1| },则方程根的模大于 1 a0 例2.2 求方程 x3-3.2x2+1.9x+0.8=0的隔根区间。 解:设方程的根为α ,
+
+ -

[1.34375,1.375]
[1.359375,1.375] [1.359375,1.3671875]
+
原理阐述
如果我们把二分法与逐步搜索法结合起来,就可 以求非线性方程在任一区间上的全部实根。 首先, 将方程式f(x)=0化为函数式y=f(x).假设 方程求解区间为x[a,b] ,步常为h长,允许误差为。 如图3所示,由a点出发向b点跨步,每跨一步h,经 过判断在该区间内是否有根。如有根则进行二分法求 根计算,否则继续以h为步长向前跨步找根,直到走出 区间[a,b]为止.这样就可以按顺序将方程的全部实根 找出。 但应注意在计算中步长h要适当取小一些,若h过 长则容易丢根(若在区间范围内有两相邻函数值符号 相同而判定无根),若间隔h值太小,则影响计算速度。
(1)描图法
画出y=f(x)的略图,从而看出曲线与x轴交点的 大致位置。也可将f(x)=0等价变形为g1(x)=g2(x)的 形式,y=g1(x)与y=g2(x)两曲线交点的横坐标所在的 子区间即为含根区间。 例如,求方程3x-1-cosx=0的隔根区间。 将方程等价变形为3x-1=cosx ,易见y=3x-1与y=cosx 的图像只有一个交点位于[0.5,1]内。
f ( xn ) 的符号
[1,2]
[1,1.5] [1.25,1.5] [1.25,1.375] [1.3125,1.375]
x1 1.5 x2 1.25 x3 1.375 x4 1.3125 x5 1.34375 x6 1.359375 x7 1.3671875 x8 1.36328125
0.3
0.3617 0.3732
x2
x3
x4
0.3753
0.3757
可见,第一种迭代方式产生的数列发散,这时迭 代序列的极限不存在,迭代法失效。而第二种迭代方 式产生的数列是收敛的。
若从任何可取的初值出发都能保证收敛,则称它 为大范围收敛。如若为了保证收敛性必须选取初值充 分接近于所要求的根,则称它为局部收敛。 通常局部收敛方法比大范围收敛方法收敛得快。 因此,一个合理的算法是先用一种大范围收敛方法求 得接近于根的近似值(如二分法),再以其作为新的 初值使用局部收敛法(如迭代法)。 这里讨论迭代法的收敛性时,均指的是局部收敛 性。
n
知α=φ(α),即{xn}收敛于方程的根 α 。
迭代法的几何意义
记y1=x,y2=φ(x),它们交点的横坐标α即为方程的根
y
y1 x
( x1 , x1 ) ( x2 , x2 )
p
( x1 , ( x1 )) ( x2 ,( x2 ))
y
y2 ( x )
y1 x
y2 ( x )
2
控制误差常用的方法如下: (1)先计算对分次数再对分。由
ba ba 计算得 n l og 2 2n
得到满足误差要求的最少对分次数。 (2)事后误差估计法 由于
| xn || xn xn 1 | ba 2n
故可用| xn xn1 | 来判断误差。
例2.3: 用二分法求x3+4x2-10=0在(1,2)内的根,要
第二章 方程的近似解法
在科学研究的数学问题中有很多是非线性 问题,它们常常归结为非线性方程或非线性方 程组的求解问题。 非线性方程组的一般形式是
f1 x1 , x2 , , xn 0 f 2 x1 , x2 , , xn 0 ..................... f x , x , , x 0 n n 1 2
则 似解.
xn
an-1 bn-1 2
ba 2n
即为所求方程的近
定理2.1: f(x)在[a ,b]内连续,α 是方程f(x)在隔根区间[a ,b] 内的根,则由二分法产生的数列{xn}收敛于方程的根α ,且有 误差估计式 ba | xn | n ( n 0,1,)
h=(b-a)/n 其中n是正整数,在[a,b]内取定节点: xi=x0+ih
(i=0,1,2,……,n)
计算f(xi)的值,依据函数值异号及实根的个数确 定隔根区间,通过调整步长,总可找到所有隔根 区间。
算法2-1 (逐步搜索法) function [c,d]=Search(f,a,b,h) % 功能:找到f(x)在区间[a,b]上的所有隔根区间。 % 输入:f(x)----所求方程函数;[a,b]----有根区间。 % 输出:隔根区间[c,d]。c,d可以为向量。 x=a:h:b; y=f(x); n=length(x); m=0; for k=1:n-1 if y(k)*y(k+1)<=0, m=m+1; c(m)=x(k); d(m)=x(k+1); end end

求方程 x3-3.2x2+1.9x+0.8=0的隔根区间。
解:方程有根区间为[-4.2,4.2]。
>> f=inline(' x.^3-3.2*x.^2+1.9*x+0.8'); a=-4.2;b=4.2;h=0.01; [c,d]=Search(f,a,b,h) c= -0.2800 1.3400 2.1300 d= -0.2700 1.3500 2.1400
x 10x 2 0 x 10x 2
相关主题