Upload
xaria
View
92
Download
5
Embed Size (px)
DESCRIPTION
数 值 分 析. 李庆扬 王能超 易大义 编. (第 4 版). 清华大学出版社 施普林格出版社. 数值分析课程 学时: 50 + 10 讲课时间: 3 ~ 16 周 上机时间: 16 ~ 18 周 平时成绩:上机 测验 作业 出勤 期末考试:半开卷. 教师:罗蕴玲 电话: 81720522 E-mail: [email protected] 办公室: 1 - 812 答疑时间: 周一下午 2 : 30 - 4 : 30 - PowerPoint PPT Presentation
Citation preview
1
数 值 分 析
李庆扬 王能超 易大义 编
清华大学出版社 施普林格出版社
(第 4 版)
2
• 数值分析课程
• 学时: 50+ 10• 讲课时间: 3~ 16 周• 上机时间: 16~ 18 周• 平时成绩:上机 测验 作业 出勤• 期末考试:半开卷
• 教师:罗蕴玲
• 电话: 81720522• E-mail:
[email protected]• 办公室: 1- 812
答疑时间:
周一下午 2: 30- 4:30
周三下午 3: 30- 5:00
具体考核方案
3
1.1 数值分析研究对象与特点
第 1章 绪 论
4
先看两个例子。 例 1 求方程 x2=2sinx ,在区间 (1,2) 内的
根。 理论上可知显然找不出根的解析式,即无法求出精确解。 例 2 用 Cramer 法则求解 n元线性方程组。 显然理论上可行,且有精确表达式。实际计算时会出现什么问题呢?
5
实际问题
数学模型
上机计算求出结果
数值计算方法
看用数学和计算机解决实际问题的过程:
应用数学研究的任务
数值分析研究的对象
最终提供的是针对各类数学问题的数值算法(即计算公式、计算方案、计算过程)
6
3 、具有好的计算复杂性
数值分析提供的算法具有下面四个特点:
1 、面向计算机
2 、有可靠的理论分析
4、通过数值实验验证有效性
7
本门课程学习的主要内容: 误差分析,插值法与拟合,数值积分,数值微分,解线性方程组的直接方法和迭代方法,非线性方程求根,矩阵特征值问题计算.
8
1. 认识建立算法和对每个算法进行理论分析是基本
任务,主动适应“公式多”的特点;
2. 注重各章建立算法的问题的提法,搞清问题的基
本提法,逐步深入;
3. 理解每个算法建立的数学背景,数学原理和基本
线索,对最基本的算法要非常熟悉;
4. 认真进行数值计算的训练,学习各章算法完全是
为用于实际计算,必须真会算。
9
• 本课程的基本要求– 掌握数值方法的基本原理– 掌握常用的科学与工程计算的基本方法– 能用所学方法在计算机上算出正确结果
10
课程学习结束后你具备的能力
1. 对具体的数值计算问题,你会选择合适的算法,并通过计算机计算出正确结果;
2. 对给定的算法会从理论上分析其优劣性;3. 会根据原理构造解决较简单数值计算问
题的算法。
11
1.2 数值计算的误差
引言——为什么要进行误差分析?
例 1 用具有舍入功能的八位计算器直接计算下式:
5429arctan5430arctan y
结果为1000000.05706121.15706122.1
5429arctan5430arctan
6
个零
y
事实上 33921910000000.0
5429arctan5430arctan
7个零
y
结果不可靠
1.2.1 误差来源与分类
12
例 2 用求根公式在尾数为八位的浮点计算机上,求下面方程的根:
010)110( 992 xx
解a
acbbx
a
acbbx
2
4,
2
4 2
2
2
1
1010
9
109 101.0101000000000.0101.0110 =个零
b
计算机上
1919
8
19
1021092102
101.010400000000.0101.0
101.04)101.0(1014)101.0(4
个零
acb
计算机上910
21 10101.0,0 xx求得
事实上 921 10,1 xx
13
实际问题 确定数值解法
上机求解
用计算机解决实际问题的一般过程
建立数学模型
模型误差、观测误差截断误差 舍入误差
应用数学解决的问题 数值分析解决的问题
在此主要研究这两种误差
14
若能根据测量工具或计算情况估计出误差绝对值的一个上界,即
1.2.2 误差与有效数字
设 为准确值,x 为 的一个近似值,*x x
xxe **
误差 可正可负,当绝对误差为正时近似值偏大,叫强近似值;
*e
通常准确值 是未知的,x 因此误差 也未知 .*e
为近似值的绝对误差,
定义 1 称
简称误差 .
当绝对误差为负时近似值偏小,叫弱近似值 .
*,** xxe
则 叫做近似值的误差限,* 它总是正数 .
一、绝对误差
15
对于一般情形 ,** xx 即 *,*** xxx
也可以表示为 .** xx
注意 : ( 1)绝对误差限不是唯一的,但越小越好; ( 2)绝对误差限的大小并不能完全表示近似值的好坏。
.102
110
2
110
2
133 321 ,,差限精确到的近似值,使其绝对误求例
解 因为
73205.13 ,而1* 10
2
105.003205.07.13)7.1(
2* 102
1005.000205.073.13)73.1(
3* 102
10005.000005.0732.13)732.1(
所以.732.1,73.1,7.1 *
3*2
*1 xxx
16
实际计算中, 由于真值 总是未知的,x
*
*
*
**
x
xx
x
eer
把近似值的误差 与准确值 的比值 *e x
x
xx
x
e
**
称为近似值 的相对误差,*x 记作 .*re
作为 的相对误差,*x 条件是 较小,|*
*||| *
x
eer
通常取
此时利用
,** xxe 知
二、相对误差
定义 2
17
相对误差也可正可负,它的绝对值上界叫做相对误差限,
xx
xxe
x
e
x
e
*
)*(*
*
**
是 的平方项级,*re
记作 ,*r
*)*(*
*)( 2
exx
e
*)/*(1
*)/*( 2
xe
xe
故可忽略不计 .
.*
**
xr
即
18
当准确值 位数比较多时,常常按四舍五入的原则得到 的前几位近似值 ,
x
x *x
14159265.3π x
取 3位 ,14.3*3 x
取 5位 ,1416.3*5 x
它们的误差都不超过末位数字的半个单位,
,102
114.3π 2
例如
,002.0*3
,000008.0*5
即
.102
11416.3π 4
三、有效数字
19
若近似值 的误差限是某一位的半个单位,*x
该位到 的第一位非零数字共有 位,就说 有 位有效数字 .
*x n *x n
表示为
),1010(10* )1(121
nn
m aaax ( 2.1)
其中 是 0到 9中的一个数字, 为整数,),,1( niai ma ,01
.102
1* 1 nmxx ( 2.2)
定义 3
且
例如 3.142 , 3.141,3.1416 分别作为 π的近似值时分别有几位有效数字 ?
20
如果以 m/s2 为单位, 重力常数 g, ,m/s80.9 2g
若以 km/s2 为单位, ,它们具有几位有效数字?绝对误差和相对误差有区别吗?与量纲有关吗?
2km/s00980.0g
,102
180.9 2g
按 (2.1) 的表示方法, ,3,0 nm
,102
100980.0 5g
这里 .3,3 nm
它们虽然写法不同,但都具有 3位有效数字 .
例 4
因为按第一种写法
按第二种写法
),1010(10* )1(121
nn
m aaax ( 2.1)
21
至于绝对误差限,由于单位不同所以结果也不同 ,
,m/s102
1 22*1
但相对误差都是 80.9/005.0* r
注意相对误差与相对误差限是无量纲的,而绝对误差与误差限是有量纲的 .
例 4说明有效位数与小数点后有多少位数无关 .
,km/s102
1 25*2
.00980.0/00005.0
22
从 (2.2) 可得到具有 位有效数字的近似数 ,其绝对误差限为
n *x
,102
1* 1 nm
在 相同的情况下, 越大则 越小,故有效位数越多,绝对误差限越小 .
m n 110 nm
.102
1* 1 nmxx ( 2.2)
23
关于有效数字说明
① 用四舍五入取准确值的前 n位 x*作为近似值 ,则 x*必有n位 有效数字。如 3.142 作为 的近似值有 4位有效数字,而 3.141 为 3位有效数字;② 有效数字相同的两个近似数,绝对误差不一定相同。例 如,设 x1
*=12345,设 x2*=12.345, 两者均有 5位有效数字
但 绝对误差不一样 x - x1
* = x - 12345 ≤ 0.5= 1/2 100 x - x2
* = x - 12.345≤0.0005=1/210-3
③ 把任何数乘以 10 p(p=0,1,…) 不影响有效位数;④ 准确值具有无穷多位有效数字 ,如 1/2=0.5 因 0.5 是真值 , 没有误差 ,*=0,因此 n,准确值具有无穷位有效数字。
24
若 的相对误差限 ,*x )1(
1
* 10)1(2
1
nr a
设近似数 表示为 *x
)1.2(),1010(10* )1(121 l
lm aaax
其中 是 0到 9中的一个数字,),,1( liai
;102
1 )1(
1
* nr a
反之,
则 至少具有 位有效数字 . *x n
若 具有 位有效数字,n*x
定理 1
ma ,01 为整数 .
则其相对误差限为
四、有效数字与相对误差限的关系
25
要使 的近似值的相对误差限小于 0.1%,需取 20
由于 ,4.420 知 ,41 a 故只要取 ,4n
3* 10125.0 r
即只要对 的近似值取 4位有效数字,其相对误差限就小于 0.1%.
20
此时由开方表得 .472.420
设取 位有效数字,n
.102
1 )1(
1
* nr a
例 5
几位有效数字 ?
由定理 1
就有
%,1.010 3
26
设 是一元函数, 的近似值为 ,以 近似 ,其误差界记作 ,
)(xf x *x *)(xf
)(xf *))(( xf
一般情况下,当自变量有误差时函数值也产生误差,
*)(|)(
*)(*)*)((*)()(
* xxoxdf
xxoxxxfxfxf
xx
其误差限可利用函数的微分进行估计 .
利用微分
*).(*)(*))(( xexfxfe
由此可得:*).(*)(*))(( xxfxf
*).(*)(
*)(**)(
*)(
*)(*))(( xe
xf
xfxxe
xf
xfxfe rr
*).(*)(
*)(**)(
*)(
*)(*))(( x
xf
xfxx
xf
xfxf rr
1.2.3 数值运算的误差估计
27
当 为多元函数,如计算 时 , f ),( 1 nxxfA
的近似值为 ,nxx ,,1 **
1 ,, nxx 则 的近似值为A
),,(* **1 nxxfA
于是由全微分, 函数值 的误差 为*A *)(Ae
如果
AAAe **)(
于是误差限
n
kkk
k
n xxx
xxf
1
***
1 )(),,(
,1
**
n
kk
ke
x
f
),,(),,( 1**
1 nn xxfxxf
;)(*)(1
**
n
kk
kx
x
fA
28
而 的相对误差及相对误差限限分别为 *A
*)(* Aee rr
n
k
k
k A
xe
x
f
1
**
*
)(
*
*)(
A
Ae
*)(* Arr
n
k
k
k A
x
x
f
1
**
*
)(*
*)(
A
A
)(*
*
1
**
kr
n
k
k
kx
A
x
x
f
)(*
*
1
**
kr
n
k
k
kxe
A
x
x
f
29
练习:);(),(),(.1 *** yexfyxfy r求
);(,)(,.2 *** yexyxy rnn 求
);()(),(4
),(1.05),(05.010.3
**22
21
21
SSDDS
cmDcmD
r和求
.)()(
)3()2()1(.4
** ueue
y
xuxyuyxu
r和求
是多大?,问测量的相对误差测量一木板长为954cm.5
30
1.3.1 病态问题与条件数
对一个数值问题本身 , 如果输入数据有微小扰动(即误差),引起输出数据(即问题解)相对误差很大,这就是病态问题 .
例如计算函数值 时,)(xf 若 有扰动 ,其x *xxx
相对误差为 ,x
x函数值 的相对误差为*)(xf
.)(
*)()(
xf
xfxf
1.3 误差定性分析与避免误差危害
31
,)(
)(/
)(
*)()(pCxf
xfx
x
x
xf
xfxf
( 3.1)
称为计算函数值问题的条件数 . pC
相对误差比值
自变量相对误差一般不会太大,如果条件数 很大,pC
将引起函数值相对误差很大,出现这种情况的问题就是病态问题 .
32
例如, ,nxxf )(
它表示相对误差可能放大 倍 . n
如 ,10n 有 ,24.1)02.1(,1)1( ff
,02.1*x 自变量相对误差为 ,%2 函数值相对误差为 ,%24
一般情况下 ,条件数 就认为是病态, 越大病态越严重 .
10pC pC
则有
)(
)(
xf
xfxC p
,
1
nx
nxxn
n
,1x若取
这时问题可以认为是病态的 .
33
1.3.2 算法的数值稳定性
用一个算法进行计算,如果初始数据误差在计算中传播使计算结果的误差增长很快,这个算法就是数值不稳定的 .
计算 并估计误差 . ),1,0(de1
0
1 nxxI xnn
由分部积分可得计算 的递推公式 nI
),,2,1(1 1 nnII nn ( 3.2).e1dee 11
0
10
xI x
例 6
问题:由递推公式( 3.2 )可以构造几种计算积分序列 {In}(n=1,2,
…,N) 的算法?假设计算中只有初始值带有误差,计算过程中不
产生新的误差,请判断哪种方法能给出更精确的结果。
34
算法 A :计算公式为 ),,2,1(1 1 NnnII nn
算法 B :计算公式为 )1,,2,(1
1 Nnn
II n
n
若初值 有误差 则由此引起以后各步计算的误差 满足关系
0
~I 000
~IIE
nnn IIE~ ).,2,1(1 nnEE nn
则 ,!)1( 0EnE nn 这说明 的误差被放大了 倍 . nI
~ !n
此例说明,数值不稳定的算法是不能使用的 .
显然算法 B的计算结果更精确、更可靠,当用算法 A计算时, 由于误差传播是逐步扩大的,因而计算结果不可靠 .
记 ,**nnn IIE 则 ,**
0 !
1nEn
E 比 缩小了*0E
*nE
倍。!n
看数值计算结果,见书 p13.
35
一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是数值稳定的,否则称此算法为不稳定的 .
在例 6中算法( B)是数值稳定的,而算法( A)是不稳定的 .
定义 4
36
1.3.3 避免误差危害的若干原则
数值计算中首先要分清问题是否病态和算法是否数值稳定,计算时还应尽量避免误差危害,防止有效数字的损失,有下面若干原则 .
1. 要避免除数绝对值远远小于被除数绝对值的除法
用绝对值小的数作除数舍入误差会增大,如计算 若
,y
x
,
则可能对计算结果带来严重影响,应尽量避免 .
,0 xy |)(|)(
|||)(|
||
1
)(
)()( *2*
**
*2*
**
*
*
*
*
yey
xxe
yy
yex
y
xe
y
xe
37
2. 要避免两相近数相减
在数值计算中两相近数相减有效数字会严重损失 .
这说明必须尽量避免出现这类运算 . 最好是改变计算方法,防止这种现象产生 .
分析前述例 1
1000000.05706121.15706122.1
5429arctan5430arctan
6
个零
y
8位有效数字
8位有效数字
33921910000000.05429arctan5430arctan7个零
y
0位有效数字
38
改变计算公式: ,可得由
1
arctanarctanarctan
8103921911.329479471
1arctan5429arctan5430arctan
精度提高了很多。此例说明,可通过改变计算公式避免或
减少有效数字的损失。
类似地,如果 和 很接近时,由 1x 2x
,lglglg2
121 x
xxx
用右边算式有效数字就不损失 .
,1
11
xxxx
也应该用右端算式代替左端 .
当 很大时,x
39
3. 要防止大数“吃掉”小数
在数值运算中参加运算的数有时数量级相差很大,
而计算机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的现象,影响计算结果的可靠性 .
前面用求根公式求根的例 2中, ,吃掉了1109
现改变计算公式如下:
12
2
2
1/
,
0,2
4
0,2
4
x
acx
ba
acbb
ba
acbb
x
40
4. 注意简化计算步骤,减少运算次数
同样一个计算问题,如果能减少运算次数,不但可节省计算机的计算时间,还能减少舍入误差 .
这是数值计算必须遵从的原则,也是“数值分析”要研究的重要内容 .
41
例 701
11)( axaxaxaxP n
nn
nn
的值, 若直接计算 再逐项相加,一共需做kk xa
2
)1(12)1(
nnnn
次乘法和 次加法 . n
若采用秦九韶算法
,)(
),0,1,2,,1(
,
0
1
SxP
nkaxSS
aS
n
kkk
nn
计算多项式
0121
012
11
)))(((
)()(
aaaaxaxxx
aaxaxaxxP
nnn
nn
nnn
只要 次乘法和 次加法就可算出 的值 . nn )(xPn
在“数值分析”中,这种节省计算次数的算法还有不少 .