第二章-一元非线性方程的数值解法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章 一元非线性方程的数值解法
在科学和工程计算中,如电路和电力系统计算、非线性微分和积分方程、非线性规划、非线性力学等众多领域中,经常会遇到求解非线性方程的问题.非线性科学是当今科学发展的一个重要的研究方向,而非线性方程的数值解法又是其中不可缺少的内容.
本章主要讨论一元非线性方程
0)(=x f 的数值解法,其中R x ∈,)(x f 为x 的非线性函数. 在方程中,若函数)(x f 是x 的n 次多项式,则称方程为多项式方程或代数方程:023368
=-+-x x x
;若函数)(x f 是
超越函数(自变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。

如指数函数、对数函数、三角函数和反三角函数等都是超越函数),则称方程为超越方程:例
06
tan
3=--x
e x π
使()0f x =的*
x 称为方程0)(=x f 的根,又称为函数)(x f 的零点.若)(x f 可分解为
)(x f =)()(*x g x x m -,
其中m 为正整数,且0)(*
≠x
g .当m =1
时,称*
x 为方程0
)(=x f 的单根,而当1>m 时,则称*
x 为方程0)(=x f 的m 重根,或称*
x 为)(x f 的m 重零点.设*
x 为)(x f 的m 重零点,且)(x g 充
分光滑,则
0)()()(*)1(**==='=-x f x f x f m ,0)(*)(≠x f m .
根的求解:对于n 次多项式方程,当次数4≤n 时,多项式方程的根可用求根公式表示:2,1=n 时方程的根是我们已经熟知的,4,3=n 时虽然有求根公式,但已不适合用于数值计算;而次数5≥n 时,就不能用公式表示多项式方程的根了.因此,对于次数3≥n 的多项式方程和一般连续函数方程,在实际应用时,通常并不需要得到方程根的解析表达式,只要得到满足一定精度的数值近似根就可以了.
对于非线性方程0)(=x f ,求其近似数值根一般分为四步:
(1) 判断根的存在性:判断方程0)(=x f 是否有根若有,有几个
(2) 确定根的分布范围:分析并估计方程根的分布情况,并将每一个根用相应区间分隔开,即确定方程根的有根区间;
(3) 根的初始化:确定根的初始近似值(称之为初始近似根);
(4) 根的精确化:对根的某个初始近似值设法逐步精确化,使其满足一定的精度要求.
由以上步骤可以看出,求非线性方程数值近似根的
方法一般为迭代法.
第一节 初始近似根的确定
一、有根区间的确定
设)(x f 为区间],[b a 上的连续函数,若0)()(<b f a f ,由闭区间上连续函数的性质(根的存在定理)可知,方程
0)(=x f 在),(b a 内至少存在一个实根,此时则称],[b a 为方程0
)(=x f 的有根区间(Rooted Inter-val).
此外我们也可以借助某些数学软件(如MathCAD, Mathematics, Matlab 等)描绘出)(x f 的图像,直观地了解方程0)(=x f 根的分布情况.因此,我们可用试探的办法或根据函数的图象,确定出根的分布范围,即将函数)(x f 的定义域分成若干个只含一个实根的区间. 例 试确定方程01)(6
=--=x x x f 的有根区间.
解 由于16)(5
-='x
x f ,当5
6
1
>x 时0)(>'x f ,则)(x f 为严
格单调增函数;而当5
6
1<x 时0)(<'x f ,则)(x f 为严格单调减函数.又由于
0615<⎪⎪⎭
⎫ ⎝⎛f ,
)(>±∞f ,所以方程
01)(6=--=x x x f 只有两个实根.
经进一步分析可知,0)2()1(<f f ,则方程在[1,2]内
有一个实根;0)0()1(<-f f ,则方程的另一个实根在[-1,0]内.
下面介绍的几种求方程的根的常用数值解法,即二分法,牛顿迭代法,都是将方程的初始近似根逐步精确化的方法.
第二节 二分法
二分法也称为区间对分法,是解非线性方程最直观、最简单的方法.
为讨论方便,不妨设函数)(x f 在],[b a 上连续,严格单调,且0)()(<b f a f ,则方程0)(=x f 在区间],[b a 内有且仅有一个实根*
x .
二分法的基本思想:将方程的有根区间平分为两个小区间,然后判断根在哪个小区间,舍去无根小区间,而后再把有根的小区间一分为二,判断根属于哪个更小的区间,如此反复,直到求出满足精度要求的近似根.
二分法的具体计算过程如下: 1. 取区间],[b a 的中点)(2
1
b a x +=,计算区间中点函数
值)(0
x f ,并判断:
若0)()(0
<x f a f ,则根],[0x a x
∈*
,令011,x b a a ==,则新的有
根区间为],[1
1
b a ;
若0
()0f x =,则0
x 即为所求根*
x ;
若0)()(0
>x
f a f ,则根],[0b x x ∈*,令b b x a ==101,,则新的
有根区间为],[1
1
b a .
2. 对有根区间1
1
[,]a b 施行同样的操作,即取中点
)(2
1
111b a x +=
,再将1
1
[,]a b 分为两个子区间1
1
[,]a x 和1
1
[,]x b ,计
算)(1
a f 和)(1
x f ,若
)()(11<x f a f
则11[,]x
a x *
∈,令1212,x b a a == ;否则11[,]x x b *∈,令1212,b b x a ==.这
样又确定了一个有根区间2
2
[,]a b ,其长度是区间1
1
[,]a b 长度的一半.
如此反复,便得到一系列有根区间
⊃⊃⊃⊃⊃],[],[],[],[2211n n b a b a b a b a
显然,区间],[n n
b a 的长度为
n n n n n a
b a b a b 2
211-==-=
---
当∞→n 时,上式的极限为0,区间[,]k
k
a b 最终必收敛于一
图 二分法示意图
点, 该点就是所求方程的根*
x .
我们取二分后的最后的有根区间],[n n
b a 的中点n x 作
为方程的根*
x 的近似根
2
n
n n b a x +=
,],[n n n
b a x
∈,
其误差估计式为

-||*
n x x
2n n a b -12
+-=n a
b 当∞→n 时,取≤
-||*
n x x
02
→-n
n a b ,即*x x n →. 对预先给定的精度0>ε(即指定的绝对误差限ε),可以用以下方式结束二分法: 当ε<-++||11
n n a b 时,必有ε<-*||n x x ,结束二分法计算,
取n x x
≈*

二分法的计算步骤如下:
(1) 输入有根区间的端点b a ,及预先给定的精度ε; (2) 2/)(:b a x +=; (3) 若
0)()(<x f a f ,则x b =:,转向(4);否则x a =:,转
向(4);
(4) 若ε<-a b ,则输出方程满足精度的根x ,结束;否则转向(2). 二分法的优点: 1、是算法简单;
2、对函数的性质要求较低(只要连续即可);
3、收敛性可保证. 二分法的缺点: 1、收敛速度很慢;
2、不能求偶数重根,原因在于当方程有偶数重根时所分区间端点处函数值同号,而将该区间舍去造成失根现象.
因此.在实际应用时,可用它求方程根的初始近似值.
例 用二分法求方程0
1)(23
=-+=x x
x f 在]1,0[上的根(取310-=ε).
解(1) 这里1,0==b a ,0
1)1(,
01)0(>=<-=f f ,得有根区间
]
1,0[;
(2) 计算0125.0)5.0(,5.021
00
<-==+=
f x ,得有根区间]1,5.0[;
(3) 计算
01563.0)75.0(,75.0215.02<-==+=f x 得有根区间]1,75.0[;
如此继续,直到3
110--<-k k
x x
时停止,计算结果见表:

由表知
3980.0009810x x --=<
所以原方程在]1,0[内的根*
90.75489x
x ≈≈.
第三节 牛顿迭代法及其收敛性
迭代法在数学的各个分支都有着重要的应用.本节主要讨论迭代法在非线性方程求根的应用. 一、迭代法的基本思想
迭代法的基本思想是:将方程中()0f x =化为下列等
价形式
)(x g x = 若要求*
x 满足0)(*
=x
f ,则只需求出)(**x
g x =即可;反之
也是如此,则称*
x 为函数)(x g 的一个不动点,求函数)
(x f 的零点就等价于求函数)(x g 的不动点.在有根区间内选一个初始近似值0
x ,然后按构造公式
,2,1,0),(1==+k x g x k k
可得到一个数列
,,,,,210k x x x x
称{}k
x 为迭代序列,而称式中的)(x g 为迭代函数.如果迭代序列{}k
x 是收敛的,且收敛于*
x ,则当)(x g 连续时,
在式两边取极限即得)
(**
x g x
=,即 0
)(*=x f
从而*
x 便是方程的根.但实际计算当然不可能做无穷多步,实用上,当k 充分大时,若
ε
<--1k k x x
就取k
x 作为原方程的近似根.这种求根法称为不动点
迭代法,或称逐次逼近法(Picard 迭代法).就是一个不动点迭代公式.当迭代公式产生的迭代序列{}k
x 收敛
时,就称迭代法或迭代公式是收敛的,否则就称为是发散的.
二、不动点迭代法的构造
我们使用迭代法求解非线性方程时需要解决如下四个问题:(1) 迭代函数的构造;(2) 初始近似根的选取;(3) 迭代序列收敛性分析;(4) 收敛速度和误差分析.
三、牛顿迭代法及其收敛性
设*
x 是一元非线性方程0)(=x f 的根,函数)(x f 在*
x 的
某邻域内连续可微,k
x 是某个迭代近似根,且
0)(≠'k x f .把)(x f 在点k x 处进行一阶泰勒展开,可得
))(()()(k k k x x x f x f x f -'+≈
则方程0)(=x f 可近似表示为 0))(()(=-'+k
k
k
x x x f x f 这是一个线性方程,求解得
)
()
(k k k x f x f x x '-
= 将其右端项作为新的迭代值1
+k x ,则可得迭代公式
)
()
(1k k k k x f x f x x '-
=+ ,2,1,0=k
这就是牛顿迭代法(Newton ’s Method),称为牛顿迭代公式.
如图所示,曲线)(x f y =与x 轴的交点*
x
就是方程0)(=x f 的根.设x k
是方程0)(=x f 的一个近似根,过曲线y f x =()上的点))(,(k k k x f x P 作切线,切线与x 轴的交点为x k +1,切线的方程

y f x f x x x k k k =+'-()()()
设切线点与x 轴的交点为(,)
x k +1
0,若0)(≠'k
x f ,则可得
牛顿迭代公式)
()
(1k k k k x f x f x x
'-
=+ ,2,1,0=k 因此,牛顿迭代法又称为切线法(Tangent Method).
牛顿迭代法的几何意义:用曲线)(x f y =在点))(,(k
k
x f x 处
的切线与x 轴的交点的横坐标1
+k x 来代替曲线)(x f y =与x
轴交点的横坐标*
x .
牛顿迭代法的计算步骤为: ()1 给出初始近似根0
x 及精度ε;
()2 计算)
()
(:000
1
x f x f x
x '-
=;
()
3 对于给定的允许误差ε,若ε
<-01
x x
, 转向()4;
否则10
:x x
=,转向()2;
()4 输出满足精度的根1
x ,结束.
图 切线法示意图
例 用牛顿迭代法求方程0
1=-x
xe 在5.0=x 附近的根,
精度为8
10-=ε.
解 这里1)(-=x
xe x f ,x x xe e x f +=')(,相应的牛顿迭代公
式为
k x
k k x
k x x k k k x e x x e x e e x x x k
k
k
k
+--
=+--=-+111
, ,2,1,0=k
取5.00
=x ,迭代结果见表,易见
8341000001000.0||-<=-x x
故 567143290
.04≈≈*
x x
迭代了4次就得到了较满意的结果. 例 用牛顿法计算3. 解 令3=x ,则0
32
=-x ,即求3等价于求方程
3)(2=-=x x f
的正实根.因为x x f 2)(=',由牛顿迭代公式得
)
3
(21232
1k
k k k k k x x x x x x +=--=+, ,2,1,0=k
取初值5
.10
=x
,得
75.1)3
(21001=+=
x x x , 732142857.0)3
(21112=+=
x x x 732050815.1)3
(212
23=+=
x x x ,

732050808.1)3
(21334=+=
x x x 732050808.1)3
(214
45=+=
x x x
732050808
.13≈∴
这个迭代公式的意义在于通过加法和乘除法实现开方运算,这是在计算机上作开方运算的一个方法.。

相关文档
最新文档