数 值 分 析

41
1 数数数 数数数 数数数 数数数数数数数 数数数数数数数 4 数

description

数 值 分 析. 李庆扬 王能超 易大义 编. (第 4 版). 清华大学出版社 施普林格出版社. 数值分析课程 学时: 50 + 10 讲课时间: 3 ~ 16 周 上机时间: 16 ~ 18 周 平时成绩:上机 测验 作业 出勤 期末考试:半开卷. 教师:罗蕴玲 电话: 81720522 E-mail: [email protected] 办公室: 1 - 812 答疑时间: 周一下午 2 : 30 - 4 : 30 - PowerPoint PPT Presentation

Transcript of 数 值 分 析

Page 1: 数  值  分  析

1

数 值 分 析

李庆扬 王能超 易大义 编

清华大学出版社 施普林格出版社

(第 4 版)

Page 2: 数  值  分  析

2

• 数值分析课程

• 学时: 50+ 10• 讲课时间: 3~ 16 周• 上机时间: 16~ 18 周• 平时成绩:上机 测验 作业 出勤• 期末考试:半开卷

• 教师:罗蕴玲

• 电话: 81720522• E-mail:

[email protected]• 办公室: 1- 812

答疑时间:

周一下午 2: 30- 4:30

周三下午 3: 30- 5:00

具体考核方案

Page 3: 数  值  分  析

3

1.1 数值分析研究对象与特点

第 1章 绪 论

Page 4: 数  值  分  析

4

先看两个例子。 例 1 求方程 x2=2sinx ,在区间 (1,2) 内的

根。 理论上可知显然找不出根的解析式,即无法求出精确解。 例 2 用 Cramer 法则求解 n元线性方程组。 显然理论上可行,且有精确表达式。实际计算时会出现什么问题呢?

Page 5: 数  值  分  析

5

实际问题

数学模型

上机计算求出结果

数值计算方法

看用数学和计算机解决实际问题的过程:

应用数学研究的任务

数值分析研究的对象

最终提供的是针对各类数学问题的数值算法(即计算公式、计算方案、计算过程)

Page 6: 数  值  分  析

6

3 、具有好的计算复杂性

数值分析提供的算法具有下面四个特点:

1 、面向计算机

2 、有可靠的理论分析

4、通过数值实验验证有效性

Page 7: 数  值  分  析

7

本门课程学习的主要内容: 误差分析,插值法与拟合,数值积分,数值微分,解线性方程组的直接方法和迭代方法,非线性方程求根,矩阵特征值问题计算.

Page 8: 数  值  分  析

8

1. 认识建立算法和对每个算法进行理论分析是基本

任务,主动适应“公式多”的特点;

2. 注重各章建立算法的问题的提法,搞清问题的基

本提法,逐步深入;

3. 理解每个算法建立的数学背景,数学原理和基本

线索,对最基本的算法要非常熟悉;

4. 认真进行数值计算的训练,学习各章算法完全是

为用于实际计算,必须真会算。

Page 9: 数  值  分  析

9

• 本课程的基本要求– 掌握数值方法的基本原理– 掌握常用的科学与工程计算的基本方法– 能用所学方法在计算机上算出正确结果

Page 10: 数  值  分  析

10

课程学习结束后你具备的能力

1. 对具体的数值计算问题,你会选择合适的算法,并通过计算机计算出正确结果;

2. 对给定的算法会从理论上分析其优劣性;3. 会根据原理构造解决较简单数值计算问

题的算法。

Page 11: 数  值  分  析

11

1.2 数值计算的误差

引言——为什么要进行误差分析?

例 1 用具有舍入功能的八位计算器直接计算下式:

5429arctan5430arctan y

结果为1000000.05706121.15706122.1

5429arctan5430arctan

6

个零

y

事实上 33921910000000.0

5429arctan5430arctan

7个零

y

结果不可靠

1.2.1 误差来源与分类

Page 12: 数  值  分  析

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

Page 13: 数  值  分  析

13

实际问题 确定数值解法

上机求解

用计算机解决实际问题的一般过程

建立数学模型

模型误差、观测误差截断误差 舍入误差

应用数学解决的问题 数值分析解决的问题

在此主要研究这两种误差

Page 14: 数  值  分  析

14

若能根据测量工具或计算情况估计出误差绝对值的一个上界,即

1.2.2 误差与有效数字

设 为准确值,x 为 的一个近似值,*x x

xxe **

误差 可正可负,当绝对误差为正时近似值偏大,叫强近似值;

*e

通常准确值 是未知的,x 因此误差 也未知 .*e

为近似值的绝对误差,

定义 1 称

简称误差 .

当绝对误差为负时近似值偏小,叫弱近似值 .

*,** xxe

则 叫做近似值的误差限,* 它总是正数 .

一、绝对误差

Page 15: 数  值  分  析

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

Page 16: 数  值  分  析

16

实际计算中, 由于真值 总是未知的,x

*

*

*

**

x

xx

x

eer

把近似值的误差 与准确值 的比值 *e x

x

xx

x

e

**

称为近似值 的相对误差,*x 记作 .*re

作为 的相对误差,*x 条件是 较小,|*

*||| *

x

eer

通常取

此时利用

,** xxe 知

二、相对误差

定义 2

Page 17: 数  值  分  析

17

