非线性方程求根
第4章_非线性方程求根
此方程还可以有另外的迭代形式:
xk 1
计 算 方 法 课 件
1 , 2 3 xk
k 0,1,2,3,
xk 1 3 3xk 1,
4.2.2 迭代法的几何解释
k 0,1,2,3,
以上可以看到迭代法可能收敛,也可能不收敛.一般说从 f(x)=0构造出的x=g(x)不止一种,有的收敛,有的不收敛 ,这取决于g(x)的性态.将x=g(x)写为
计 算 方 法 课 件
x3 1 解: 构造等价方程 x 3 3 xk 1 用迭代公式: xk 1 , 3
取x0=0.5,列表计算如下
k 0,1,2,3,
k
xk
0
0.5
1
0.375
2
0.34791
3
0.34774
4
0.34735
5
0.34730
可得 x=0.3473.以上迭代形式不能求出方程在1.5和-2附 近的根,请读者自己验证. 8 结束
第4章
非线性方程求根
求方程f(x)=0的根是最常见的数学问题之一,当f(x) 是一次 计 多项式时,称f(x)=0为线性方程,否则称之为非线性方程. 算 方 6 3 x 如求下列方程的根: 7 x x x 1 . 5 0 , e cos(x) 0 法 课 件 当f(x)=0是非线性方程时,由于f(x) 的多样性,尚无一般 的解析解法可使用,但如果对任意的精度要求,能求出方程
{xn } 敛于x速度快。
注4:若 | g ( x) | q 1, x (a, b) ,则{xn }不收敛于 [a,b]内的不动点x。
12
§4.3
4.3.1 牛顿法
牛顿(Newton)迭代法
非线性方程求根
0 A a1 b1a2 b2
Bx
例 方程f(x)=x3-x-1=0 确定其有根区间 解:用试凑的方法,不难发现
f(0)<0 f(2)>0 在区间(0,2)内至少有一个实根 设从x=0出发,取h=0.5为步长向右进行根的 搜索,列表如下
x
0 0.5 1.0
1.5
2
f(x) – –
–
+
+
可以看出,在[1.0,1.5]内必有一根
仍取 x0 1.5 ,则有 x1 2.375 ,x2 12.39 显然结果越来越大,{xk } 是发散序列
迭代法的几何意义
通常将方程f(x)=0化为与它同解的方程 x (x) 的方法不止一种,有的收敛,有的不收敛,这取决于(x) 的性态,方程 x (x) 的求根问题在几何上就是确定曲
误差限为 x* xk
1 2 k 1
(b a)
只要取k满足
1 2 k 1 (b a)
1 103 2
即可,亦即
2k 103
k 3 lg 10 9.97 1g 2
所以需二分10次便可达到要求。
二分法的优点是不管有根区间 a, b 多大,总能求出
满足精度要求的根,且对函数f(x)的要求不高,只要连续即可,
线y= (x) 与直线y=x的交点P*的横坐标(如图所示)
y
Q1
Q2
P*
P1
P2
x*
x2
x1
0 (x* ) 1
(a)
y=x
y= ( x)
P0
x0
x
y
y= (x)
(x)P*
y=x
x1 x3 x*
第五章非线性方程求根
打印
结束
是 继续扫描
例1:考察方程
f (x) x3 x 1 0
x
0 0.5 1.0 1.5
f (x) 的 - - 符号
-+
§2 二 分 法
a
a x0 x*
x1
b
b
xk xk1 ε1 或 f ( x) ε2
不能保证 x 的精 度
执行步骤 1.计算f (x)在有解区间[a, b]端点处的值,f (a),f (b)。
(3) Steffensen 加速法
将Aitken加速公式与不动点迭代相结合,可得
x(1) k 1
( xk
),
x(2) k 1
x k 1
xk
x(1) k 1
xk
x(2) k 1
2
x(1) k 1
(
x(1) k 1
2
xk
) ,
k 0,1,
(5.3.6)
利用(5.3.6)式构造序列{xk } 的方法称为Steffensen加速方法。 即每进行两次不动点迭代,就执行一次Aitken加速。
f (x) ex 10 0
因而, f (x) 是严格单调的, f (x) 0最多有一个根,
又因为 f (0) 1 0, f (1) e 8 0 所以, f (x) 0 有唯一实根 x* (0,1)
用二分法求解,要使 xk x* 0.5102,只要
1 0 2k 1
0.5 102
2.计算f (x)在区间中点处的值f (x0)。
3.判断若f (x0) = 0,则x0即是根,否则检验: (1)若f (x1)与f (a)异号,则知解位于区间[a, x0], b1=x0, a1=a; (2)若f (x0)与f (a)同号,则知解位于区间[x0, b], a1=x0, b1=b。
第七章 非线性方程求根
§7.1 二分法 §7.2 迭代法及其收敛性 §7.3 迭代法的加速方法 §7.4 Newton迭代法 §7.5 弦截法与抛物线法 §7.6 解非线性方程组的Newton迭代法
§7.1 二分法(图示)(返回)
§7.2 迭代法及其收敛性(返回)
不动点迭代 压缩映像原理 局部收敛性 收敛阶
y (x)
x
x* x2
x1
x0 x
x* x0 x1
x2
Aitken加速法图示
y y (x)
yx
x x1 x* x1 x0 x2
二分法图示
y
y f (x)
a0 O x* b2 b1
b0
Hale Waihona Puke xNewton迭代法的几何解释
y y f (x)
x* x2
x x1 x0
Newton迭代法算例
不动点迭代(图示)(返回)
压缩映像原理(返回)(例题)
局部收敛性(返回)(例题)
收敛阶(返回)
§7.3 迭代法的加速方法(返回)
Aitken加速法 Steffensen加速法
Aitken加速法(图示)
Steffensen加速法
§7.4 Newton迭代法(返回)
Newton迭代法及其收敛性 简化Newton法 Newton下山法 重根情形的Newton迭代法
Newton迭代法及其收敛性(算例)
简化Newton法
Newton下山法
重根情形的Newton迭代法
§7.5 弦截法与抛物线法(返回)
§7.6 解非线性方程组的 Newton迭代法(返回)
压缩映像原理例题
局部收敛性例题
不动点迭代图示
第四章 非线性方程求根
4.1 方程求根与二分法
当 f ( x) 为代数多项式时,根据代数基本定理可知, n 次方程在复数域有且只有 n 个根,因此可利用迭代 法求代数方程的根。 二分法 若 f ( x) C[a, b] ,且 f (a) f (b) 0 ,根据连续函数性质 可知 f ( x) 在 [a, b]内至少有一个实根,此时称[a, b]为方程 若 f ( x) 可表示为 f ( x) ( x x* )m g ( x),其中 m 为正整数,且 g ( x* ) 0 。当 m 1 时,称 x* 为单根,若m 1 称 x* 为 m 重 根,或 f ( x) 的 m 重零点。若 x* 是 f ( x) 的 m 重零点,且 g ( x) 充分光滑,则
4.1 方程求根与二分法
这样,我们得到了一个序列 xn ,为确定 xn 的收敛性 我们有如下的定理: 定理:设 f ( x) C[a, b], f (a) f (b) 0, 则二分算法产生的 序列 xn 满足 xn x* (b a) / 2n ,其中 x* [a, b]为方程的根。 证明:因为 [an , bn ] 由[an1 , bn1 ] 对分得到,所以对 n 1 bn1 bn , 否则取 an1 an , bn1 xn , 这样必有 f (an1 ) f (bn1 ) 0 所以 [an1 , bn1 ] 就是新的有根区间,继续此过程,即可得 到结果。 算法:(1)令 x (a b) / 2 (2) 若 f ( x) 或 b x ,则输出 x ,结束 (3) 若 f (a) f ( x) 0 ,则令 a x ,否则令 b x (4) 转向1)
第7章 非线性方程求根
k 且区间长度逐次减半, bk ak (b a) 2 .
非线性方程求根的二分法
二分法基本步骤: 随着k的增大,有根区间长度趋于零,区间端点向 * lim a lim b lim x x . 一点收缩, k k k k k k 显然x*即为f(x)=0的根。而x0, x1, …,xk,…为近似根 * 序列。设要求精度为ε ,即 x xk ,
x1 x* ( )(x0 x* ) M ( x0 x* ), x2 ( x1 ), x2 x M ( x1 x ).
* *
加速迭代法
消去M得
x1 x* x0 x* , * * x2 x x1 x
2
2 x x x ( x x ) 1 0 x* x1 0 2 1 x0 , x2 2 x1 x0 x0 2 x1 x2
斯蒂芬森迭代法
结合埃特金加速法和不动点迭代法形成斯 蒂芬森迭代法:
yk ( xk ), z k ( yk ), ( y k xk ) xk 1 xk z k 2 y k xk
2
(k 0,1, ).
斯蒂芬森迭代法几何意义
定义x点关于方程 x ( x) 的误差为: ( x) ( x) x. * * * * ( x ) ( x ) x 0. 则该方程的根x 的误差
非线性方程的迭代法求根
基本概念 非线性方程f(x)=0的根(解) x*,也称为非线性 函数f(x)的零点,f(x*)=0。 f(x)=0的m重根定义:f(x)=(x-x*)mg(x), g(x*)≠0,则称x*为f(x)=0的m重根,或f(x)的 m重零点。 m重根的判定条件: x*为f(x)=0的m重根当 且仅当 * * ( m1) * ( m) * f (x ) f (x ) f ( x ) 0; f ( x ) 0.
第2章非线性方程求根
解:设最多需要迭代n次。
∵要求精确到小数点后3位,
∴误差限≤ 12×10-3,
∴由定理2.1得:
n=
lg(1
0)
lg( lg 2
1 2
103 )
1
=
0
( lg 2 lg 2
3)
1
=
0.301 0.301
3
1= 10 .97
1
=10,即最多需要迭代10次。
用对分法求f(x)=0在某区间的单根,最多迭代次数与函数f(x)曲线形状无 关。一般情况下,对分法的最多迭代次数比其他的变步长逐步搜索法要 少,因此对分法是用得最多的变步长逐步搜索法。
if(f(b)==0) x=b;
else for(begin=a,end=a+h;begin<b;begin=end,end+=h)
{
if(end>b)end=b;
if(f(begin)==0)
{x=begin;break; }
if(f(begin)*f(end)<0)
{x=(begin+end)/2;break; }}
Y
N
x=begin;
break;
f(begin)*f(end)<0
Y
N
(end-begin)/2<=ε
Y
N
x=(begin+end)/2;
h/=hnumber;
break;
end=begin;
输出方程f(x)=0的根x。
8
2.3 根的搜索
变步长逐步搜索法对应的程序
#include <stdio.h> double f(double x);
计算方法非线性方程求根
计算方法非线性方程求根第十章非线性方程求根知识点:求根的基本概念,对分法,迭代法,误差,编程停机判断,算法说明1.概念(1)根的概念方程f(x)=0的解叫做方程的根或f(x)的零点。
例如x-cosx=0,x-e x=0求方程的根是数值计算的任务之一,当不易求得f(x)=0的解析解时,可以考虑求其近似根。
求实根问题包括:根的存在性;根的分布;根的精确化.(2)根的存在性如果f(x)是[a,b]上的连续函数,且f(a) f(b)<0,则f(x)=0在(a,b)至少有一个根;若单调,则f(x)=0在(a,b)有惟一根。
(3)根的分布若有根区间的根多于一个,为了得到根的数值解,可以将该有根区间分割若干个子区间,使每个子区间只包含f(x)=0的一个根,这个过程称根的隔离,每个子区间称为隔根区间。
一般情形下,隔根区间内任一点都可作为相应根的近似值,隔根区间越小,近似程度越好。
(4)根的精确化在隔根区间内得到方程f(x)=0相应根的初步近似值后,为使近似值程度更好、符合预先期望,通常应继续逐步精确化根的近似值,直到满足规定的精度要求为止。
精确化方法有很多,常见的有二分法,迭代法等。
2.二分法二分法是利用隔根区间的两个端点来逐步求得满足预先给定精度的近似根。
(1)基本思想对分有根区间,判断f(x)的符号,逐步将有根区间缩小,使得在足够小的区间内取得满足预先给定精度要求的近似值。
(2)具体做法设区间[a,b]为有根区间,记α是f(x)=0在(a,b)的惟一根,二等分区间[a,b]。
令x0=(a+b)/2,如果f(x0)=0,则求得实根α=(a+b)/2。
否则,若f(a)f(x0)<0,则α∈[a,x0],取a1=a,b1=x0;若f(b)f(x0)<0,则α∈[x0,b],取a1=x0,b1=b。
在新的有根区间上重复二等分过程,得有根区间套序列[a,b]? [a1,b1]? [a2,b2] ?…? [a k,b k] ?…b-a>b1-a1>b2-a2>…>b k-a k…,a k≤α≤b k其中每个区间为前一个区间的一半,经过k次二分后,有根区间的长度为如此无限二等分区间[a,b](k→∞)有b k- a k→0(k→∞)或lim a k=lim b k=α(k→∞)。
第七章非线性方程求根
一、对分区间法 原理:若 f(x) C[a, b],且 f (a) · (b) < f 0,则f(x) 在 (a, b) 上必有一根。
误差 分析: 第1步产生的
ab ba x1 有误差 |x1 x*| 2 2
| xk x*| ba 2k
第 k 步产生的 xk 有误差
有根区间 -(1,2)+ (1,1.5) (1.25,1.5) (1.25,1.375) (1.313,1.375) (1.344,1.375) (1.360,1.375) (1.360,1.368)
中点 x n
x 2 1.25 x 3 1.375 x4 1.313 x5 1.344 x6 1.360 x7 1.368 x8 1.364
f ( x0 ) x1 x0 作为第一次近似值 f ( x0 )
重复上述过程
xk 1
f ( xk ) xk f ( xk )
牛顿法的几何意义
Tangent line : y f ( x0 ) f ( x0 )( x x0 )
y
f ( x0 ) x1 x0 f ( x0 )
≤
|x k-1-x*|
(|xk-xk-1|+|xk-x*|),
故有 |xk-x*| ≤
/(1-)|xk-xk-1|.
可用 | xk 1 xk | 来 控制收敛精度
这就证明了估计式(6).
(5) |xk-xk-1| = |g(xk-1)-g(xk-2)|
≤
|x k-1-xk-2|≤…≤
收敛性分析
定义2 若存在常数(0≤ <1),使得对一切 x1,x2∈[a,b], 成立不等式 |g(x1)-g(x2)|≤ |x1-x2|, (5) 则称g(x)是[a,b]上的一个压缩映射, 称为压缩系数
第7章非线性方程求根
第7章 非线性方程求根本章主要内容:1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法.重点、难点一、区间二分法区间二分法是求方程f(x)=0根的近似值的常用方法。
基本思想:利用有根区间的判别方法确定方程根的区间[a,b] ,将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。
区间二分法的计算步骤如下: 1.计算区间端点的函数值f(a) , f(b)(不妨设f(a)<0,f(b)>0);确定初始有根区间[a,b]. 2.二分有根区间[a,b],并计算)2(ba f + 取21b a x +=3.判断: 若0)(1=x f ,则方程的根为1x x =*;若 0)(1>x f ,则有根区间为[]1,x a x ∈*;令[]],[,111b a x a =若 0)(1<x f ,则有根区间为[]b x x ,1∈*;令 []],[,111b a b x =4. 如果│b-a │<ε(ε为误差限),则方程的根为2ba x +=*;否则转向步骤2,继续二分有根区间[a 1,b 1],并计算中点值,继续有根区间的判断,直到满足精度要求为止,即│b n -a n │<ε二分次数的确定:如果给定误差限ε,则需要二分的次数可由公式12ln ln )ln(---≥εa b n 确定应二分的次数。
例1 用区间二分法求方程0353=+-x x 在某区间内实根的近似值(精确到0.001)【思路】参见上述区间二分法的计算步骤解 ∵f(1.8)=-0.168<0, f(1.9)=0.359>0 ∴f(x)在区间[1.8 ,1.9]内有一个根。
由公式 644.512ln 001.0ln 1.0ln 12ln ln )ln(=--=---≥εa b n取n=6, 计算结果列表如下:则方程在区间[1.8,1.9]内所求近似值为x *≈ x = 1.8328125区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。
5非线性方程的求根
(3)迭代25次后 (4)迭代9次后 (5)迭代3次后
x3 1.36523001 若采用二分法则有 x25 1.364990235 , x27 1.36523001
迭代格式构造的不同,可能会出现发散或无意义的情形,即使 是收敛的,收敛的速度也有快慢之分。 9
单点迭代法
计算第k+1个近似值 xk 1 时仅用到第k个点处 的信息,如(5.1) 多点迭代法 计算 xk 1 时需要用到前面P个点处的信息 一般形式为
§2
迭代法
x g ( x)
设方程 f ( x) 0 可以转化为等价的形式 从某个初值
xk 1 g ( xk ) k 0,1, 2, (5.1) 得到序列 {xk } 。当 g ( x) 连续,且序列 {xk } 收敛时,有
lim xk 1 lim g ( xk ) g (lim xk )
k k k
x0
出发令
即
即序列 {xk } 的极限 是方程 f ( x) 0 的根。 称(5.1)为迭代格式,函数 g ( x) 为迭代函数。构造迭代 格式的方法称为迭代法。 7
g ( )
例5.2 构造不同的迭代格式,求方程 x3 4 x 2 10 0 在(1,2)内的近似根。
当 n 充分大时就有 误差估计式为
k 1, 2, , n.
1 (an bn ) 2
an bn b a | | n 1 2 2
3
算法(二分法)
输入 f ( x ),区间 [ a, b] ,精度 0,最大的迭代次数N 1.对 2. 3. 4.若
k 1, 2,, N ,
对迭代方程 x g ( x) ,若迭代函数 g ( x) 满足
第7章 非线性方程求根
如果点列﹛Pk﹜趋向于点P*,则相应的迭代值xk收敛到 所求根x*.
例3 求x3 x 1 0在1.5附近的根x * . 解:()x0 1.5,xk 1 3 xk 1, (k 0,1,2,). 1
k 0 1 2 3 4 5 6 7 xk 1.5 1.35721 1.33086 1.32588 1.32494 1.32476 1.32473 1.32472
| xk x* | (bk ak ) / 2 (b a) / 2k 1. (1.3)
1 x xk k 1 (b a ) 2
(1.3)
对于确定的精度ε,从式(1.3)易求得需要二等分
的次数k。
二分法具有简单和易操作的优点。其计算步骤如 下,框图如图7.2所示。
(1.1)
2. 超越方程, 如 : x ex 0.
如果f ( x)可以分解为 f ( x) ( x x*)m g ( x), 其中0 | g ( x*) | , m为正整数. 则称x * 为f ( x)的m重零点.
此时 f ( x*) f ( x*) f ( m 1) ( x*) 0, f ( m) ( x*) 0.
•
设f(x)为定义在某区间上的连续函数, 方程(1.1)存在实根。虽然方程(1.1)的根的 分布范围一般比较复杂,但我们不难将函 数f(x)的定义域分成若干个只含一个实根 的区间。 • 例如考虑方程 • x2-2x-1=0 • 由图7.1所示,该方程的一个负实根在-1 和0之间,另一个正实根在2和3之间。
虽然迭代法的基本思想很简单,但效果并不总是令人 满意的。对于上例,若按方程写成另一种等价形式 x=x3-1 建立迭代公式 xk+1=x3k-1, k=0,1,2,…
非线性方程求根方法
第12章非线性方程求根方法二分法二分法算法1.计算[a, b]区间的中点存放在变量x0中,x0 ⇐(a+b)/2;2.如果函数值f(x0)=0, 则x0是f(x)=0的实根x* ,输出根x0, 终止;3.如果函数值f(a)f(x0)<0,则b ⇐ x0 ,否则a ⇐ x0;4.如果b-a≤ε(ε为给定的精度),则输出根的近似值(a+b)/2,终止,否则转1。
二分法程序Clear[x]f[x_]=Input[“键入函数f(x)=”];a= Input[“键入左端点a=”];b=Input[“键入右端点b=”];Print[“a=”,a, “b=”,b, “ f(x)=”,f[x]]e1=10^(-10);eps=Input[“键入根的误差限eps=”];n=0;While[b-a>eps,x=(a+b)/2;n=n+1;w=f[x];If[Abs[w]<e1,Print[“n=”,n, “x=”,x, “ f[x]=”,w];Break[]];p=f[a]*w//N;If[p<0,b=x,a=x];Print[“n=”,n, “x=”,x//N, “eps=”,b-a//N]]说明:本程序用于求非线性方程f(x)=0在区间[a, b]内的根,这里要求f(x)在区间[a, b]连续,且f(a)f(b)<0。
程序执行后,先通过键盘输入函数f(x)和区间左端点a和右端点b及根的精度要求e,程序即可给出每次二分的次数和对应的点列{x k},其中最后输出的结果即为所求的根。
程序中变量说明x:存放初值x0和二分法中的x k;a:存放含根区间的左端点a k;b:存放含根区间的右端点b k;e1: 描述f(x k)=0的微小值, 这里用|f(x k)|<e1表示f(x k)=0;n: 存放二分次数。
注:语句“If[p<0,b=x,a=x]”中“p”的一定要是算出的数值,否则会出现错误。
非线性方程求根
实际中,用解方程组的形式
J ( X k )( X k 1 X k ) F ( X k )
迭代法的基本步骤如下:
f ( x) 0 x ( x ) 2、取合适的初值,产生迭代序列 x0 , xi 1 ( xi )
1、给出方程的局部等价形式 3、求极限
x* lim xn 易知,该值为方程的根 n
一定收敛吗?
y p1 p0
y=x y=g(x)
y y=g(x) p0
什么时候停止?
a
x a1 x* x2 b b
xk 1 xk ε1
或
f ( x ) ε2
算法
While(|a-b|>eps) x=(a+b)/2 f(x) 若(|f(x)|<eps) x为解 若f(x)*f(b)<0 修正区间为[x,b] 若f(a)*f(x)<0 修正区间为[a,x] End while
若 f ' ( x0 ) 0 ,则有
y
记为
f ( x0 ) x x0 f ' ( x0 )
类似,我们可以得到
x1
x* x
x0
f ( x1 ) x2 x1 f ' ( x1 )
这样一直下去,我们可以得到迭代序列
xk 1 xk
f ( xk ) f ' ( xk )
Newton迭代的等价方程为:
非线性方程求根
非线性科学是当今科学发展的一个重要研究方向,而非线性方程的求根也成了一个 不可缺的内容。但是,非线性方程的求根非常复杂。 通常非线性方程的根的情况非常复杂:
sin( 2 x) y 1 y 2
无穷组解
计算方法2非线性方程求根
收敛性
牛顿-拉夫逊方法具有局部收敛性,当初始值选取合适时,可以迅 速收敛到方程的根。同时,该方法对单根和重根均有效。
05
数值稳定性与误差分析
数值稳定性概念
数值稳定性
指算法在计算过程中,对于输入数据的微小变化,输出结果的变化也是微小的,即算法对输入误差的 敏感性较低。
算法设计与实现过程
算法设计
针对所选择的非线性方程,设计一种有效的 求根算法。常见的求根算法包括二分法、牛 顿法、割线法等。在选择算法时,需要考虑 算法的收敛性、稳定性和计算效率等因素。
算法实现
根据所设计的算法,编写相应的计算机程序。 程序应包括输入、计算和输出三个主要部分。 输入部分用于接收用户输入的非线性方程和 初始值等信息;计算部分用于执行求根算法 的计算过程;输出部分用于显示计算结果和 相关信息。
研究不足与展望
对于某些特殊类型的非线性方程,如高 次方程、多元方程等,本文算法可能存 在一定的局限性和不足,需要进一步研 究和改进。
在实际应用中,非线性方程的求解往往受到 各种因素的影响,如噪声、误差等,本文算 法在处理这些问题时可能需要进一步完善和 优化。
未来可以进一步探索非线性方程求 根的新方法和新技术,如基于深度 学习的求解方法、基于高性能计算 的并行化技术等,以提高求解效率 和精度。
高斯-赛德尔迭代法
在雅可比迭代法的基础上,采 用逐次超松弛技术加速收敛。
牛顿-拉夫逊迭代法
将非线性方程组转化为等价的 线性方程组,然后利用牛顿拉夫逊方法进行迭代求解。
牛顿-拉夫逊方法
基本思想
将非线性方程在根的附近用泰勒级数展开,忽略高阶项,得到近似 线性方程,然后求解该线性方程得到根的近似值。
第7章非线性方程求根(数值分析)
第一节 方程求根与二分法
本章主要讨论单变量的非线性方程求根问题
1
非线性方程根的不同情况
设非线性方程为: f (x)=0 当f (x)为多项式时,非线性方程是
一种特殊形式的方程,即多项式方程,
也叫n 次代数方程 。
f ( x) a0 a1 x an xn an 0
若x*使得f (x*)=0,则称x*为方程f (x)=0的根 或函数 f (x)的零点。
6
非线性方程的有根区间
例:判断方程 f(x)=x4-4x3+1=0 有几
个实根,有根区间是什么?
由 f (x)= 4 x2(x-3)=0 得驻点 x1=0, x2=3。
因此将实轴分为三个区间来讨论: (-∞,0), (0,3),(3, +∞)
f (x) 在此三区间的符号分别为“ -”、“ - ”、“+”
11
1.求方程 的有根区间.
解 根据有根区间定义,对方程的根进行搜索计算, 结果如下表:
方程的三个有根区间为[1,2],[3,4],[5,6].
12
二分法
应用二分法的前提:已经确定了非
线性方程的有根区间[a,b]。
设方程 f (x)=0 在区间[a,b ]内有且只有一 个实根 x* 。
即 f (x) 满足条件:
7
非线性方程的有根区间
所以 f(x) 在(-∞,0), (0,3),(3, +∞)
区间上分别单调减、单调减、单调增。
分析计算可得:
f (–∞)>0, f (0)=1>0, f (3)=-26<0, f (+∞)>0
可见 f(x)仅有两个实根, 分别位于(0, 3) , (3,+∞)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非线性方程求根本章主要内容:1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法. 重点、难点 一、区间二分法区间二分法是求方程f(x)=0根的近似值的常用方法。
基本思想:利用有根区间的判别方法确定方程根的区间[a,b],将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。
区间二分法的计算步骤如下:1. 计算区间端点的函数值f(a),f(b)(不妨设f(a)<0,f(b)>0); 确定初始有根区间[a,b].2.二分有根区间[a,b],并计算)2(ba f +取21b a x +=3.判断:若0)(1=x f ,则方程的根为1x x =*;若0)(1>x f ,则有根区间为[]1,x a x ∈*;令[]],[,111b a x a = 若0)(1<x f ,则有根区间为[]b x x ,1∈*;令[]],[,111b a b x =4.如果│b-a │<ε(ε为误差限),则方程的根为2ba x +=*;否则转向步骤2,继续二分有根区间[a 1,b 1],并计算中点值,继续有根区间的判断,直到满足精度要求为止,即│b n -a n │<ε二分次数的确定:如果给定误差限ε,则需要二分的次数可由公式12ln ln )ln(---≥εa b n 确定应二分的次数。
例1用区间二分法求方程0353=+-x x 在某区间内实根的近似值(精确到0.001)【思路】参见上述区间二分法的计算步骤解∵f(1.8)=-0.168<0,f(1.9)=0.359>0∴f(x)在区间[1.8,1.9]内有一个根。
由公式644.512ln 001.0ln 1.0ln 12ln ln )ln(=--=---≥εa b n取n=6,计算结果列表如下:则方程在区间[1.8,1.9]内所求近似值为x *≈x=1.8328125区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。
迭代序列收敛阶的概念设迭代序列{}n x 收敛于*x ,如果存在实数1≥p 与正常数c ,使得c x x x x pn n n =--**+∞→1lim,则称序列{}n x 是p 阶收敛于*x 。
特别地,当1=p 时,称序列{}n x 为线性(一次)收敛;{}n x 为线性收敛时,必须要求1<c 。
当2=p 时,称序列{}n x 为平方(二次)收敛; 当21<<p 时,称序列{}n x 为超线性收敛;收敛阶p 越大,则序列{}n x 与*x 的误差缩减越快,也就是序列{}n x 收敛越快。
二、切线法(牛顿法)1.切线法的基本思想:假设方程f(x)=0在区间[a,b]上有唯一根x *,过曲线y=f(x)上的一点(x 0,f(x 0)),作曲线的切线,用此切线与x 轴的交点的横坐标x 1作为方程的根x *的新的近似值,再过点(x 1,f(x 1)),作曲线的切线,则又得到新的近似值,按此方法进行迭代计算,直到满足精度要求为止。
切线法(牛顿法)的迭代公式为,...)1,0()()(1='-=+n x f x f x x n n n n2.切线法的收敛性我们利用定理(7.1)来判断切线法的收敛性。
定理(7.1)还给出了一个初始值x 0的选择方法,定理7.1.设f (x )在[a ,b ]上存在二阶连续导数,且满足条件 ⑴f(a )f (b)<0;⑵f /(x )在[a ,b ]上不等于零 (3)f //(x )在[a ,b ]上不变号则对任意初值x 0∈[a ,b ],只要满足f (x 0)f //(x )≥0.则由切线法迭代公式得到的近似根序列{}n x 平方收敛于方程f (x )=0在区间[a ,b ]的唯一根x *。
2.切线法的计算步骤:先判断有根区间[a,b],然后选择初始值x 0(一般地,若f //(x)>0,则选择区间的右端点;若f //(x)<0,则选择区间的左端点),再建立迭代公式进行计算(列表计算)。
例2用切线法求例1中方程在[1,2]内根的近似值,精确到0.000001【思路】根据f(x 0)f //(x)>0在有根区间上选择初始值x 0,代入迭代公式进行计算解5332)()(2012)2(,01)2(6)(53)(35)(23111023--='-==∴>=''>==''-='+-=---n n n n n n x x x f x f x x x f f x x f x x f x x x f 代入迭代公式取初始值Θ 计算得834243185.1000001.0000000319.034≈*∴<=-x x x例3证明计算3a 的切线法迭代公式为)2(3121nn n x ax x +=+(n=0,1,…)解因为计算3a 等同于求方程03=-a x 的根,将233)(,)(x x f a x x f ='-=,代入切线法迭代公式得:Λ,1,0,)(3132231=+=--=+n x a x x a x x x nn n n n n 三、弦位法1.弦位法的基本思想:假设方程f(x)=0在区间[a,b]上有唯一根x *,在区间[a,b]内的曲线y=f(x)上任取两点作弦,用此弦与x 轴的交点横坐标作为方程根的近似值。
按此方法进行迭代计算,直到满足精度要求为止。
弦位法分为单点弦法和双点弦法。
2.单点弦法建立弦的迭代公式时,固定其中一个点,而另一个点变动的迭代求根方法。
单点弦法的迭代公式,...)1,0()()()(1=---=+n x f x f c f x c x x n n nn n(1)单点弦法的收敛性利用定理7.2判断其收敛性。
单点弦法收敛所满足条件和切线法的收敛条件相同,不同的是单点弦法迭代公式所产生的序列是线性收敛于f(x)=0在区间[a,b]上有唯一根x *。
我们计算时应注意,在选择固定点c 时,也要求满足条件0)()f(x 0.(x )f f(c)0≤''>''x f 。
(2)单点弦法的计算步骤同切线法类似。
3.双点弦法建立弦的迭代公式时,两个点都变动的迭代求根方法。
双点弦法的迭代公式为:,...)1,0()()()(111=---=--+n x f x f x f x x x x n n n n n n n(1)双点弦法收敛性利用定理(7.3)判断。
f(x)在[a,b]上满足的条件为:⑴f(a)f(b)<0;⑵f /(x)≠0⑶KR ≤ρ<1,其中K=M 2/2m 1,M 2=max │f //(x)│,m 1=min │f /(x)│, R=max {│x 0-x *│,│x 1-x *│}.则以a,b 为初始值,由双点弦法迭代公式得到的序列超线性收敛于方程f(x)=0在区间[a,b]的唯一根x *。
(2)双点弦法的计算步骤同切线法类似。
但在计算时应注意收敛性的判断和初始值的选择。
例4试导出计算)0(>a a 的单点弦法迭代公式,并用它计算3,准确到610-。
解因为计算)0(>a a 等同于求方程02=-a x的正根,令x x f a x x f 2)(,)(2='-=,代入单点弦法迭代公式,得:Λ,1,0,)()()()(2221=++=----=---=+n x c acx a x x c x c x x f x f c f x c x x nn n nn n n n nn n例5分别用单点弦法和双点弦法求方程0133=--x x 在[1,2]内根的近似值,精确到10-3【思路】参见单点弦法和双点弦法的计算步骤 解方法一.单点弦法()得方程根的近似值代入迭代式取初始值内且在区间内有根在区间)()()(,106)(,033)(]2,1[]2,1[01)2(,03)1(13)(1023n n nn n x f x f c f x c x x x x x f x x f x f f f x x x f ---==〉=''〉-='∴>=<-=--=+Θ()()()()()()007432423.0,878406099.1087483863.0)087483863.0(1867768595.12867768595.1087483863.0,867768595.1890625.0)890625.0(175.1275.1890625.0,75.13)3(1121332211-==-----=-==-----=-==-----=x f x x f x x f x ()()879378365.1,10000075196.0,000052236.0)(879378365.1000623407.0)000623407.0(1879303169.12879303169.1000623407.0)(879303169.1007432423.0)001130637.0(1878406099.12878406099.13455544≈≤=--==-----=-==-----=*-x x x x f x x f x 方程的近似根为Θ方法二.双点弦法()得方程根的近似值代入迭代式,取且有根内方程在区间)()()(0)()2(00)()9.1(01)2(0159.0)9.1(2,9.106)(,033)(.0]2,1[01)2(,03)1(13)(1111023n n n n n n n x f x f x f x x x x x f f x f f f f x x x x f x x f x f f f x x x f --+---=>''⋅>''⋅>=>===>=''>-='=>=<-=--=Θ()()()().879429134.11000009913.0,879429134.1001086562.0012996164.0001086562.0881093936.1879528266.1879528266.1001086562.0,879528266.1012996164.01012996164.02881093936.1881093936.1012996164.0,881093936.11)159.0(19.122433443322=≈∴≤=-=---===---===⨯---=*-x x x x x x f x x f x 方程根的近似值为四、一般迭代法一般迭代法的基本思想:若方程f(x)=0在区间[a,b]上有唯一根x *,将方程变形为同解方程x=φ(x ),且φ(x )连续,则建立迭代公式x n+1=φ(x n )(n=0,1,…,)。