数值计算第1章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P ( x ) (((( a n x a n 1) x a n 2 ) x L a 2 ) x a 1) x a 0
只要做n次乘法和n次加法即可。
6
数值稳定性问题
对于小型问题,计算的速度和占用计算机内存的多寡似乎意义 不大。 对于复杂的大型问题而言,却是起着决定性作用。算法取得不恰 当,不仅影响到计算的速度和效率,还会由于计算机计算的近似 性和误差的传播、积累直接影响到计算结果的精度甚至直接影响 到计算的成败。 不合适的算法会导致计算误差达到不能容许的地步,而使计算最 终失败,这就是算法的数值稳定性问题。
绝对误差还不能完全评价近似值的精确度。如测量10米 的长度时产生1厘米的误差与测量1米的长度时产生1厘 米的绝对误差相同,但前一种测量比后一种要精确得多。
25
3.2 相对误差和相对误差限
误差衡量还须考虑该量本身的大小,这就需要相对误差 的概念。 定义绝对误差与真值之比,即
2.1 模型误差
在建模(建立数学模型)过程中,欲将复杂的物理现象抽象、 归纳为数学模型,往往只得忽略一些次要因素的影响,而对问题作 某些必要的简化。这样建立起来的数学模型实际上必定只是所研究 的复杂客观现象的一种近似的描述,它与真正客观存在的实际问题 之间有一定的差别,这种误差称为“模型误差”。
15
3 ) Karmarker 方法是求解线性规划的另一个多项式算法,从理论 上说,Karmarker算法的阶比椭球法有所降低,从实际效果来说也好 得多,因而引起了学术界的广泛注意。
14
§2
误差的种类及其来源
数值计算中,除了可以避免的过失误差外,还有不少来源不同 而又无法避免的非过失误差存在于数值计算过程中,主要有如下几 种:
§2 误差的种类及其来源
2.2 观测误差
在建模和具体运算过程中所用到的一些初始数据往往都是通过 人们实际观察、测量得来的,由于受到所用观测仪器、设备精度 的 限制,这些测得的数据都只能是近似的,即存在着误差,这种误差 称为“观测误差”或“初值误差”。
2.3 截断误差
在不少数值运算中常遇到超越计算,如微分、积分和无穷级数 求和等,它们须用极限或无穷过程来求得。然而计算机却只能完成 有限次算术运算和逻辑运算,因此需将解题过程化为一系列有限
时,称为亏近似值或弱近似值,
22
反之则称为盈近似值或强近似值。
3.1 绝对误差和绝对误差限
由于真值往往未知或无法知道,因此, ( x ) 的准确值(真值)也
无法求出。但一般可估计此绝对误差的上限,也即可以求出一个正
值 ,使
( x) x x *
(3.2)
此 称为近似值
的“绝对误差限”,简称“误差限”,或称
p ( x ) a n x a n 1 x
n
n 1
a1 a 0
5
的值时,若直接计算
,共需做
ax
i
i
( i 0 ,1,..., n )
,再逐项相加
n ( n 1) 1 2 ... ( n 1) n 2
次乘法和n 次加法。n=10时需做55次乘法和10次加法。若用 著名秦九韶(我国宋朝数学家)算法,将多项式P(x)改成
数方程……等等,然后选择合适的计算方法 ( 算法),编制出
计算机程序,最后上机调试并进行计算,以得到所欲求解的结果 。
4
所谓数值计算方法,是指将所欲求解的数学模型(数学问 题)简化成一系列算术运算和逻辑运算,以便在计算机上求出 问题的数值解,并对算法的收敛性和误差进行分析、计算。这 里所说的“算法”,不只是单纯得数学公式,而且是指由基本 的运算和运算顺序的规定所组成的整个解题方案和步骤。一般 可以通过框图(流程图)来较直观地描述算法的全貌。 选定适合的算法是整个数值计算中非常重要的一环。例如 ,当计算多项式
1 2 1
1 x 99 70
2
9
如果分别用近似值 按上列四种算法计算
序 号 算 式
x 值,其结果如下表1-1所示。
计 算
2 7 5 1 . 4 和 2 17 12 1 . 4166
结 果
2 7/5
2 17 /12
5 12
6
1 2 3 4 1
制住经多次运算后误差的积累,以确保计算结果的精度。
8
误差问题:
下面是一个简单的例算,可以看出近似值 带来的误差和算法的选择对计算结果的精 度所产生的巨大影响。例如,要计算 可用四种算式算出:
2 1 x 2 1
3
x
2 1
6
x 99 70
2
6 x 7源自误差问题:数值计算过程中会出现各种误差,它们可分为两大类:一类是由于 算题者在工作中的粗心大意而产生的,例如笔误以及误用公式等, 这类误差称为“过失误差”或“疏忽误差”。它完全是人为造成的 ,只要工作中仔细、谨慎,是完全可以避免的; 而另一类为“非过失误差”,在数值计算中这往往是无法避免的, 例如近似值带来的误差,模型误差、观测误差、截断误差和舍入误 差等。对于“非过失误差” ,应该设法尽量降低其数值,尤其要控
“精度”。有时也用
x x *
这时等式右端的两个数值
(3.3)
x * 代表了 x 所在 范围的上、下限。 越小, 表示该近似值 x *的精度越高。
x *
和
23
3.1 绝对误差和绝对误差限
例如,用有毫米刻度的尺测量不超过一米的长度 。读数方法如下: 如长度 接近于毫米刻度 l ,就读出该刻度数 l 作为长度 的近似 值。显然,这个近似值的绝对误差限就是半个毫米,则有
第一章
§1 §2 §3 §4 §5 §6
数值计算中的误差
引 言 误差的种类及其来源 绝对误差和相对误差 有效数字及其与误差的关系 误差的传播与估计 算法的数值稳定性
1
§1 引 言
数值分析是研究各种数学问题求解的计算方法,即数值计算。 利用计算尺、电子计算机等计算工具来求出数学问题得到数 值解的全过程,称为数值计算。
16
§2 误差的种类及其来源
的算术运算和逻辑运算。这样就要对某种无穷过程进行“截断”, 即仅保留无穷过程的前段有限序列而舍弃它的后段。这就带来了误 差,称它为“截断误差”或“方法误差”。例如,函数sinx 和 ln (1+x)可分别展开为如下的无穷幂级数:
sin x x
x
3
3!
x
5
5!
因此,在讨论算法时,有必要对其截断误差的估算 和舍入误差的控制作适当的分析。
21
§3
绝对误差和相对误差
3.1 绝对误差和绝对误差限
定义
x与 x
*
设某一个准确值(称为真值)为 x ,其近似值为 的差
*
x*,则
( x) x x
称为近似值 当
(x) 0
(3.1)
x 的“绝对误差”,简称“误差”。
3
问题急待解决。它们的复杂程度已达到非手工计算所能解决的地 步。数字式电子计算机的出现和飞速发展大大推动了数值计算方 法的进展,许多复杂的数值计算问题现在都可以通过电子计算机 进行数值计算得到妥善解决。 用数值计算的方法来解决工程实际和科学技术中的具体技术问题 时,首先必须具体问题抽象为数学问题,即建立起能描述并等价 代替该实际问题的数学模型,例如各种微分方程、积分方程、代
12
算法的计算复杂性
具有什么样的计算复杂性的算法被认为是好的呢?目前计算机科 学中广为接受的观点是:
多项式时间算法,即f(l)是关于l的一个多项式,或者以一
个多项式为上界的。例如, l 2 l , l 3 , l log l 等是好的算法;
指数时间算法,即f(l)是关于l的指数式,或以一个指数式为 l 下界的,例如 3 , l!等情况,则是坏的。这个看法的依据是很
由于受计算机机器字长限制,它所能表示的数据只能有有限位数, 这时就需把数据按四舍五入舍入成一定位数的近似的有理数来代替。 由此引起的误差称为“舍入误差”或“圆整误差”。
20
§2 误差的种类及其来源
终上所述,数值计算中除了可以 完全避免的过失误差外,还存在难 以避免的模型误差、观测误差、截断误差和舍入误差。 数学模型一旦建立,进入具体计算时所要考虑和分析的就是截断 误差 和舍入误差了。在计算机上经过千百次运算后所积累起来的总 误差不容忽视,有时可能会大得惊人,甚至到达“淹没”所欲求解 的真值的地步,而使计算结果失去根本的意义。
明白的,因为当l增大时,指数函数比多项式函数增长快。
13
算法的计算复杂性
注意: 在理论上证明是好的算法不一定在实际中有效,在理论上证 明不是多项式时间的算法也不一定就在实际上中效果不好。 如关于线性规划问题的算法有如下的特殊性: 1)单纯形法是时间复杂性为指数阶的,但却是非常有效的算法;
2 )椭球法从理论上是一个重大突破,是第一个多项式算法,遗憾 的是广泛的实际检验表明其计算效果比单纯形方法差,因而,它在 实际使用中不能取代单纯形法。
x
2
2
x
3
3
(2.4)
由于它们的第四项和以后各项都舍弃了,自然产生了误差。这 就是由于截断了无穷级数自第四项起的后段的产生的截断误差。
18
§2 误差的种类及其来源
(2.3)和(2.4)的截断误差是很容易估算的,因为幂级数(2.1)和(2.2)
都是交错级数,当x<1时的各项的绝对值又都是递减的,因此, 这时它们的截断误差 R 4 x 可分别估计为:
x
7
7!
...
(2.1)
ln( 1 x ) x
2 3 ( 1 x 1)
x
2
x
3
x
4
4
...
(2.2)
17
§2 误差的种类及其来源
若取级数的起始若干项的部分和作为函数值的近似,例如取
sin x x
x
3
3!
x
5
5!
(2.3)
ln( 1 x ) x
在电子计算机成为数值计算的主要工具的今天,需要研究适 合计算机使用的数值计算方法。使用计算机解决科学计算问 题时大致经历如下几个过程:
2
实际问题
数学模型
数值计算方法 程序设计
上机计算求出结果
随着科学技术的突飞猛进,无论是工农业生产还是国防尖
端技术,例如机电产品设计、建筑工程项目的设计、气象预报 和新型尖端武器研制、火箭发射等,都有大量复杂数值计算
x ( x ) R4 7!
和
7
R4 x
x 4
4
19
§2 误差的种类及其来源
2.4 舍入误差
在数值计算过程中还会用到一些无穷小数,例如无理数和有理 数中某些分数化出的无限循环小数,如
3.14159265 L
2 1.41421356 L 1 1 0.166666 L 3! 6
* *
1 (l ) l l (毫 米 ) 2
*
如果读出的长度是513 毫米,则有
l 513 0 .5 m m
24
3.1 绝对误差和绝对误差限
这样,虽仍不知准确长度 得到不等式 是多少,但由(3.3)式可
512.5 ≤ l ≤ 513.5
(毫米)
这说明 必在[512.5,513.5]毫米区间内。
11
算法的计算复杂性
衡量一个算法的好坏时,计算时间的多少是非常重要的一个标志。 由于实际的执行时间依赖于计算机的性能,因此所谓算法所花时间 是用它执行的所有基本运算,如算术运算、比较运算等的总次数来 衡量的。这样时间与运算的次数直接联系起来了。当然,即使用一 个算法计算同一类型的问题时,由于各问题的数据不同,计算快慢 也会不同,一般是用最坏情况下所花的时间来作讨论。 设输入数据的规模(size)是l(在网络问题中,l一般与节点数及弧数 有关,而对一般极值问题,l往往与变量数及约束数有关),设在最 坏情况下运算次数是f(l),则f(l)称为算法的计算复杂性。
5 12
6
0 .005233
1 0 . 166667 6
6
0 .005233
12 29
0 .005020
1 0 . 005076 197
12 0 . 005046 2378
10
误差问题:
由表1-1可见,按不同算式和近似值计算出的结果各不 相同,有的甚至出现了负值,这真是差之毫厘,谬以 千里。 可见近似值和算法的选定对计算结果的精确度影响很 大。 因此,在研究算法的同时,还必须正确掌握误差的基 本概念,误差在近似值运算中的传播规律,误差分析、 估计的基本方法和算法的数值稳定性概念,否则,一个 合理的算法也可能会得出一个错误的结果。
只要做n次乘法和n次加法即可。
6
数值稳定性问题
对于小型问题,计算的速度和占用计算机内存的多寡似乎意义 不大。 对于复杂的大型问题而言,却是起着决定性作用。算法取得不恰 当,不仅影响到计算的速度和效率,还会由于计算机计算的近似 性和误差的传播、积累直接影响到计算结果的精度甚至直接影响 到计算的成败。 不合适的算法会导致计算误差达到不能容许的地步,而使计算最 终失败,这就是算法的数值稳定性问题。
绝对误差还不能完全评价近似值的精确度。如测量10米 的长度时产生1厘米的误差与测量1米的长度时产生1厘 米的绝对误差相同,但前一种测量比后一种要精确得多。
25
3.2 相对误差和相对误差限
误差衡量还须考虑该量本身的大小,这就需要相对误差 的概念。 定义绝对误差与真值之比,即
2.1 模型误差
在建模(建立数学模型)过程中,欲将复杂的物理现象抽象、 归纳为数学模型,往往只得忽略一些次要因素的影响,而对问题作 某些必要的简化。这样建立起来的数学模型实际上必定只是所研究 的复杂客观现象的一种近似的描述,它与真正客观存在的实际问题 之间有一定的差别,这种误差称为“模型误差”。
15
3 ) Karmarker 方法是求解线性规划的另一个多项式算法,从理论 上说,Karmarker算法的阶比椭球法有所降低,从实际效果来说也好 得多,因而引起了学术界的广泛注意。
14
§2
误差的种类及其来源
数值计算中,除了可以避免的过失误差外,还有不少来源不同 而又无法避免的非过失误差存在于数值计算过程中,主要有如下几 种:
§2 误差的种类及其来源
2.2 观测误差
在建模和具体运算过程中所用到的一些初始数据往往都是通过 人们实际观察、测量得来的,由于受到所用观测仪器、设备精度 的 限制,这些测得的数据都只能是近似的,即存在着误差,这种误差 称为“观测误差”或“初值误差”。
2.3 截断误差
在不少数值运算中常遇到超越计算,如微分、积分和无穷级数 求和等,它们须用极限或无穷过程来求得。然而计算机却只能完成 有限次算术运算和逻辑运算,因此需将解题过程化为一系列有限
时,称为亏近似值或弱近似值,
22
反之则称为盈近似值或强近似值。
3.1 绝对误差和绝对误差限
由于真值往往未知或无法知道,因此, ( x ) 的准确值(真值)也
无法求出。但一般可估计此绝对误差的上限,也即可以求出一个正
值 ,使
( x) x x *
(3.2)
此 称为近似值
的“绝对误差限”,简称“误差限”,或称
p ( x ) a n x a n 1 x
n
n 1
a1 a 0
5
的值时,若直接计算
,共需做
ax
i
i
( i 0 ,1,..., n )
,再逐项相加
n ( n 1) 1 2 ... ( n 1) n 2
次乘法和n 次加法。n=10时需做55次乘法和10次加法。若用 著名秦九韶(我国宋朝数学家)算法,将多项式P(x)改成
数方程……等等,然后选择合适的计算方法 ( 算法),编制出
计算机程序,最后上机调试并进行计算,以得到所欲求解的结果 。
4
所谓数值计算方法,是指将所欲求解的数学模型(数学问 题)简化成一系列算术运算和逻辑运算,以便在计算机上求出 问题的数值解,并对算法的收敛性和误差进行分析、计算。这 里所说的“算法”,不只是单纯得数学公式,而且是指由基本 的运算和运算顺序的规定所组成的整个解题方案和步骤。一般 可以通过框图(流程图)来较直观地描述算法的全貌。 选定适合的算法是整个数值计算中非常重要的一环。例如 ,当计算多项式
1 2 1
1 x 99 70
2
9
如果分别用近似值 按上列四种算法计算
序 号 算 式
x 值,其结果如下表1-1所示。
计 算
2 7 5 1 . 4 和 2 17 12 1 . 4166
结 果
2 7/5
2 17 /12
5 12
6
1 2 3 4 1
制住经多次运算后误差的积累,以确保计算结果的精度。
8
误差问题:
下面是一个简单的例算,可以看出近似值 带来的误差和算法的选择对计算结果的精 度所产生的巨大影响。例如,要计算 可用四种算式算出:
2 1 x 2 1
3
x
2 1
6
x 99 70
2
6 x 7源自误差问题:数值计算过程中会出现各种误差,它们可分为两大类:一类是由于 算题者在工作中的粗心大意而产生的,例如笔误以及误用公式等, 这类误差称为“过失误差”或“疏忽误差”。它完全是人为造成的 ,只要工作中仔细、谨慎,是完全可以避免的; 而另一类为“非过失误差”,在数值计算中这往往是无法避免的, 例如近似值带来的误差,模型误差、观测误差、截断误差和舍入误 差等。对于“非过失误差” ,应该设法尽量降低其数值,尤其要控
“精度”。有时也用
x x *
这时等式右端的两个数值
(3.3)
x * 代表了 x 所在 范围的上、下限。 越小, 表示该近似值 x *的精度越高。
x *
和
23
3.1 绝对误差和绝对误差限
例如,用有毫米刻度的尺测量不超过一米的长度 。读数方法如下: 如长度 接近于毫米刻度 l ,就读出该刻度数 l 作为长度 的近似 值。显然,这个近似值的绝对误差限就是半个毫米,则有
第一章
§1 §2 §3 §4 §5 §6
数值计算中的误差
引 言 误差的种类及其来源 绝对误差和相对误差 有效数字及其与误差的关系 误差的传播与估计 算法的数值稳定性
1
§1 引 言
数值分析是研究各种数学问题求解的计算方法,即数值计算。 利用计算尺、电子计算机等计算工具来求出数学问题得到数 值解的全过程,称为数值计算。
16
§2 误差的种类及其来源
的算术运算和逻辑运算。这样就要对某种无穷过程进行“截断”, 即仅保留无穷过程的前段有限序列而舍弃它的后段。这就带来了误 差,称它为“截断误差”或“方法误差”。例如,函数sinx 和 ln (1+x)可分别展开为如下的无穷幂级数:
sin x x
x
3
3!
x
5
5!
因此,在讨论算法时,有必要对其截断误差的估算 和舍入误差的控制作适当的分析。
21
§3
绝对误差和相对误差
3.1 绝对误差和绝对误差限
定义
x与 x
*
设某一个准确值(称为真值)为 x ,其近似值为 的差
*
x*,则
( x) x x
称为近似值 当
(x) 0
(3.1)
x 的“绝对误差”,简称“误差”。
3
问题急待解决。它们的复杂程度已达到非手工计算所能解决的地 步。数字式电子计算机的出现和飞速发展大大推动了数值计算方 法的进展,许多复杂的数值计算问题现在都可以通过电子计算机 进行数值计算得到妥善解决。 用数值计算的方法来解决工程实际和科学技术中的具体技术问题 时,首先必须具体问题抽象为数学问题,即建立起能描述并等价 代替该实际问题的数学模型,例如各种微分方程、积分方程、代
12
算法的计算复杂性
具有什么样的计算复杂性的算法被认为是好的呢?目前计算机科 学中广为接受的观点是:
多项式时间算法,即f(l)是关于l的一个多项式,或者以一
个多项式为上界的。例如, l 2 l , l 3 , l log l 等是好的算法;
指数时间算法,即f(l)是关于l的指数式,或以一个指数式为 l 下界的,例如 3 , l!等情况,则是坏的。这个看法的依据是很
由于受计算机机器字长限制,它所能表示的数据只能有有限位数, 这时就需把数据按四舍五入舍入成一定位数的近似的有理数来代替。 由此引起的误差称为“舍入误差”或“圆整误差”。
20
§2 误差的种类及其来源
终上所述,数值计算中除了可以 完全避免的过失误差外,还存在难 以避免的模型误差、观测误差、截断误差和舍入误差。 数学模型一旦建立,进入具体计算时所要考虑和分析的就是截断 误差 和舍入误差了。在计算机上经过千百次运算后所积累起来的总 误差不容忽视,有时可能会大得惊人,甚至到达“淹没”所欲求解 的真值的地步,而使计算结果失去根本的意义。
明白的,因为当l增大时,指数函数比多项式函数增长快。
13
算法的计算复杂性
注意: 在理论上证明是好的算法不一定在实际中有效,在理论上证 明不是多项式时间的算法也不一定就在实际上中效果不好。 如关于线性规划问题的算法有如下的特殊性: 1)单纯形法是时间复杂性为指数阶的,但却是非常有效的算法;
2 )椭球法从理论上是一个重大突破,是第一个多项式算法,遗憾 的是广泛的实际检验表明其计算效果比单纯形方法差,因而,它在 实际使用中不能取代单纯形法。
x
2
2
x
3
3
(2.4)
由于它们的第四项和以后各项都舍弃了,自然产生了误差。这 就是由于截断了无穷级数自第四项起的后段的产生的截断误差。
18
§2 误差的种类及其来源
(2.3)和(2.4)的截断误差是很容易估算的,因为幂级数(2.1)和(2.2)
都是交错级数,当x<1时的各项的绝对值又都是递减的,因此, 这时它们的截断误差 R 4 x 可分别估计为:
x
7
7!
...
(2.1)
ln( 1 x ) x
2 3 ( 1 x 1)
x
2
x
3
x
4
4
...
(2.2)
17
§2 误差的种类及其来源
若取级数的起始若干项的部分和作为函数值的近似,例如取
sin x x
x
3
3!
x
5
5!
(2.3)
ln( 1 x ) x
在电子计算机成为数值计算的主要工具的今天,需要研究适 合计算机使用的数值计算方法。使用计算机解决科学计算问 题时大致经历如下几个过程:
2
实际问题
数学模型
数值计算方法 程序设计
上机计算求出结果
随着科学技术的突飞猛进,无论是工农业生产还是国防尖
端技术,例如机电产品设计、建筑工程项目的设计、气象预报 和新型尖端武器研制、火箭发射等,都有大量复杂数值计算
x ( x ) R4 7!
和
7
R4 x
x 4
4
19
§2 误差的种类及其来源
2.4 舍入误差
在数值计算过程中还会用到一些无穷小数,例如无理数和有理 数中某些分数化出的无限循环小数,如
3.14159265 L
2 1.41421356 L 1 1 0.166666 L 3! 6
* *
1 (l ) l l (毫 米 ) 2
*
如果读出的长度是513 毫米,则有
l 513 0 .5 m m
24
3.1 绝对误差和绝对误差限
这样,虽仍不知准确长度 得到不等式 是多少,但由(3.3)式可
512.5 ≤ l ≤ 513.5
(毫米)
这说明 必在[512.5,513.5]毫米区间内。
11
算法的计算复杂性
衡量一个算法的好坏时,计算时间的多少是非常重要的一个标志。 由于实际的执行时间依赖于计算机的性能,因此所谓算法所花时间 是用它执行的所有基本运算,如算术运算、比较运算等的总次数来 衡量的。这样时间与运算的次数直接联系起来了。当然,即使用一 个算法计算同一类型的问题时,由于各问题的数据不同,计算快慢 也会不同,一般是用最坏情况下所花的时间来作讨论。 设输入数据的规模(size)是l(在网络问题中,l一般与节点数及弧数 有关,而对一般极值问题,l往往与变量数及约束数有关),设在最 坏情况下运算次数是f(l),则f(l)称为算法的计算复杂性。
5 12
6
0 .005233
1 0 . 166667 6
6
0 .005233
12 29
0 .005020
1 0 . 005076 197
12 0 . 005046 2378
10
误差问题:
由表1-1可见,按不同算式和近似值计算出的结果各不 相同,有的甚至出现了负值,这真是差之毫厘,谬以 千里。 可见近似值和算法的选定对计算结果的精确度影响很 大。 因此,在研究算法的同时,还必须正确掌握误差的基 本概念,误差在近似值运算中的传播规律,误差分析、 估计的基本方法和算法的数值稳定性概念,否则,一个 合理的算法也可能会得出一个错误的结果。