相对误差也可正可负,它的绝对值上界叫做相对误差限,

xx

xxe

x

e

x

e

*

)*(*

*

**

是 的平方项级,*re

记作 ,*r

*)*(*

*)( 2

exx

e

*)/*(1

*)/*( 2

xe

xe

故可忽略不计 .

.*

**

xr

Page 18: 数  值  分  析

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

三、有效数字

Page 19: 数  值  分  析

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 分别作为 π的近似值时分别有几位有效数字 ?

Page 20: 数  值  分  析

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)

Page 21: 数  值  分  析

21

至于绝对误差限,由于单位不同所以结果也不同 ,

,m/s102

1 22*1

但相对误差都是 80.9/005.0* r

注意相对误差与相对误差限是无量纲的,而绝对误差与误差限是有量纲的 .

例 4说明有效位数与小数点后有多少位数无关 .

,km/s102

1 25*2

.00980.0/00005.0

Page 22: 数  值  分  析

22

从 (2.2) 可得到具有 位有效数字的近似数 ,其绝对误差限为

n *x

,102

1* 1 nm

在 相同的情况下, 越大则 越小,故有效位数越多,绝对误差限越小 .

m n 110 nm

.102

1* 1 nmxx ( 2.2)

Page 23: 数  值  分  析

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,准确值具有无穷位有效数字。

Page 24: 数  值  分  析

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 为整数 .

则其相对误差限为

四、有效数字与相对误差限的关系

Page 25: 数  值  分  析

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

Page 26: 数  值  分  析

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 数值运算的误差估计

Page 27: 数  值  分  析

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

Page 28: 数  值  分  析

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

Page 29: 数  值  分  析

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

Page 30: 数  值  分  析

30

1.3.1 病态问题与条件数

对一个数值问题本身 , 如果输入数据有微小扰动(即误差),引起输出数据(即问题解)相对误差很大,这就是病态问题 .

例如计算函数值 时,)(xf 若 有扰动 ,其x *xxx

相对误差为 ,x

x函数值 的相对误差为*)(xf

.)(

*)()(

xf

xfxf

1.3 误差定性分析与避免误差危害

Page 31: 数  值  分  析

31

,)(

)(/

)(

*)()(pCxf

xfx

x

x

xf

xfxf

( 3.1)

称为计算函数值问题的条件数 . pC

相对误差比值

自变量相对误差一般不会太大,如果条件数 很大,pC

将引起函数值相对误差很大,出现这种情况的问题就是病态问题 .

Page 32: 数  值  分  析

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若取

这时问题可以认为是病态的 .

Page 33: 数  值  分  析

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) 的算法?假设计算中只有初始值带有误差,计算过程中不

产生新的误差,请判断哪种方法能给出更精确的结果。

Page 34: 数  值  分  析

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.

Page 35: 数  值  分  析

35

一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是数值稳定的,否则称此算法为不稳定的 .

在例 6中算法( B)是数值稳定的,而算法( A)是不稳定的 .

定义 4

Page 36: 数  值  分  析

36

1.3.3 避免误差危害的若干原则

数值计算中首先要分清问题是否病态和算法是否数值稳定,计算时还应尽量避免误差危害,防止有效数字的损失,有下面若干原则 .

1. 要避免除数绝对值远远小于被除数绝对值的除法

用绝对值小的数作除数舍入误差会增大,如计算 若

,y

x

则可能对计算结果带来严重影响,应尽量避免 .

,0 xy |)(|)(

|||)(|

||

1

)(

)()( *2*

**

*2*

**

*

*

*

*

yey

xxe

yy

yex

y

xe

y

xe

Page 37: 数  值  分  析

37

2. 要避免两相近数相减

在数值计算中两相近数相减有效数字会严重损失 .

这说明必须尽量避免出现这类运算 . 最好是改变计算方法,防止这种现象产生 .

分析前述例 1

1000000.05706121.15706122.1

5429arctan5430arctan

6

个零

y

8位有效数字

8位有效数字

33921910000000.05429arctan5430arctan7个零

y

0位有效数字

Page 38: 数  值  分  析

38

改变计算公式: ,可得由

1

arctanarctanarctan

8103921911.329479471

1arctan5429arctan5430arctan

精度提高了很多。此例说明,可通过改变计算公式避免或

减少有效数字的损失。

类似地,如果 和 很接近时,由 1x 2x

,lglglg2

121 x

xxx

用右边算式有效数字就不损失 .

,1

11

xxxx

也应该用右端算式代替左端 .

当 很大时,x

Page 39: 数  值  分  析

39

3. 要防止大数“吃掉”小数

在数值运算中参加运算的数有时数量级相差很大,

而计算机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的现象,影响计算结果的可靠性 .

前面用求根公式求根的例 2中, ,吃掉了1109

现改变计算公式如下:

12

2

2

1/

,

0,2

4

0,2

4

x

acx

ba

acbb

ba

acbb

x

Page 40: 数  值  分  析

40

4. 注意简化计算步骤,减少运算次数

同样一个计算问题,如果能减少运算次数,不但可节省计算机的计算时间,还能减少舍入误差 .

这是数值计算必须遵从的原则,也是“数值分析”要研究的重要内容 .

Page 41: 数  值  分  析

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

在“数值分析”中,这种节省计算次数的算法还有不少 .