当前位置:文档之家› 数值分析方法第三章

数值分析方法第三章


7
执行步骤
1.计算f (x)在有解区间[a, b]端点处的值,f (a),f (b)。
2.计算f (x)在区间中点处的值f (x0)。 3.判断若f (x0) = 0,则x0即是根,否则检验:
(1)若f (x0)与f (a)异号,则知解位于区间[a, x0], b1=x0, a1=a;
(2)若f (x0)与f (a)同号,则知解位于区间[x0, b], a1=x0, b1=b。
分析
1. “实根”两侧f(x)反号
a
2. “实根”同侧f(x)同号
3. 若: f(x1)f(x2)反号,则 “实根”在x1和x2之间
y = f(x) bx
方法
逐步缩小“有根区间”
原理:若 f C[a, b],且 f (a) · f (b) < 0,则 f 在 (a, b) 上必有一根。
2020/10/1
对于一般形式的方程 f ( x) 0先将方程化为
x g(x)
思 路
再从某一数 x0 出发,作序列
xk1 g( xk ) , k 0,1, 2,
若序列
xk
有极限,即lim k
xk
a
则可得a g(a) 即 f (a) 0 亦即a是方程的根。
第二章 非线性方程求根
/* Solutions of Nonlinear Equations */
求 f (x) = 0 的根
2020/10/1
1
求根问题包括下面三个问题:
• 根的存在性:即f(x)=0有没有根?若有,

几个根?
• 哪儿有根?确定有根区间
• 根的精确化:已知一个根的近似值后,能 否
numerical method
analytical method
2020/10/1
5
求实根近似值的常用方法
1、二分法 2、迭代法 3、牛顿法 4、弦截法
2020/10/1
6
§ 二分法 /* Bisection Method */
问题
y
求连续函数 y = f(x) 在区间[a,b]上
的唯一实根 y = 0
反复执行步骤2、3,便可得到一系列有根区间: (a, b), (a1, b1), …, (ak, bk), …
2020/10/1
求方程 -
x2-2x-1=0 +
2
-
+
2
2.5
-+
2 2.25 2.5
-+
2
2.375 2.5
-+
2
2.375 2.4375
的一个正的近似解 (精确到0.1)
3 f(2)<0,f(3)>0 2<x1<3 f(2)<0,f(2.5)>0 2<x1<2.5
有 (2n + 1) 个根时
例:已知 f(x)在[0,)上连续,且 f(0)>0, f()<0。 欲求x尽可能小的根。
求解过程
尝试: f(1) > 0 尝试: f(5) > 0 尝试: f(10) < 0
二分法: f(8) = 0
杜绝教条主义
y
但是,实际曲线 0
5
10 x
迭代法
•迭代法是数值计算中一种典型的重要方法,尤其是计算机的普遍使用, 使迭代法的应用更为广泛。
将它精确到足够精度?
问题的提出
方程:y = f (x) 方程的根:x = ? y = 0
y = 3x - 2 (x = 2/3) y = x2 - 2x + 1 (x = 1) y = 6.7410-3 - exp(-5000/x) 非线性问题 (x 1000)
y y = f (x)
x=?
0
x
x
在计算中步长h要适当取小一些,若h过长则容易丢根(若在区间范围内有两 相邻函数值符号相同而判定无根)
若间隔h值太小,则影响计算速度。
应用二分法求解
f(x) 在[a,b]上连续
f(a)f(b)<0
“数学”上是正确的, 但作为一种“数学方法”, 应用于实际的“科学问题”时, 不是“放之四海而兼准”的。
ba 2k 1
ε
k ln b a ln ε 1
ln 2
2020/10/1
11
①简单; ② 对f (x) 要求不高(只要连续即可) .
①无法求复根及偶重根 ② 收敛慢
2020/10/1
12
例:求下列方程位于区间[1,1.5]内的一个根
f (x) x3 x 1 0
k
ak
bk
xk
f (xk)的符号
1
1
1.5
1.25
-
2
1.25
1.5
1.375
+
3
1.25
1.375
1.3125
-
4
1.3125
1.375
1.3438
+
5
1.3125
1.3438
1.3281
+
6
1.3125
1.3281
1.3203
-
7
1.3203
1.3281
1.3242

2020/10/1
13
多根的求法
运用零点定理可以得到如下逐步搜索法:
•所谓迭代法就是用某种收敛于所给问题的精确解的极限过程来逐步逼近 的一种计算方法,从而可以用有限个步骤算出精确解的具有指定精度的 近似解。简单说迭代法是一种逐步逼近的方法。
循环迭代,用上一轮结果计算下一轮数据。
2020/10/1
18
§ 迭代法 /* Fixed-Point Iteration */
xk1 xk ε1 或 f ( x) ε2
不能保证 x 的精度
2
x*
x
2020/10/1
10
误差 分析:
x0
a
2
b
有误差
ba | x0 x* | 2
第1步产生的
x1
有误差
|
x1
x*
|
b
4
a
第 k 步产生的 xk 有误差
|
xk
x*
|
ba 2k 1
对于给定的精度 ,可估计二分法所需的步数 k :
3
3 f(2.25)<0,f(2.5)>0 2.25<x1<2.5 f(2.375)<0,f(2.5)>0 2.375<x1<2.5
3
f(2.375)<0,f(2.4375)>0 2.375<x1<2.4375
3
每个有根区间的长度都是前一个有根区间长度的一半
When to stop? a
xa1 x* xb2 b
先确定方程f(x)=0的所有实根所在的区间为[a,b],从x0=a 出发, 以步长
h=(b-a)/n 其中n是正整数,在[a,b]内取定节点:
xi=x0+ih (i=0,1,2,……,n) 计算f(xi)的值,依据函数值异号及实根的个数确定隔根区间,通过调整步 长,总可找到所有隔根区间。
y
a o
b
2020/10/1
3
科学技术中常遇到高次代数方程或超越方程的求根问题。 大于4次的代数方程无求根公式。 因此需要研究函数方程求根问题的数值方法。
•例如:求解高次方程 7x6-x3+x-1.5=0的根。
求解含有指数和三角函数的超越方程的根。 ex-cos(x)=0
Why 数值计算 ?
根:数值
无解析方法
相关主题