代数方程跟的近似求解方法、
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代数方程根的近似求解方法
多项式方程1011()0n n n n n P x a x a x a x a --=++++= ,称为n 次代数方程,又称多
项式方程.其中12k n a = ,
,,是实系数或复系数,00a ≠.当1n >时,它叫高次代数方程,其次数是n .多项式的零点就是对应代数方程的根.当其次数高于四次
时是没有公式解的,因此实际的求解方法大多是研究其近似根,这些方法大都可以在数值分析理论中找到.要求高次代数方程实根的精确值,往往是比较困难的,因此这就需要寻求方程的近似解.下面介绍几种近似求解的方法.
将超越方程()0f x =左端换成多项式()n P x ,则超越方程就变成了高次代数方程.超越方程求根的各种方法也适用于代数方程.求方程的近似解,可分两步来做.
(1) 确定根的分布区间[],a b ,即使所求的根是位于这个区间内的唯一实根.此项工作又称根的隔离,而区间[],a b 又称实根的隔离区间. 具体方法是:
一方面可用图解法,由于方程()0f x =的实根在几何上表示曲线()y f x =与x 轴交点的横坐标,故可先较精确地画出函数()y f x =的图形, 然后从图上定出它与
x 轴交点的大概位置.由于作图和读数的误差, 这种做法得不出根的高精确度的近似值,但一般可确定出根的隔离区间.
另一方面,利用连续函数的介值定理来找根的隔离区间,即若实的连续函数()f x 在区间[],a b 的两个端点的值异号,则()f x 在此区间内至少有一个根. ( 2) 以根的隔离区间的一个端点作根的初始近似值,逐步改善根的近似值的精确程度,直至求得满足精确度要求的近似解. 这里介绍2种常用方法:二分法与牛顿法 1.1 二分法
这是利用介值定理计算实函数实根的简单可行的方法.设在区间[]00,a b 上连续,且()()000f x f a ∙>的函数()f x ,取[]00,a b 的二等分点00
02
a b x +=
,计算()0f x ,若()00f x =则0x 为根;若()()000f x f a ∙<,取10a a =,10b x = 作为新的
区间端点;若()()000f x f a ∙>,取10a x =,10b b =作为新区间端点;若
()()000f x f a ∙>,取10a x =,10b b =作为新区间端点.[]11,a b 的二等分点为
11
12
a b x +=
,计算()1f x 的值,并重复以上步骤以确定新区间[]22,a b ,如此继续下去,得到区间序[],k k a b ()0,1,2k = ,它满足()()0k k f a f b ∙<,且
()0012k
k k b a b a -=-,当达到指定的精度要求时,则取2
k k
b a x +=为方程的近似解,且其误差不超过()11
002
k b a +-.
例1 求方程()310f x x x =--=在区间[]1.0,1.5内的一个实根,要求准确到小数点后的第2位.
解:这里1, 1.5a b ==,而()0f a <,()0f b >取[],a b 的中点0 1.25x =.将区间二等分,由于()00f x <,即()0f x 与()f a 同号,故所求的根x *必在0x 右侧,这时应令10 1.25a x ==,1 1.5b b ==而得到新的有根区间[]11,a b 。
如此反复二分下去,二分过程无需赘述.我们现在预估所要二分的次数,按误差估计,只要二分6次(6k =),便能达到预定的精度. 60.005x x *-≤. 二分法的计算结果见表1.
k
k a
k b k x
()k f x 符号
0 1 2 3 4 5 6
1.0 1.25 1.3125
1.3203
1.5
1.375
1.3438 1.3281 1.25 1.375 1.3125 1.3438 1.3281 1.3203 1.32422 - + - + + - -
表1
1.2 牛顿法
牛顿法在非线性方程(组)近似求解方面,具有重要的地位,其算法的效率很高.牛顿法又称切线法,它的基本思想是从一个初始的近似解出发,过该点作曲线的切线,以切线与x 轴交点的横坐标作为下一个更精确的近似解.
设已知方程 ()0f x =有近似根k x (假定()0k f x '≠),将函数()f x 在点k x 展开,有
()()()(),k k k f x f x f x x x '≈+-
于是方程()0f x =可近似的表示
()()()0k k k f x f x x x '+-=
这是个线性方程,记其根为1k x +,则1k x +的计算公式为
()
()
1k k k k f x x x f x +=-',0,1,,k =
这就是牛顿法.
牛顿法有明显的几何解释,方程()0=x f 的根*x 可解释为曲线()x f y =与x 轴的交点的横坐标。
设k x 是根x *
的某个近似值,过曲线()x f y =上的横坐标为k x 的点
k
P 引切线,并将切线与x 轴的交点的横坐标
1
k x +作为x *
的新的近似值.注意到切线
方程为
()()().
k k k y f x f x x x '=+-
这样求的的值
1
k x +必满足()()()0k k k f x f x x x '+-=,从而就是牛顿公式
()
()
1k k k k f x x x f x +=-
'0,1,,k = 的计算结果. 关于牛顿法的收敛性,对()
()
1k k k k f x x x f x +=-
'的迭代函数为 ()()()
f x x x f x ϕ=-
'
由于
()()()()2
,
f x f x x x f x ϕ'''=-
'⎡⎤⎣⎦
假定x *
是
()
f x 的一个单根,即
()0
f x *=,
()0f x *'≠则由上式可知
()0
x ϕ*'=,
于是可以判定,牛顿法在根x *
的邻近是平方收敛的.又因
()()()
,
f x x f x ϕ***''''=
'故我们
可得
()()()12
lim .2k k k f x x x f x x x **
+*→∞*''-='-
下面列出牛顿法的计算步骤:
步骤1 准备 选定初始近似值0x ,计算()00f f x =,()00f f x ''=.
步骤2 迭代 按公式0
100
f x x f =-
'迭代一次,得新的近似值1x ,计算()11f f x =,()11f f x ''=.
步骤3 控制 如果1x 满足1δε<或12f ε<,则终止迭代,以1x 作为所求的根;
否则转步骤4.此处1ε,2ε是允许误差,而
10110
11x x x C x x x C x δ⎧-<⎪
=-⎨≥⎪⎩
,当时,当时 其中c 是取绝对误差或相对误差的控制常数,一般可取c=1.
步骤4 修改 如果迭代次数达到预先指定的次数N ,或者10f '=,则方法失败;
否则以()111,,x f f '代替()000,,x f f '转步骤2继续迭代.
列2 用牛顿法解方程10x
xe -=.
解:这里牛顿公式为
11k
x k k k k x e x x x -+-=-
+
取迭代初值
00.5
x =,迭代结果列于表2中.
1.3抛物牛顿法 抛物牛顿法构造
定理1 设()0f x =为非线性的,k x x =为()0f x =的一个近似解, 若()f x 在
k x 的某领域内3阶可导,且()0k f x ''≠则有抛物牛顿迭代公式
()()()
()()
()
2
12k k
k k k k k f x f x f x f x x x f x ω
+''''--=-
'',1,2,k =
其中, 当()0f x *'≥时, 取1ω=, 当()0f x *'<时, 取1ω=-. 抛物牛顿法的解释与收敛性分析
1) 抛物牛顿法的几何解释.从几何上看, 如果在迭代点所作的抛物线
k k
x
0 1 2 3 4
10
10.750000 10.723837 10.723805 10.723805
()()()()()()
2
2
k k k k k f x g x f x f x x x x x '''=+-+
-与x 轴相交, 则抛物牛顿法是将
曲线()f x 上过点()(),k k P x f x 的抛物线
()()()()()()
2
2
k k k k k f x g x f x f x x x x x '''=+-+
-与x 轴的交点来代替()f x 与x 轴
的交点, 抛物线()g x 与()f x 在点()(),k k P x f x 相交且具有相同的切线和凹凸性, 从而将抛物线()0g x =的解作为()0f x =的一个新的近似解.
2) 抛物牛顿法的代数解释.从代数的角度看, 由于()f x 与()g x 在迭代点有相同的012、、阶导数, 若将x 视为复数z , 则抛物牛顿法是求在复数域上满足()f z 的二阶Taylor 展式()0g z =的一个新的近似解, 由于抛物方程有可能带来复数解, 故抛物牛顿法能迭代到实多项式的近似复解上去.如果获得的2个近似解是实数
1x *,2x *, 意味着所作的切抛物线与x 轴相交于12,x x **, 如果获得的2个近似解是非实数的复数12,z z **.
则意味着切抛物线不与x 轴相交而仅是复平面上满足()10f z *≈,()20f z *≈的两
个复数12,z z **这是抛物牛顿法与切线牛顿法本质上的区别, 也使牛顿法从实数域
推广到复数域.抛物牛顿法与切线牛顿法共同构架了非线性代数方程在复数域上求近似解的基本方法, 从而解决了用牛顿法求实多项式全部近似实根和复根的问题.
3) 抛物牛顿法收敛性分析. 抛物牛顿法中迭代式根号前的符号ω可正可负, 它对应着近似的抛物线或相应的近似方程在复数域上的2个解, ω的取法应使1k x +比k x 更接近精确解x *.为方便起见,也可取定1ω=或1ω=-, 一般总会收敛到
()0f x =的解.
已知切线牛顿法至少是2阶收敛的, 此处抛物牛顿法至少是3阶收敛的, 所以抛物牛顿法比切线牛顿法收敛速度快, 抛物牛顿法的另一个用途是当切线牛顿法失效, 即()0k f x '=而()0k f x ''≠时, 可用来替代切线牛顿法,继续迭代计算.
例3 求
()5
421683010f x x x x x =
-+-+的近似根(精确到 -610)
解:一个5次实多项式在复数域内恰有5个根.该曲线与x 轴只有3个交点,根
据f()x 的性质,它有3个实根,一对共轭复根,若用切线牛顿法,只能迭代出3个实根,为求出其所有根,采用抛物牛顿法.由于
()4
31412122f x x x x '=
-++,
()321212
f x x x ''=-+所以抛物牛顿法迭代函数为
()()()()()
()
22f x f x f x f x x x f x ωϕ''''--=-
=''
43864
4323
13831834128484848576720
22035,21212
x x x x x x x x x x x x x ω-+---+----+---+此处1ω=±,取1ω=,
010
x =-获得方法的近似解 3.025372x =-,切线法需要9
次,抛物法只需7次迭代.抛物牛顿法与切线牛顿法迭代对比如表3所示
迭代序数k
切线法迭代值k
x
迭代序数k
抛物法迭代值k
x
0 1 5 7 9
-10 -7.0466 -3.2033 -3.2056 -3.025372
0 1 5 7
-10
-7.2171-2.0873i -3.0106-0.0061i
-3.025372
表3
取1ω=初值
00
x =切线牛顿法经过18次迭代获得与上面相同的实根,抛
物牛顿法经过5次迭代获得方程的近似复根0.284800 1.831036x i =+迭代序列如表3所示
迭代序数k
切线法迭代值k
x 迭代序数k
抛物法迭代值
k
x
1 5 10 15 18
0 -53.1998 -20.8480 -6.1877 -3.0281 -3.025372
0 1 2 3 4 5
0.6667+2.1344i 0.2885+1.8515i 0.2848+1.8310i 0.2848+1.8310i 0.284000+1.831036i
表4
二. 劈因子法
用x 的二次式()212U x u x u x =++除
()n
x p 则得商()x Q 及余式
()r x =12x r x r +,因而有()()()()n P x x x r x U Q =++
设()x U 是一个近似二次因式,修改1u 和2u 使对应的余式更接近于零.为此,作线性近似,取()()()21122x u du x u du U x +=+++,使
()()()11220r x r dr x r dr +=++=,则修正量1du 、2du 应满足方程组0
11022
r dr r dr +=⎧⎨+=⎩即
1
112112
22122
1
200
r r du du r u u r r du du r u u +
+∂∂⎧+=⎪∂∂⎪⎨
∂∂⎪+=⎪∂∂⎩ 利用已知关系可求出
11r u ∂∂、21r u ∂∂、12r u ∂∂和22
r
u ∂∂代入上面方程组,就能求出1u 和2u 的校正量1du 和2du .而11u du +和22u du +就是更好的二次因式的两个系数.
三. Bernoulli 方法
引理 1 对任何的n 次代数多项式方程
1011()0n n n n n P x a x a x a x a --=++++= ,其对应的齐次常系数线性差分方程
110k n k n n k u a u a u ++-+++=
的特征方程为1110n n n n x a x a x a --++++= .
引理2 如果差分方程110k n k n n k u a u a u ++-+++= 的初始条件为
0120n u u u -==== ,11n u -=, 则其解可以表示为111,0k k
k n n
u c x c x c =++≠ ,其中:()1,2,i x i n = 为方程1011()0n n n n n P x a x a x a x a --=++++= 的n 个根. 定理 设代数多项式方程1011()0n n n n n P x a x a x a x a --=++++= 有一个单重的最大模零点1x ,{}0k u ∞
为与之相关联的差分方程的解序
列,且差分方程的初始条件为120,n n u u u --+-==== 11u -=,则1
1lim
k k k
u x u +→∞=
设E 是使数列k F 的下标增加1 的运算子, 即1k k EF F =+, 则齐次常系数线性差分方程()()111n n n k n n k P E F E a E a E a F --≡++++≡ 11n k n k F a F +--++
110n k n k a F a F -+++≡ 的特征方程就是代数
方程()0n P x = , 这个代数方程的根12,,,n x x x 叫做差分方程的特征根.
给定()11n n F F F - ,,
,的定值() 0,0,,1, 即可依次从上式算出n F , 1n F + , , 这样就定出差分方程的一个特解.
如果特征根各不相同, 则差分方程的一般解是1122k k k
k n n F c x c x c x =+++ .
设12n x x x >≥≥ , 且10c ≠则当k →∞时, 特解k F 的主要项是第一项, 即
11
lim
k k k x F F +→∞=, 这就是求最大实根21k k k G x H x G --+ 的伯努利法.
设方程的最大根是一对共轭复根: 1=i x re θ, 2=i x re θ-,计算
2
11k k
k k G F F F -+=-,112k k k k k H F F F F -+-=-可证21
lim
k k k G r G →∞-'
= 1
lim
2cos k
k k H r G θ→∞-=, 由此可得最大共轭复根对应的近似二次因式:
21k k k G x H x G --+.
例5 利用Bernoulli 方法求解方程
432
59720.x x x x -+-+= 解:与方程432
59720.x x x x -+-+=相
关联的差分方程为123459720
k k k k k u u u u u -----+-+=,选取初始值32-10==0=1u u u u --=,利用
Matlab 可以得到各步迭代结果及比例值(见表5)
改进Bernoulli 方法
设1x , 2x 为方程1011()0n n n n n P x a x a x a x a --=++++= 的一对共轭复数根(主根),且有12=i x x x < ( i = 3, 4, , n ),方程
1011()0n n n n n P x a x a x a x a --=++++= 对应的差分方程的解为
111,0k k
k n n u c x c x c =++≠ .由于方程1011()0n n n n n P x a x a x a x a --=++++= 存在共
轭复根,故对应差分方程中的系数1c , 2c 也应该是复共轭的.令12i x r x e θ-==,
12i c a c e θ==
其中:0r >; 0a >; 0ϕπ<<.则
()()()1122cos i k i k k k
k k n ik ik i k i k c x c x ae r e ae r e ar e e ar k θϕθϕϕϕθθϕθ-----⎡⎤=+=+⎣⎦
+=+ 因此
()11332cos k k k k k
k n n n n u c x c x ar k c x c x ϕθ=++=++++
进一步
()332cos 22k k
k
n n k c x c x u ar k a r a r ϕθ⎡⎤
⎛⎫⎛⎫=++++⎢⎥ ⎪ ⎪⎝⎭⎝⎭⎢⎥⎣⎦
由上式可以看出,当k 很大时,()2cos k k u ar k ϕθ≈+.
对于主根为共轭复根的情形,不妨考察差分方程2112cos 0k k k u ru r u ϕ+-≈-+ 显然2
22cos 40r r ϕ-<将式上式的下标减去1,则得到方程
2122cos 0k k k u ru r u ϕ--≈-+
联立上面两个方程可以解得
22
11212k k k k k k u u u u u r u +----≈-,121212
2cos k k k k k k k u u u u
u u u ϕ+------≈-
利用上式可以求得r 及ϕ,进而可以求得对应的共轭复数根. 以上是以差分方程为工具,在Bernoulli 方法的基础上研究方程
1011()0n n n n n P x a x a x a x a --=++++= 的共轭复数根的方法,即为改进
Bernoulli 方法.
综上所述我们可以发现二分法是最基本的近似根的求解方法,但收敛太慢;牛顿迭代法虽然收敛速度得以提高,但也仅限于研究方程的实根;改进牛顿法可
以求近似复数根,但计算量过大,且为局部收敛的;Bernoulli 法比较精细,但该方法仅能求最小的实数解;劈因子法可以求近似复数解,但需要近似的二次因式,精度很难得以保证.。