数值分析第一章.pdf

数值分析第一章.pdf
数值分析第一章.pdf

第一章 数值分析的基本概念

数值分析研究求解数学模型的算法及有关理论,它伴随计算机的发展而发展。在工程计算中,用数值方法求解数学问题(数学模型)得到广泛应用. 对绝大多数问题而言,要获得解析解并非易事,而从应用角度看,求得一个数学模型的数值解已经足够了.

求数学模型数值解的方法是数值型算法的数学基础,数值型算法是对某些给定的数据,按照一定的运算秩序进行运算的运算序列.对一个待求解的问题,可以选择已有的算法,也可以创造新的算法. 在数值计算中,常用迭代技术、离散化技术以及对离散数据的连续化技术来处理问题. 例如,对一个微分方程(或积分方程)问题 Lu = f ,经离散化后得到一个大型线性方程组 L h u h = f h ,如果用直接法(如Gram 法则或Gauss 消元法等)求解,将引出计算量大或误差积累严重等一系列问题,所以通常用迭代法求解大型方程组.迭代法的求解过程包括:初值的选取、按迭代格式进行迭代计算以及对迭代过程的收敛判定.在科学和工程计算中用迭代法求解的大型方程组有高达几百万甚至上千万阶的规模.由此可见,数值方法对求解数学模型不可缺少,由于数值方法中近似计算手段的普遍使用,必须考虑方法误差对计算结果的影响。在信息技术迅猛发展的今天,计算机发展的速度往往使人预料不及,但实际应用需求的增长更快.对于大规模、非线性的复杂计算问题,目前使用的数值方法还有待于进一步的研究和发展.

评价算法的两个明显的标准是速度和精度,速度涉及计算量,精度涉及误差. 众所周知,实数系(全体实数集合)是无限、稠密、连续的集合,而机器数系(全体机器数集合)是有限、离散的集合. 计算机在数值计算过程中,按固定的“字长”工作,实现对数据的处理.所以,在数值计算中必须考虑数据误差对算法的影响.

§1.1误差和有效数字

一. 误差的来源和分类

在科学计算的过程中,建立数学模型、观测并获取有关数据、建立近似计算方法(数值方法)、进行数值计算是四个主要的环节。由此可知,在科学计算中误差的来源有:模型误差、观测误差、截断误差和舍入误差四个方面。

从实际问题建立数学模型时要分析各种因素,往往忽略一些次要因素,即使求得数学模型准确解,它与实际问题的解仍有误差。这类误差称为模型误差。模型误差是由实际问题抽象、简化为数学问题(数学模型)时,所引起的误差。

一般的数学模型包含若干个参数,如温度、长度、电压等物理量,这些参数的值往往由观测得到,而观测将受到包括工具在内的各种因素的影响,由此所产生的类误差称为观测误差。

当一个数学问题难以求出准确解时,往往退而求其近似解(用近似方法化简数学模型),所引起的误差称为截断误差(又称方法误差)。

例如,用有限项级数

S x x x =?

+131535!!

1

对正弦函数作近似计算,其截断误差为:R = sin x - S

.

由于计算机所表示的实数的位数有限,因而只能对有限位数字进行运算,通常用四舍五入的办法取近似值,由此引起的误差,称为舍入误差。

例如,用 3.1415926 来代替圆周率 π,其舍入误差为 :R = π – 3.1415926 例如,考虑通信卫星对地球表面积的覆盖问题,下面公式

∫∫

??D

dxdy y

x R R

2

2

2

只是对实际问题的一种逼近(D 为覆盖面在X-Y 平面的投影,R 为地球半径)。这里涉及到

几方面的误差。首先,将地球考虑成一个球体,用球体表面积代替地球表面积是过分理想化的模型,这是模型误差;其次,如果取地球半径的值为R =6370 km ,这只是一个综合测量的结果,这是观测误差;第三,数值积分的计算不可避免会产生计算误差。计算的准确性将依赖于上面所说的所有逼近。

在计算过程中,计算误差直接影响计算结果。数值分析所研究的计算误差是截断误差(即所谓误差估计)和舍入误差(它将引起数值方法准确解和计算解之间的误差)。

二. 绝对误差与相对误差

定义1.1 设实数 x * 为某一数据的准确值,它的近似值为 x ,称 e (x ) = x – x * 为 x 的绝对误差,简称误差。当 x *≠0 时,称|

|)

()(?=

x x e x e r 为 x 的相对误差。 注意,这样定义的误差可正可负,当误差为正时近似值偏大,称为强近似值;当误差为负时近似值偏小,称为弱近似。

绝对误差和相对误差是刻划近似值的精确度的重要概念。绝对误差仅考虑近似值与准确值的差异,而相对误差还考虑数据本身的大小,相对误差常用百分数表示。一般情况下,准确值 x *

未知,已知的是它的近似值 x ,从而绝对误差和相对误差也未知。在实际测量或计算时,可根据具体情况估计出 e (x ) 或 e r (x ) 的大小范围。例如,使用毫米刻度的米尺测量某物体长度,由四舍五入法则获得近似值 x ,其误差绝对值不会超过0.5毫米,即

| e (x ) | = | x – x * | ≤ 0.5 (毫米)

从而物体长度的准确值(以毫米为单位)满足不等式

x – 0.5 ≤ x ≤ x + 0.5

通常记为

5.0±=?x x (毫米)

这里的小正数0.5(毫米)称为近似值 x 的绝对误差限。

定义1.2 设 x 为准确值 x *

的近似值,如果,则称 ε(x ) 为 x 的绝对误差限。当 x )(|||)(|x x x x e ε≤?=?*≠0 时,称|

|)

()(?

=

x x x r εε 为 x 相对误差限。

当绝对误差限 ε(x ) 已知时,通常相对误差限ε r (x )仍然是未知的,所以在处理具体问题时,由于准确值未知,可以用近似值代替,即

|

|)

()(x x x r εε=

( x ≠0 )

2

例1.1 某种零件的质量取决于零件某个参数 x ,设参数的标定值为 1 个单位。在生产过程中允许零件参数有一定误差,由此将零件分成 A ,B ,C 三个等级,等级由相对误差限决定,A 等为1%,B 等为5%,C 等为10%。试确定三个等级的零件参数允许变化的范围。

解 由题设,标定值 x * = 1,根据相对误差限定义

r x x x ε≤??

?|

||

| 有

)1()1(r r x x x εε+≤≤???

将三个相对误差限分别代入,得三个等级的零件参数允许变化范围如下

A 等:x ∈[ 0.99,1.01],

B 等:x ∈[ 0.95,1.05],

C 等:x ∈[ 0.9,1.1]。

例1.2 测量一物体的长度是954cm ,问测量数据的相对误差限是多大?

解 因为实际问题所截取的近似数,其绝对误差限一般不超过最小刻度的半个单位,所以当x=954cm 时,有ε(x )=0.5cm ,而x 的相对误差满足

L 0005241.0954

5

.0)(=≤

x e r <0.00053 = 0.053% 所以,测量数据的相对误差限可确定为

ε r (x ) = 0.053%

由上可知,凡是由准确值经过四舍五入而得到的近似值,其绝对误差限等于近似值末位的半个单位。

三.有效数字

当某一数据有无穷多位数时,人们通常按“四舍五入”原则取它的前有限位数字作为近似值。例如,考虑 π 的不同近似值。取三位数 x 3 = 3.14,有

23102

1005.0?×=≤?x π

取五位数 x 5 = 3.1416,有

45102

100005.0?×=≤?x π

不同的近似值所取的位数(字长)各不相同,但它们的绝对误差限都不超过末位数的半个单位。通常,若近似值 x 的绝对误差限是某一位上的半个单位,该位到 x 的第一位非零数字一共有 n 位,则称近似值 x 有 n 位有效数字。

在科学计算中,常用规格化浮点数的形式表示实数,如

0.0031207,293.7048

两个数可表示为

0.31207×10 – 2 ,0.2937048×10 3

这样,一个数的数量级就一目了然。这种允许小数点位置浮动的方法称为数的浮点表示。

数的浮点表示由两部分组成,第一部分是尾数部,如前面两数中的0.31207和0.2937048;第二部分是定位部,用来确定小数点的位置,如前面的10 – 2 和 10 3。对非零数而言,规格化浮点数规定尾数的第一位数(这里规定小数点后第一位)非零,定位部主要由阶码 – 2 或 3 确定,因此,一个浮点数可用尾数和阶码表示。例如在计算机程序中常用如下形式

0.31207e – 2 ,0.2937048e + 3

3

表示规格化浮点数0.31207×10 – 2 ,0.2937048×10 3。尾数部与字长或有效数字位数有关,下面给出有效数字的定义。

定义1.3 设 x 可表示为规格化浮点数形式

x = (1.1) m n a a a 10.021×±L 其中,a 1,a 2,…,a n 都是0 ~ 9 中的任一整数,且 a 1≠ 0。若 x 的绝对误差满足:

n m x x ??×≤

?102

1

(1.2)

则称近似数 x 具有 n 位有效数字。

定理1.1 设 x

是有效数字位数为 n 的近似数,其表达式为式(1.1)

。则它的相对误差满足

n r a x e ?×≤

105

)(1

(1.3) 反之,若近似数 x 的相对误差满足

n r a x e ?×+≤

101

5

)(1 (1.4) 则 x 至少有n 位有效数字。 证:由(1.1)知,

111110)1(10??×+≤≤×m m a x a

结合(1.2),并注意,故有

n

m n m r a a x x x x e ????×=××≤?=10510105.0)(1

1

1 所以式(1.3)成立。反之,若x 的相对误差满足式(1.4)

,则有 n m m n

r a a x x e x e ???×=×+×+×≤?=105.010)1(1

105|||)(||)(|111

所以 x 具有 n 位有效数。

定理1.1揭示了数据的有效数位数与该数据近似值的相对误差之间关系。根据式(1.3),由于a 1≥1,可知,一个具有 n 位有效数字的近似数 x ,其相对误差满足

n r x e ?×≤105)( 这说明,有效数位数与相对误差的阶码相对应,例如2位有效数字相对误差大约为百分之5,而3位有效数字的相对误差大约千分之5。 x 的有效数字位数越多,相对误差越小。

例1.3 要使30的近似值 x 的相对误差限不超过0.1%,x 应取几位有效数字? 解 因30的第一位数字为5,

所以近似数 x 的第一位数字 a 1=5,根据定理1.1,当 x 取 n 位有效数字时,有

n n r a x e ??=×≤

10105

)(1

因此,要使相对误差限不超过0.1%,只须不等式 10 – n

≤ 0.001 成立即可。此时,取 n =3 有ε r (x )≤0.1%。所以当 x 取 3 位有效数时,其相对误差限小于0.1%

例1.4 已知20的近似数 x 相对误差限为0.5%,试问 x 至少有几位有效数字? 解 因20的第一位数字为 4,所以 x 的第一位数字 a 1 = 4,根据定理1.1,当

4

n r a x e ?×+≤

101

5

)(1 成立时,x 有 n 位有效数字。而 n

= 2 时 2210145101

95

10005%5.0)(??×+<×+==

=x r ε

所以,近似数 x 至少有2位有效数字。

§1.2 数值运算的误差估计

数值运算中误差的产生与传播的情况非常复杂,对误差估计也比较困难。这里主要介

绍用函数的Taylor 公式来估计误差的方法,这也是一种常用的方法。

一、 函数计算的误差估计

设一元函数 y = f (x ),自变量准确值为 x *,对应的函数准确值为 y *= f (x *),自变量近似值 x 的误差为 e (x ),误差限为ε (x ),函数近似值的误差为 e (y ),误差限为ε(y )。利用Taylor 公式

)(2

)()()()()(2

ξf x x x f x x x f x f ′′?+′?=???

?

其中,ξ 介于 x 和 x *

之间。取绝对值,得

|)(|2

)(|)(||||||)(|2ξf x x x f x x y y y e ′′?+′?≤?=??

?

忽略高阶项,得函数计算误差估计

)(|)(|)(x x f y εε′≈ (1.5)

当 y ≠0 ,x ≠0 时,有相对误差估计

)(|

)(||

)(|)(x x f x f x y r r εε′≈

(1.6)

对多元函数 z = f (x 1,x 2,…,x n ),设函数准确值为 z * = f (x 1*,x 2*,…,x n *),

利用多元函数Taylor 公式,仍然有误差估计

∑=??≈n

k k k

x x f

z 1

)(||

)(εε (1.7) 相对误差限为

∑??≈|

|)

(|

|)(z x x f x z k r k k

r εε (1.8) 二、算术运算的误差估计

设两个近似数 x 1与x 2 的误差限分别为)(1x ε和)(2x ε,则对这两个数的加、减、乘、除运算,可以利用多元函数的误差估计,得

)()()(2121x x x x εεε+=±

)(||)(||)(122121x x x x x x εεε+≈× (1.9)

2

21221

21

|

|)(||)(||)(

x x x x x x x εεε+≈

5

例1.5 设 a = 2.31,b = 1.93,c = 2.24 都是有三位有效数字的近似数,令 p = a + b c ,

求 ε(p ) 和 ε r (p ),并判断 p 有几位有效数字。

解 由于a ,b ,c 都有三位有效数字,故

===)()()(c b a εεε0.005

所以

)(||)(||)()()()(b c c b a bc a p εεεεεε++≈+=

= 0.005 + 1.93×0.005 + 2.24×0.005 = 0.02585

p = 2.31 + 1.93×2.24 = 6.6332

≈≈

=

6332

.602585

.0||)

()(p p p r εε0.0039 =0.39%

因为05.002585.0)(<≈p ε,所以 p = 6.6332 中只有两位有效数字。

例1.6 已测得某场地长和宽分别为 x

= 110m ,y = 80m ,已知)(x ε= 0.2m ,)(y ε= 0.1m 。试求该场地面积的绝对误差限和相对误差限。

解 因面积 S = x y ,

y x

S

=??,x y S =??,所以,绝对误差限 )(||)(||)(y y

S

x x S S εεε??+??≈= 80×0.2 + 110×0.1 = 27 (m 2)

相对误差限

110

8027

||)

(||)

()(×≈

=

=

xy S S S S r εεε= 0.0031 = 0.31%

例1.7 如果开方只取四位有效数字,求二次方程 x 2

– 16 x + 1 = 0 的较小正根,要求

有四位有效数字。

解 方程x 2

– 16 x + 1 = 0的较小正根为6381?=x ,取四位有效数字≈637.937 ,则

063.0937.786381=?≈?=x

此时

0005.00)937.7()8()(1+=+=εεεx

故0.063只有两位有效数字。若改用算法

≈1x ≈≈

+=

?=937

.151

63

816381x 0.06274706657464

由于

000005.0225

0005

.0)937.15()

1(937.15)937.15()(2

1<<

+≈

εεεx 所以,后一种算法所得的最小正根≈1x 0.06274706657464 具有四位有效数字。

例 1.8 设 P (x ) = (x – 1) (x – 2) (x – 3) (x – 4) (x – 5),五次方程P (x ) = 0 的五个根

分别为x 1 = 1,x 2 = 2,x 3 = 3,x 4 = 4,x 5 = 5。现将方程中x 4

的系数做微小改变(扰动)

,变方程为P (x ) – 0.01x 4

= 0,计算可得新的五个根

z 1 = 0.9996

6

z 2 = 2.0290 z 3 = 2.8332

z 4 = 4.5641 - 0.2296i z 5 = 4.5641 + 0.2296i

这说明系数有很小扰动,将会引起方程的根很大变化。试分析微小扰动对各个根的影响。 解 原方程的五个根分别为 x k = k , ( k = 1,2,3,4,5)。令

4)(),(x x P x p δδ?= 显然,方程p (x ,δ ) = 0的根都是δ 的函数,设为z k (δ),(k = 1,2,3,4,5)。且

k x z k k ==→)(lim 0

δδ,(k = 1,2,3,4,5)

所以

)0()()(=×

≈?=?δδ

δδδd dz z z x z k

k k k k

利用 p ( z k (δ ),δ ) = 0求导数

0)

(4

=?′k k k z d dz z P δ

求解,得

)

(4

k k k z P z

d dz ′=δ 当δ ? 0时,有

C k = )

(5

140

j k k d dz k j j k

?Π=

≠==δδ

计算列表如下

表1-1

k 1 2 3 4 5 C k 0.04 -2.67 20.25 -42.67 26.04

其中C k 是误差放大系数,即

z k (δ ) – x k ≈C k δ

由此可见,除了第一个根而外,微小扰动对其余四个根的影响都是不可忽视的。

§1.3数值计算中的一些基本原则

在数值计算中借助误差估计对误差传播情况作适当分析,为使误差不增长,可以得出

一些基本原则

一、避免绝对值小的数作除数

这一原则主要指尽量避免除数绝对值远远小于被除数绝对值的除法。误差分析如下 设 x

y

z =

( x ≠0),如果 x 的绝对值远小于 y 的绝对值,由于 )(||||||)(|

|)(||)(||)(2

2x e x y x y x x y y x x y +=+≈εεεε

7

这表明当x 的绝对值很小时,用 y 除以 x 所得结果的绝对误差可能很大。

二、避免两个相近的数据相减

如果 y ≈ x ,现分析两个数的近似数作减法所得结果的误差.设 z = y – x ,则利用误差估计

)()()(x y z εεε+=

从而得相对误差估计

)(|

||

||)(||||)(x z x y z y z r r r εεε+≤

当 y ≈ x 时,有 z ≈0,计算结果的相对误差限可能很大,导致数值计算结果的有效

数字位数减少。

例1.9 利用四位函数表计算 1 – cos 2 0,试用不同方法计算并比较计算结果。 解 记 x = 1,y = cos 20,z = x – y 。用四位函数表直接计算

0006.09994.012cos 10=?≈? 有误差估计ε(z ) = ε(x ) + ε(y ) = 0 + 0.00005,所以计算结果只有1位有效数字。考虑另一方法

+≈+=?9994

.01)03490.0(2cos 12sin 2cos 12

0020

6.09187756326898×10 – 4 考虑用第三种方法

1 – cos 20 =

2 sin 2 10 ≈2×0.01745=6.09005×10 – 4

后两种方法计算结果与用MATLAB 直接计算数据6.091729809042379e-004比较接近。

为了避免两相近的数据直接作减法运算,具体处理方案随数学表达式不同而不同.常用一些恒等式来将其变形,如当 x 为充分大正数时

)1/(11x x x x ++=?

+

当 x 的绝对值很小时用

)2/(sin 2cos 12x x =?

n x x n x x x e !

1!31!21132++++

≈?L 三、要防止大数“吃掉”小数

一个绝对值很大的数和一个绝对值很小的数直接相加时,很可能发生所谓“大数吃小数”的现象,从而影响计算结果的可靠性.这主要是计算机表示的数位数有限这一客观现实引起的.

例如,a = 1013

,b = 4,设想这两个数在具有12位浮点数计算机系统(12位有效位数系)中相加,在机器数系统中相加的原则是先对阶,后相加。对阶时

a +

b = 1013 + 4 =1.00000000000 ×1013+ 0.0000000000004 ×1013

由于系统只保留前12位作为有效数,方框中数据被舍去,实际加法操作如下

13131000000000000.01000000000000.1×+×

8

最后 a + b 计算结果是 。即 a 的值作为计算结果赋给 a+

b . 13

1000000000000.1×这显然是很不合理的.

由于“大数吃小数现象”,考虑当绝对值悬殊的一系列数相加时,如果有

||||||||321n x x x x >>>>L

成立,则应该按绝对值由小到大的秩序确定累加的先后次序. 四、尽量减少计算工作量

在考虑算法时应注意简化计算步骤,减少运算次数。计算机执行一个算法所花费的时间代价除了与问题的规模大小有关外,主要依赖于计算过程中所用乘除法次数的多少,也就是计算工作量的大小。计算工作量小的算法不仅节约运行时间,而且使误差积累小。

例1.10设计算法用于计算多项式

P x a a x a x a x n n n ()=++++0122L

值。并分析算法的计算工作量。

解 先考虑直接相加的累加算法,从低次项开始逐项累加。

S 0 = a 0 ,

S k = S k -1 + a k x k ,( k = 1,2,…,n ) P n (x ) = S n

在设计算法时,为了节约计算量引入一个工作变量 u 用以保存自变量的方幂 x k

(k = 1,2,…,n ).算法框图见图1-1。计算一个 n 次多项值需要用 2n 次乘法。

另一种典型算法是秦九韶算法,以 4 次多项式为例,将多项式写成

9

)))((()(43210443322104xa a x a x a x a x a x a x a x a a x P ++++=++++=

104计算时规定内层括号优先,即最先计算a xa 3+的值。对n 次式项式,算法如下

S n = a n ,

S k -1 = a k -1+ xS k ,(k = n ,n -1,…,1), P n (x ) = S 0

算法框图见图1-2。计算一个 n 次多项式只需要用n 次乘法。

显然,秦九韶算法优于累加算法.

五、选用数值稳定性好的算法

对同一个数学问题,即使在数学公式已经确定的情况下,仍然可以设计出不同的算法.而不同的算法在执行过程中对数据误差的影响是不一样的,舍入误差对计算结果影响不大的算法被称为数值稳定的算法.分析一个算法在计算过程中是否稳定,实际上是考察误差是否增长。

例1.11 利用递推式计算定积分 ( n = 0, 1, 2, …, 20 )的值.

I e x e d n n x =?∫

1

1

x 解:由分部积分法

11

11

11)(????=?=∫n x n x n n nI dx e x n e x e I

I e e dx e e e x 010

1

1111==?=??∫()??2

得带初值的递推关系式

I e I nI n n n 01

1111=?=?=??

???,(,,)

L 对于初值的计算,会出现误差。取十进制 14 位有效数字进行计算,得

≈?=?101e I 0.63212055882856

利用递推式可得20个数据如下(表1-2)

表1-2

S 10.36787944117144 S 110.07735222935878 S 20.26424111765712 S 120.07177324769464 S 30.20727664702865 S 130.06694777996972 S 40.17089341188538 S 140.06273108042387 S 50.14553294057308 S 150.05903379364190 S 60.12680235656152 S 160.05545930172957 S 70.11238350406936 S 170.05719187059731 S 80.10093196744509 S 18-0.02945367075154 S 90.09161229299417 S 19 1.55961974427919 S 10

0.08387707005829

S 20

-30.19239488558378

表中 S 1,…,S 20 是积分值 I 1,…,I 20 的递推计算值。由积分值

11)min (1

0101

0+=≥∫∫≤≤n dx x e dx e x n

x

x x n ,1)max (101010+=≤∫∫≤≤n e dx x e dx e x n

x x n n 所以,对任意正整数 n ,有估计式

1

1

11011+≤

≤+∫??n dx e x e n e x n 成立。但是表1-2 中显示出有两个负数 S 18 和 S 20,这说明 |e (S 18)| 和 |e (S 20)| 很大。导

致这样计算结果的直接原因是初始数据的误差在计算过程中增大。现分析如下 由于初值S 0 = 0.63212055882856具有14位有效数字,所以

150105)(?×=S ε

将 S n = 1 – n S n-1 和 I n = 1 – n I n-1 两式相减,得

S n – I n = – n (S n-1 – I n-1 ) 或者 e (S n ) = –n ×e (S n-1)

由此递推,即得

e (S n ) = (–1)n ( n ! ) e (S 0)

尽管初始值的绝对误差限非常小,但是随着递推过程进行,阶乘数迅速增大,使得误差在计算过程中扩散,这是不稳定的算法。

考虑另一种算法,由递推公式I nI n n =??11 解得I n

I n ?=?11

1(n ),这是逆向递推公式,由的估计式

I n 1

1

11+≤

≤+?n I n e n 取 I S 30301

31

≈=

(0.0204),利用递推公式 ≈?=?31/)1()(130e S εS n

S n n n ?=?=11

1302928(),,,,,L 2

计算出 S 29,S 28,……,S 1 ,并选取前20个数据,列表如下

表1-3

S 10.36787944117144 S 110.07735222886266 S 20.26424111765712 S 120.07177325364803 S 30.20727664702865 S 130.06694770257562 S 40.17089341188538 S 140.06273216394138 S 50.14553294057308 S 150.05901754087930 S 60.12680235656153 S 160.05571934593124 S 70.11238350406930 S 170.05277111916899 S 80.10093196744559 S 180.05011985495809 S 90.09161229298966 S 190.04772275579621 S 10

0.08387707010339

S 20

0.04554488407582

11

表1-3数据变化表明实数序列{S n } 随 n 的增加单调下降趋于零,这与积分值数列{I n }的变化规律相吻合.

虽然初始数据带有明显误差,分析误差传播规律

S 30)(1

)1(1)1(1)(111n n n n n n S e n

S n I n S I S e ?=???=

?=??? 可知

|)(|30

29)1(1

|)(|301S e n n S e n ×××+×=

?L ,(n = 29,28, (2)

所以,递推使误差绝对值逐次减小,这是一种数值稳定的算法。比较前面两种不同的算法可知,在数学上是完全等价的两种递推公式,由于运算秩序不同会出现完全不同的情况。

应用

Koch 分形曲线算法

Koch 分形曲线是一类复杂的平面曲线,用算法描述为:从一条直线段开始,将线段中间三分之一部分用等边三角形的两条边代替,形成具有5个结点的图形(图1);在新的图形中,又将图中每一直线段中间的三分之一部分都用一等边三角形的两条边代替,再次形成新的图形(图2),这时,图形中共有17个结点.

图1 第一次迭代 图2 第二次迭代

这种迭代继续进行下去可以形成Koch 分形曲线.在迭代过程中,图形中的点将越来越多,而曲线最终显示细节的多少将取决于迭代次数和显示系统的分辩率.

算法分析:考虑由直线段(2个点)产生第一个图形(5个点)的过程.设P 1和P 5分别为原始直线段的两个端点.现在需要在直线段的中间依次插入三个点P 2, P 3, P 4 产生第一次迭代的图形(图1-4).显然,P 2位于P 1点右端直线段的三分之一处,P 4位于P 1点右端直线段的三分之二处;而P 3点的位置可以看成是由P 4点绕P 2旋转60度(逆时针方向)而得到的,故可以处理为向量P 2P 4经正交变换而得到向量P 2P 3。算法如下: (1) P 2 = P 1 + (P 5-P 1)/3; (2) P 4 = P 1 + 2(P 5-P 1)/3; (3) P 3 = P 2 + (P 4-P 2)×A T ; 第三步中,A 为正交矩阵:

12

A=

?

?

?

?

?

?

?

?

?

?

?

?

?cos sin

sin cos

ππ

ππ

33

33

算法根据初始数据(P1和P5点的坐标),产生图1中5个结点的坐标。结点的坐标数组形成一个5×2矩阵,矩阵的第一行为P1的坐标,第二行为P2的坐标,…,第五行为P5的坐标.矩阵的第一列元素分别为5个结点的X坐标,第二列元素分别为5个结点的Y坐标。

进一步考虑Koch曲线形成过程中结点数目的变化规律。设第k次迭代产生结点数为n k,第k+1次迭代产生结点数为n k+1,则n k和n k+1之间的递推关系式为n k+1 = 4n k – 3 程序如下

p=[0 0;10 0];n=2;

A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)];

for k=1:4

d=diff(p)/3;m=4*n-3;

q=p(1:n-1,:);p(5:4:m,:)=p(2:n,:);

p(2:4:m,:)=q+d;

p(3:4:m,:)=q+d+d*A’;

p(4:4:m,:)=q+2*d;

n=m;

end

plot(p(:,1),p(:,2))

程序运行后,可得如下分形曲线图形。

图1所示的简单图形被称为是koch曲线的生成元。下面给出另两种生成元。

第二种生成元第三种生成元

13

用这两种图形生成元可绘制出另外的分形曲线

习题一

1 设x >0,x 的相对误差限为δ,求 ln x 的误差。

2 设 x = – 2.18 和 y = 2.1200 都是由准确值经四舍五入而得到的近似值。求绝对误差限ε( x ) 和 ε( y ) 。

3 下近似值的绝对误差限都是 0.005,问各近似值有几位有效数字

x 1=1.38,x 2= –0.0312,x 3= 0.00086

4 已知近似数x 有两位有效数字,试求其相对误差限。

5 设 y 0 = 28,按递推公式 y n = y n-1 –

783/ 100 ( n = 1,2,…) 计算到y 100。若取

≈78327.982 (五位有效数字),试问,计算 y 100 将有多大的误差?

解:由于初值 y 0 = 28 没有误差,误差是由≈78327.982所引起。记 x = 27.982, 6 求方程 x 2

– 56x + 1 = 0的两个根,问要使它们具有四位有效数字,D=ac b 42

?至少要取几位有效数字? 如果利用韦达定理,D 又应该取几位有效数字? 7 设2

2

1gt s =

,假定g 是准确的,而对t 的测量有±0.1秒的误差,证明当t 增加时s 的绝对误差增加,而相对误差减小。

8 序列{ y n }满足递推关系 y n = 10y n-1 – 1 (n = 1,2,……)。若取 y 0 = 2≈1.41(三位有效数字),按上述递推公式,从y 0计算到y 10时误差有多大?这个计算过程稳定吗? 9 )1ln()(2??

=x x x f ,求f (30) 的值,若开平方用六位函数表,问求对数时误差有多

14

大?若改用另一等价公式

)1ln()1ln(22?+?=??x x x x

计算,求对数时误差有多大? 10 已知有求和式

∑∑==n i i

j j

i

b

a 11

(1) 试统计需要用多少次乘法和加法才能计算出该和式的值;

(2) 为了减少计算工作量,将和式作等价变换,变换后需要多少次乘法和加法。 11 试构造一个算法,对输入的数据 x 0,x 1,x 2,……,x n ,以及x (均为实数),算法输出为 ( x –x 0) ( x –x 1) ( x –x 2)……( x –x n ) 的计算结果。

12 利用级数公式

L +?+?=7

1

513114π

可计算出无理数π 的近似值。由于交错级数的部分和数列S n 在其极限值上下摆动,故截断误差将小于第一个被舍去的项的绝对值 | a n+1|。

试分析,为了得到级数的三位有效数字近似值,应取多少项求和。

15

数值分析第一章学习小结

数值分析 第1章绪论 --------学习小结 一、本章学习体会 通过本章的学习,让我初窥数学的又一个新领域。数值分析这门课,与我之前所学联系紧密,区别却也很大。在本章中,我学到的是对数据误差计算,对误差的分析,以及关于向量和矩阵的数的相关容。 误差的计算方法很多,对于不同的数据需要使用不同的方法,或直接计算,或用泰勒公式。而对于二元函数的误差计算亦有其独自的方法。无论是什么方法,其目的都是为了能够通过误差的计算,发现有效数字、计算方法等对误差的影响。 而对误差的分析,则是通过对大量数据进行分析,从而选择出相对适合的算法,尽可能减少误差。如果能够找到一个好的算法,不仅能够减少计算误差,同时也可以减少计算次数,提高计算效率。 对于向量和矩阵的数,我是第一次接触,而且其概念略微抽象。因此学起来较为吃力,仅仅知道它是向量与矩阵“大小”的度量。故对这部分容的困惑也相对较多。 本章的困惑主要有两方面。一方面是如何能够寻找一个可靠而高效的算法。虽然知道算法选择的原则,但对于很多未接触的问题,真正寻找一个好的算法还是很困难。另一方面困惑来源于数,不明白数的意义和用途究竟算什么。希望通过以后的学习能够渐渐解开自己的疑惑。 二、本章知识梳理

2.1 数值分析的研究对象 数值分析是计算数学的一个重要分支,研究各种数学问题的数值解法,包括方法的构造和求解过程的理论分析。它致力于研究如何用数值计算的方法求解各种基本数学问题以及在求解过程中出现的收敛性,数值稳定性和误差估计等容。 2.2误差知识与算法知识 2.2.1误差来源

误差按来源分为模型误差、观测误差、截断误差、舍入误差与传播误差五种。其中模型误差与观测误差属于建模过程中产生的误差,而截断误差、舍入误差与传播误差属于研究数值方法过程中产生的误差。 2.2.2绝对误差、相对误差与有效数字 1.(1)绝对误差e指的是精确值与近似值的差值。 绝对误差: 绝对误差限: (2)相对误差是指绝对误差在原数中所占的比例。 相对误差: 相对误差限: 结论:凡是经过四舍五入而得到的近似值,其绝对误差不超过该近似值末位的半个单位。 (3)有效数字的定义 有效数字的第一种定义:设a是x的近似值,如果a的误差绝对值不超过x 的第k位小数的半个单位,即则称近似值a准确到小数点后第k位。从小数点后的第k位数字直到最左边非零数字之间的所有数字都叫有效数字。

数值分析第五版答案(全)

第一章 绪论 1.设0x >,x 的相对误差为δ,求ln x 的误差。 解:近似值*x 的相对误差为***** r e x x e x x δ-= == 而ln x 的误差为()1ln *ln *ln **e x x x e x =-≈ 进而有(ln *)x εδ≈ 2.设x 的相对误差为2%,求n x 的相对误差。 解:设()n f x x =,则函数的条件数为'()||() p xf x C f x = 又 1'()n f x nx -=, 1||n p x nx C n n -?∴== 又((*))(*)r p r x n C x εε≈? 且(*)r e x 为2 ((*))0.02n r x n ε∴≈ 3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指 出它们是几位有效数字:*1 1.1021x =,*20.031x =, *3385.6x =, *456.430x =, *57 1.0.x =? 解:*1 1.1021x =是五位有效数字; *20.031x =是二位有效数字; *3385.6x =是四位有效数字; *456.430x =是五位有效数字; *57 1.0.x =?是二位有效数字。 4.利用公式(2.3)求下列各近似值的误差限:(1) ***124x x x ++,(2) ***123x x x ,(3) **24/x x . 其中**** 1234,,,x x x x 均为第3题所给的数。 解:

*4 1*3 2*13*3 4*1 51 ()102 1()102 1()102 1()102 1()102x x x x x εεεεε-----=?=?=?=?=? ***124***1244333 (1)() ()()() 111101010222 1.0510x x x x x x εεεε----++=++=?+?+?=? ***123*********123231132143 (2)() ()()() 1111.10210.031100.031385.610 1.1021385.610222 0.215 x x x x x x x x x x x x εεεε---=++=???+???+???≈ **24****24422 *4 33 5 (3)(/)()() 110.0311056.430102256.43056.430 10x x x x x x x εεε---+≈??+??=?= 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为343V R π= 则何种函数的条件数为 23'4343 p R V R R C V R ππ=== (*)(*)3(*)r p r r V C R R εεε∴≈= 又(*)1r V ε=%1

数值分析第一章绪论习题答案

第一章绪论 1.设0x >,x 的相对误差为δ,求ln x 的误差。 解:近似值* x 的相对误差为* **** r e x x e x x δ-= == 而ln x 的误差为()1ln *ln *ln ** e x x x e x =-≈ 进而有(ln *)x εδ≈ 2.设x 的相对误差为2%,求n x 的相对误差。 解:设()n f x x =,则函数的条件数为'() | |() p xf x C f x = 又1 '()n f x nx -= , 1 ||n p x nx C n n -?∴== 又((*))(*)r p r x n C x εε≈? 且(*)r e x 为2 ((*))0.02n r x n ε∴≈ 3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指 出它们是几位有效数字:*1 1.1021x =,*20.031x =, *3385.6x =, * 456.430x =,*57 1.0.x =? 解:*1 1.1021x =是五位有效数字; *20.031x =是二位有效数字; *3385.6x =是四位有效数字; *456.430x =是五位有效数字; *57 1.0.x =?是二位有效数字。 4.利用公式(2.3)求下列各近似值的误差限:(1) * * * 124x x x ++,(2) ***123x x x ,(3) **24/x x . 其中****1234 ,,,x x x x 均为第3题所给的数。 解:

*4 1* 3 2* 13* 3 4* 1 51()1021()1021()1021()1021()102 x x x x x εεεεε-----=?=?=?=?=? *** 124***1244333 (1)()()()() 1111010102221.0510x x x x x x εεεε----++=++=?+?+?=? *** 123*********123231132143 (2)() ()()() 111 1.10210.031100.031385.610 1.1021385.610222 0.215 x x x x x x x x x x x x εεεε---=++=???+???+???≈ ** 24**** 24422 *4 33 5 (3)(/) ()() 11 0.0311056.430102256.43056.430 10x x x x x x x εεε---+≈ ??+??= ?= 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为34 3 V R π= 则何种函数的条件数为 2 3'4343 p R V R R C V R ππ=== (*)(*)3(*)r p r r V C R R εεε∴≈= 又(*)1r V ε=

数值分析第五版全答案

第四章 数值积分与数值微分 1.确定下列求积公式中的特定参数,使其代数精度尽量高,并指明所构造出的求积公式所具有的代数精度: 101210121 12120 (1)()()(0)(); (2)()()(0)(); (3)()[(1)2()3()]/3; (4)()[(0)()]/2[(0)()]; h h h h h f x dx A f h A f A f h f x dx A f h A f A f h f x dx f f x f x f x dx h f f h ah f f h -----≈-++≈-++≈-++''≈++-?? ?? 解: 求解求积公式的代数精度时,应根据代数精度的定义,即求积公式对于次数不超过m 的多项式均能准确地成立,但对于m+1次多项式就不准确成立,进行验证性求解。 (1)若101(1) ()()(0)()h h f x dx A f h A f A f h --≈-++? 令()1f x =,则 1012h A A A -=++ 令()f x x =,则 110A h A h -=-+ 令2 ()f x x =,则 3 221123 h h A h A -=+ 从而解得 01 1431313A h A h A h -?=?? ?=?? ?=?? 令3 ()f x x =,则 3()0h h h h f x dx x dx --==? ? 101()(0)()0A f h A f A f h --++= 故 101()()(0)()h h f x dx A f h A f A f h --=-++? 成立。 令4 ()f x x =,则

数值分析第一章作业

西安邮电大学2018级工硕学位课 数值分析第一章作业 1.数值计算方法设计的基本手段是( ). (A) 近似 (B) 插值 (C) 拟合 (D) 迭代 2.为了在有限时间内得到结果,用有限过程取代无限过程所产生的近似解与精确解之间的误差称为( ). (A) 舍入误差 (B) 截断误差 (C) 测量误差 (D) 绝对误差 3.由于计算机的字长有限,原始数据在机器内的表示以及进行算术运算所产生的误差统称为( ). (A) 舍入误差 (B) 截断误差 (C) 相对误差 (D) 绝对误差 4.数值计算方法研究的核心问题可以概括为( )对计算结果的影响. (A) 算法的稳定性 (B) 算法的收敛性 (C) 算法的复杂性 (D) 近似 5.当N 充分大时,利用下列各式计算121N N dx I x +=+?,等式( )得到的结果最好. (A) arctan(1)arctan()I N N =+- (B) 2arctan(1)I N N =++ (C) 21arctan()1I N N =++ (D) 211I N =+ 6. 计算61), 1.4≈,利用下列哪个公式得到的结果最好?为什么? (B) 3(3- (D) 99-7.计算圆柱体的体积,已知底面半径r 及圆柱高h 的相对误差限均不超过5110-?,则计算所得体积的相对误差限如何估计?. 8.已知近似值0.500x *=的误差限*4()510x ε-≤?,32()21f x x x x =---. ①用秦九韶算法计算()f x *. ②求(())f x ε*,并说明x *及()f x *各有几位有效数字. 9. 分析算法011111,,32,1,2,,k k k y y y y y k +-?==???=-=? 的数值稳定性.

数值分析第五版答案

第一章 绪论 p19 2.设x 的相对误差为2%,求n x 的相对误差。 解:设()n f x x =,则函数的条件数为'() | |() p xf x C f x = 又 1 '()n f x nx -=, 1 ||n p x nx C n n -?∴== 又 ((*))(*)r p r x n C x εε≈? 且(*)r e x 为2% ((*))0.02n r x n ε∴≈ 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为343 V R π= 则何种函数的条件数为 2 3'4343 p R V R R C V R ππ=== (*)(*)3(*)r p r r V C R R εεε∴≈= 又 (*)1r V ε= 故度量半径R 时允许的相对误差限为1 (*)10.333 r R ε= ?≈ 7.求方程2 5610x x -+=的两个根,使它至少具有427.982 =)。 解:2 5610x x -+= , 故方程的根应为1,228x =故 128 2827.98255.982x = ≈+= 1x ∴具有5位有效数字 211 280.0178632827.98255.982 x =-= ≈ =≈+ 2x 具有5位有效数字

9.正方形的边长大约为了100cm ,应怎样测量才能使其面积误差不超过2 1cm ? 解:正方形的面积函数为2 ()A x x = p7 当*100x =时,若(*)1A ε≤, 则21 (*)102 x ε-≤ ? 故测量中边长误差限不超过0.005cm 时,才能使其面积误差不超过2 1cm 第二章 插值法p48 1.当1,1,2 x =-时,()0,3,4f x =-, 分别用单项式基底、拉格朗日基底、牛顿基底求() f x 的二次插值多项式。 解: 0120121200102021101201220211,1,2, ()0,()3,()4;()()1 ()(1)(2)()()2()()1 ()(1)(2) ()()6 ()()1 ()(1)(1) ()()3 x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--==-+-----==------= =-+-- 则二次拉格朗日插值多项式为 2 20 ()()k k k L x y l x ==∑ 0223()4() 14 (1)(2)(1)(1)23537623 l x l x x x x x x x =-+=---+-+=+- 2.给出()ln f x x =的数值表 用线性插值及二次插值计算的近似值。 解:由表格知,

数值分析第五版答案

第一章 绪论 3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指 出它们是几位有效数字:*1 1.1021x =,*20.031x =, *3385.6x =, * 456.430x =,*57 1.0.x =? 解:*1 1.1021x =是五位有效数字; *20.031x =是二位有效数字; *3385.6x =是四位有效数字; *456.430x =是五位有效数字; *57 1.0.x =?是二位有效数字。 4.利用公式(2.3)求下列各近似值的误差限:(1) ***124x x x ++,(2) ***123x x x ,(3) **24/x x . 其中****1234 ,,,x x x x 均为第3题所给的数。 解: *4 1* 3 2* 13* 3 4* 1 51 ()1021()1021()1021()1021()102 x x x x x εεεεε-----=?=?=?=?=? *** 124***1244333 (1)()()()() 1111010102221.0510x x x x x x εεεε----++=++=?+?+?=? *** 123*********123231132143 (2)() ()()() 111 1.10210.031100.031385.610 1.1021385.610222 0.215 x x x x x x x x x x x x εεεε---=++=???+???+???≈

** 24**** 24422 * 4 33 5 (3)(/) ()() 11 0.0311056.430102256.43056.430 10x x x x x x x εεε---+≈ ??+??= ?= 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为34 3 V R π= 则何种函数的条件数为 2 3'4343 p R V R R C V R ππ=== (*)(*)3(*)r p r r V C R R εεε∴≈= 又(*)1r V ε= 故度量半径R 时允许的相对误差限为1 (*)10.333 r R ε=?≈ 6.设028Y = ,按递推公式1n n Y Y -= (n=1,2,…) 计算到100Y 27.982≈(5位有效数字),试问计算100Y 将有多大误差? 解:1n n Y Y -=- 10099Y Y ∴=- 9998Y Y = 9897Y Y =-…… 10Y Y =- 依次代入后,有1000100Y Y =- 即1000Y Y = 27.982, 100027.982Y Y ∴=-

数值分析第五版复习资料

第一章绪论 1.设0x >,x 的相对误差为δ,求ln x 的误差。 解:近似值*x 的相对误差为* **** r e x x e x x δ-= = = 而ln x 的误差为()1 ln *ln *ln ** e x x x e x =-≈ 进而有(ln *)x εδ≈ 2.设x 的相对误差为2%,求n x 的相对误差。 解:设()n f x x =,则函数的条件数为'() | |() p xf x C f x = 又1 '()n f x nx -=Q , 1 ||n p x nx C n n -?∴== 又((*))(*)r p r x n C x εε≈?Q 且(*)r e x 为2 ((*))0.02n r x n ε∴≈ 3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指 出它们是几位有效数字:*1 1.1021x =,*20.031x =, *3385.6x =, * 456.430x =,*57 1.0.x =? 解:* 1 1.1021x =是五位有效数字; *20.031x =是二位有效数字; *3385.6x =是四位有效数字; *456.430x =是五位有效数字; *57 1.0.x =?是二位有效数字。 4.利用公式(2.3)求下列各近似值的误差限:(1) ***124x x x ++,(2) ***123x x x ,(3) **24/x x . 其中**** 1234,,,x x x x 均为第3题所给的数。 解:

*4 1* 3 2* 13* 3 4* 1 51()1021()1021()1021()1021()102 x x x x x εεεεε-----=?=?=?=?=? *** 124***1244333 (1)()()()() 1111010102221.0510x x x x x x εεεε----++=++=?+?+?=? *** 123*********123231132143 (2)() ()()() 111 1.10210.031100.031385.610 1.1021385.610222 0.215 x x x x x x x x x x x x εεεε---=++=???+???+???≈ ** 24**** 24422 *4 33 5 (3)(/) ()() 11 0.0311056.430102256.43056.430 10x x x x x x x εεε---+≈ ??+??= ?= 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为343 V R π= 则何种函数的条件数为 2 3'4343 p R V R R C V R ππ===g g (*)(*)3(*)r p r r V C R R εεε∴≈=g 又(*)1r V ε=Q %1

数值分析第一章小结

第1章绪论 --------学习小结 姓名班级学号 一、本章学习体会 通过对本章的学习,我发现原来好多科学技术都离不开数学。首先,对于我们工科专业软件的计算过程中,我了解到数值分析已经被公认为与理论分析,实验分析并列的科学研究三大基本手段之一。它有一个逻辑性很强的求解过程:提出实际问题,建立数学模型,提出数值问题,设计可靠、高效的算法,程序设计、上级实践计算结果,计算结果可视化。这种严密的逻辑完全可以应用在我们的生活中,正如我们去解决好多问题都可以通过提出问题,假设方法,验证正确性,解决问题。当然对于本章的一些相关概念还理解的不是十分明白,希望在今后的学习中真正能从学过了变成会学了。 二、本章知识梳理 1.1数值分析的研究对象 研究对象:利用计算机求解各种数学问题的数值方法及有关理论. 数值问题:输入与输出均为数据的问题. 数值方法: 求解数值问题时,在计算机上可执行的系列计算公式. 数值算法: 有步骤地完成求解数值问题的过程。规定了怎样从输入数据计算出数值问题解的一个有限的基本运算序列。

1.2误差知识与算法知识 1.2.1误差的来源与分类 1.2.2绝对误差,相对误差与有效数字 (1)绝对误差:精确值与近似值的差. (2)相对误差:绝对误差在原数中所占比例. (3)有效数字:有效数字=可靠数字+存疑数字. 1.2.3函数求值的误差估计 误差估计的一般运算 一元函数: x ≈a,f(x)≈f(a) e(a)=x-a e(f(a))=f(x)-f(a)≈f ’(a)(x-a) 二元函数:

(,)(,)((,))()()f a b f a b e f a b e a e b x y ??≈?+??? (,)(,)((,))| |()||()f a b f a b f a b a b x y ??ε≈?ε+?ε?? 1.2.4算法及其计算复杂性 1.算法:有步骤地完成解数值问题的过程。规定了怎样从输入数据计算出数值问题解的一个有限的基本运算序列。 2.好算法的标准:(1)有可靠的理论基础,包括正确性、收敛性、数值稳定性以及可作误差分析。(2)有良好的计算复杂性。 3.数值运算中的一些原则 1. 要有数值稳定性 2. 合理安排两级相差悬殊输间的运算次序,防止“大数”吃“小数”; 3. 避免两个相近的数相减 4. 避免接近于0的数做除数,防止溢出 5. 简化计算步骤,减少运算次数 1.3向量范数与矩阵范数

数值分析第一章.pdf

第一章 数值分析的基本概念 数值分析研究求解数学模型的算法及有关理论,它伴随计算机的发展而发展。在工程计算中,用数值方法求解数学问题(数学模型)得到广泛应用. 对绝大多数问题而言,要获得解析解并非易事,而从应用角度看,求得一个数学模型的数值解已经足够了. 求数学模型数值解的方法是数值型算法的数学基础,数值型算法是对某些给定的数据,按照一定的运算秩序进行运算的运算序列.对一个待求解的问题,可以选择已有的算法,也可以创造新的算法. 在数值计算中,常用迭代技术、离散化技术以及对离散数据的连续化技术来处理问题. 例如,对一个微分方程(或积分方程)问题 Lu = f ,经离散化后得到一个大型线性方程组 L h u h = f h ,如果用直接法(如Gram 法则或Gauss 消元法等)求解,将引出计算量大或误差积累严重等一系列问题,所以通常用迭代法求解大型方程组.迭代法的求解过程包括:初值的选取、按迭代格式进行迭代计算以及对迭代过程的收敛判定.在科学和工程计算中用迭代法求解的大型方程组有高达几百万甚至上千万阶的规模.由此可见,数值方法对求解数学模型不可缺少,由于数值方法中近似计算手段的普遍使用,必须考虑方法误差对计算结果的影响。在信息技术迅猛发展的今天,计算机发展的速度往往使人预料不及,但实际应用需求的增长更快.对于大规模、非线性的复杂计算问题,目前使用的数值方法还有待于进一步的研究和发展. 评价算法的两个明显的标准是速度和精度,速度涉及计算量,精度涉及误差. 众所周知,实数系(全体实数集合)是无限、稠密、连续的集合,而机器数系(全体机器数集合)是有限、离散的集合. 计算机在数值计算过程中,按固定的“字长”工作,实现对数据的处理.所以,在数值计算中必须考虑数据误差对算法的影响. §1.1误差和有效数字 一. 误差的来源和分类 在科学计算的过程中,建立数学模型、观测并获取有关数据、建立近似计算方法(数值方法)、进行数值计算是四个主要的环节。由此可知,在科学计算中误差的来源有:模型误差、观测误差、截断误差和舍入误差四个方面。 从实际问题建立数学模型时要分析各种因素,往往忽略一些次要因素,即使求得数学模型准确解,它与实际问题的解仍有误差。这类误差称为模型误差。模型误差是由实际问题抽象、简化为数学问题(数学模型)时,所引起的误差。 一般的数学模型包含若干个参数,如温度、长度、电压等物理量,这些参数的值往往由观测得到,而观测将受到包括工具在内的各种因素的影响,由此所产生的类误差称为观测误差。 当一个数学问题难以求出准确解时,往往退而求其近似解(用近似方法化简数学模型),所引起的误差称为截断误差(又称方法误差)。 例如,用有限项级数 S x x x =? +131535!! 1 对正弦函数作近似计算,其截断误差为:R = sin x - S .

数值分析第五章答案

数值分析第五章答案 【篇一:数值分析第五版计算实习题】 第二章 2-1 程序: clear;clc; x1=[0.2 0.4 0.6 0.8 1.0]; y1=[0.98 0.92 0.81 0.64 0.38]; n=length(y1); c=y1(:); or j=2:n %求差商 for i=n:-1:j c(i)=(c(i)-c(i-1))/(x1(i)-x1(i-j+1)); end end syms x df d; df(1)=1;d(1)=y1(1); for i=2:n %求牛顿差值多项式 df(i)=df(i-1)*(x-x1(i-1)); d(i)=c(i)*df(i); end disp(4次牛顿插值多项式); p4=vpa(collect((sum(d))),5) %p4即为4次牛顿插值多项式,并保留小数点后5位数 pp=csape(x1,y1, variational);%调用三次样条函数 q=pp.coefs; disp(三次样条函数); for i=1:4 s=q(i,:)*[(x-x1(i))^3;(x-x1(i))^2;(x-x1(i));1]; s=vpa(collect(s),5) end x2=0.2:0.08:1.08; dot=[1 2 11 12]; figure ezplot(p4,[0.2,1.08]); hold on y2=fnval(pp,x2); x=x2(dot);

y3=eval(p4); y4=fnval(pp,x2(dot)); plot(x2,y2,r,x2(dot),y3,b*,x2(dot),y4,co); title(4次牛顿插值及三次样条); 结果如下: 4次牛顿插值多项式 p4 = - 0.52083*x^4 + 0.83333*x^3 - 1.1042*x^2 + 0.19167*x + 0.98 三次样条函数 x∈[0.2,0.4]时, s = - 1.3393*x^3 + 0.80357*x^2 - 0.40714*x + 1.04 x∈[0.4,0.6]时,s = 0.44643*x^3 - 1.3393*x^2 + 0.45*x + 0.92571 x∈[0.6,0.8]时,s = - 1.6964*x^3 + 2.5179*x^2 - 1.8643*x + 1.3886 x∈[0.8,1.0]时,s =2.5893*x^3 - 7.7679*x^2 + 6.3643*x - 0.80571 输出图如下 2-3(1) 程序: clear; clc; x1=[0 1 4 9 16 25 36 49 64]; y1=[0 1 2 3 4 5 6 7 8];%插值点 n=length(y1); a=ones(n,2); a(:,2)=-x1; c=1; for i=1:n c=conv(c,a(i,:)); end q=zeros(n,n); r=zeros(n,n+1); for i=1:n [q(i,:),r(i,:)]=deconv(c,a(i,:));%wn+1/(x-xk) end dw=zeros(1,n); for i=1:n dw(i)=y1(i)/polyval(q(i,:),x1(i));%系数 end p=dw*q; syms x l8; for i=1:n

常州大学数值分析第一章习题解答

1.1解: m=3; f=@(x)digit(digit(x^4,m)- digit(x^3,m)+ digit(3*x^2,m)+ digit(x-2,m),m); g=@(x)digit(digit(digit( digit(digit(digit( (x-1)*x,m)+3,m)*x,m)+1,m)*x,m)-2,m); f(3.33) g(3.33) 有ans = 121 ans =121 实际上,当m=2时,就可以看出这两种算法在计算的精确度上的区别: m=2; f=@(x)digit(digit(x^4,m)- digit(x^3,m)+ digit(3*x^2,m)+ digit(x-2,m),m); g=@(x)digit(digit(digit( digit(digit(digit( (x-1)*x,m)+3,m)*x,m)+1,m)*x,m)-2,m); f(3.33) g(3.33) 有ans = 120 ans =130,可以看出,两者在计算精度上的不同区别,数学上恒等,在数值上不一定恒等。 1.2解: (1)精确到小数点后第三位,故有4位有效数字 (2)精确到小数点后第三位,故有2位有效数字 (3)精确到小数点后第三位,故有0位有效数字 1.3 解; 记圆的面积为S,由题意有|e(S)|≤1%。由S=πr2知:dS=2πrdr所以 dS/S=(2πrdr)/(πr2)=2(dr/r) ∴|e(r)|≈1/2|e(S)|≤0.5×1%=0.5% 1.4 解: 由题有:|e(x)|≤1/2×10^-2 ; |e(y)|≤1/2×10^-2; |e(z)||≤1/2×10^-2 ∴|e(S)|≈|xe(x)+ye(y)|+ |ze(z)|^2≈x|e(x)|+y|e(y)|+z^2|z(z)|^2≤4.21×0.005+1.79×1.005+2.11×2.11×0.005^2=0.03≤1/2×10^-1 又S=4.21*1.79+2.11^2=11.988 ∴S至少具有3位有效数字。 在字长为3的计算机上运行,误差为: S1=4.21*1.79+2.11; S2=digit(digit(4.21*1.79,3)+digit(2.11^2,3),3); err=S1-S2 err = -2.3541 1.6 解: clc disp('Please input the coefficients of'); disp('quadratic equation ax^2+bx+c=0, respectively') a=input('a='); b=input('b='); c=input('c='); m=4; % m-digit rounding arithmetic

数值分析第一章上机作业

习题3.3 1.用高斯消元法解下列线性方程组 (1) 123 1234 1234 1234 4+848, 5434, 47210, 374; x x x x x x x x x x x x x x x += ? ?++-=- ? ? +++= ? ?++-=- ? (2) 1234 1234 1234 1234 +231, 363, 33153, 510125; x x x x x x x x x x x x x x x x ++= ? ?+++= ? ? --+= ? ?--+= ? 解:用高斯消元法解线性方程组的MATLAB主程序function [RA,RB,n,X]=gaus(A,b) B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0, disp('请注意:因为RA~=RB,所以此方程组无解.') return end if RA==RB if RA==n disp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1); C=zeros(1,n+1); for p= 1:n-1 for k=p+1:n m= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1); end end

b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1 X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q); end else disp('请注意:因为RA=RB

数值分析第一章 习题

第 一 章 习 题 1. 真空中的自由落体距离h 与时间t 的关系为,其中为重力加速度212 h gt =,其中g 为加速度。现设g 是准确的,而对t 的测量有1s ±的误差,证明当t 增加时,距离的绝对误差增加,而相对误差减少. 2. 012,17(),012 2k k k x x x k x +=???=+=????? ,,, 证明:若k x 的具有n 位有效数字的近似值,则1k x + 的具有2n 位有效数字的近似值. 3. 已知 )( 631399?=?=? 请指明用哪一个公式进行计算误差较小,并说明理由. 4. 已知0a ≠,0b ≠,2 40b ac ?>.说明在计算机上求一元二次方程 20ax bx c ++= 的两个实根时,为什么不用公式12b x a ?= ,12b x a ?=, 而要用公式1sgn(2b b x a ??=,21c x ax = 呢?这里1,0,sgn()1,0.b b b ≥?=??

(1)11121x x x ??++,1x , ,1x , (3) 1cos x x ?,0x ≠,1x . 6. 在计算一元实系数多项式 110()n n n n p x a x a x a ??=++???+ 的函数值时,若2x ,3x ,…,n x 先计算,再用0a ,1a ,…,n a 做线性组合,运算量是多少?占用的储存空间是几个单位(假设存一个实数用的储存空间是一个单位)?若按下列算法计算: 0,1,2,,1,0,()n n k k k u a u xu a k n n p x u =??=+=???????=? 运算量是多少?占用的储存空间是几个单位? 7. 一个浮点数系可用四元数组(,,,)t L U β来刻画 (1)若10β=,欲使数2365.27和0.0000512能够准确地用规格化的浮点数来表示,最小的t 和U ,以及最大的L 各是多少? (2)若在(1)中去掉“规格化的”要求,答案将发生什么样的变化?

数值分析第五版_李庆扬

数值分析第五版_李庆扬 一、课程基本信息 课程中文名称: 数值分析 课程英文名称: Numerical Analysis 课程类别: 专业基础课 开课学期: 秋 适用专业: 信息与计算科学;应用数学 总学时: 86学时(其中理论课56学时,上机实习30学时) 总学分: 5(理论课3学分;上机实习2学分) 预修课程(编号): 数学分析,高等代数,常微分方程 课程简介: 本课程是大学本科信息与计算科学和应用数学专业的一门基础课,也是工科研究生的必修课。本课程的主要内容是研究各种数学问题的数值计算方法的设计、计算误差分析以及有关理论和具体实现的一门数学课程。是应用数学的重要分支之一。 建议教材: 《计算方法》(二版)(邓建中、刘之行),西安,西安交通大学出版社,2001 参考书: [1]数值分析学习指导,关治编,出版社:清华大学出版社,出版时间:2008年; [2]数值分析,何汉林,梅家斌,科学出版社,2007年; [3]《数值计算引论》白峰杉高等教育出版社 2005年 [4]《数值分析》(第五版)李庆扬易大义等清华大学出版社 2008年 [5]Numerical Analysis,R.Kress,世界图书出版公司2003 6、数值分析学习辅导习题解析,李宏、徐长发编,华中科技大学出版社,2001年。 二、理论课程教育目标 通过本课程的教学使学生能了解现代科学计算中常用的数值计算方法及其基本理论,系统掌握数值分析的基本概念和分析问题、解决问题的基本方法,为运用数值分析的理论知识并为掌握更复杂的现代计算方法打好。 三、理论教学内容与要求(含学时) 第一章:计算方法的一般概念(4学时) 本章教学内容: 理解计算方法的意义、研究内容与方法,理解并掌握误差的概念(包括误差的来源、绝对误差、相对误差),掌握有效数字及舍入误差对计算的影响。 第二章:解线性方程组的直接法(8学时)

(完整版)数值分析第五版答案

第一章 绪论 3.下列各数都是经过四舍五入得到的近似数, 即误差限不超过最后一位的半个单位,试指 出它们是几位有效数字: x 1* 1.1021 , x 2* 0.031 , x 3 385.6 , x 4 56.430 ,x 5 7 1.0. 解: x 1 1.1021 是五位有效数字; x 2 0.031是二位有效数字; x 3 385.6 是四位有效数字; x 4 56.430 是五位有效数 字; x 5 7 1.0. 是二位有效数字。 4.利用公式 (2.3)求下列各近似值的误差限: (1) x 1 x 2 x 4,(2) x 1 x 2 x 3 ,(3) x 2/ x 4. 其中 x 1* , x *2, x 3* , x 4* 均为第 3题所给的数。 解: (x 1*) (x * 2) (x *3) (x * 4) (x 5) 1 2 1 2 1 2 1 2 1 10 10 10 10 10 (1) (x 1 (x 1*) 1 10 2 1.05 10 x 2 x 4) (x * 2) 1 2 3 10 (x *4) 1 10 3 2 (2) (x 1*x *2x 3*) x 1x 2 (x 3) x 2x 3 (x 1) x 1x 3 (x 2) 1 1.1021 0.031 10 1 0.031 385.6 1 10 4 1.1021 385.6 1 10 3 0.215

又Q r (V*) 计算到 Y 100 。若取 783 27.982 ( 5 位有效数字) 有 Y 100 Y 0 100 1 783 100 0 100 (3) (x *2/ x 4*) x 2* (x *4) x *4 (x 2*) *2 x 4* 1 3 1 3 0.031 10 3 56.430 10 3 22 56.430 56.430 10 5 5 计算球体积要使相对误差限为 1 , 43 解:球体体积为 V R 3 3 则何种函数的条件数为 问度量半径 R 时允许的相对误差限是多 少? C p RgV ' Rg4 R 2 4 R 3 3 r (V*) C p g r (R*) 3 r (R*) 故度量半径 R 时允许的相对误差限 为 6.设 Y 0 28,按递推公式 Y n Y n 1 3 1 783 100 r (R*) 1 0.33 n=1,2,?) 1 解:QY n Y n 1 783 n n 1 100 Y 100 Y 99 1 783 100 99 100 1 783 100 1 783 100 Y 99 Y 98 Y 1 Y 98 Y 97 Y 0 1010 783 即 Y 100 Y 0 783, 若取 783 27.982 , Y 100 Y 0 27.982 ,试问计算 Y 100 将有多大误差? 依次代入后,

精品数值分析第五版课后习题完整答案(李庆扬等)

第一章 绪论(12) 1、设0>x ,x 的相对误差为δ,求x ln 的误差。 [解]设0*>x 为x 的近似值,则有相对误差为δε=)(*x r ,绝对误差为**)(x x δε=,从而x ln 的误差为δδεε=='=* ****1)()(ln )(ln x x x x x , 相对误差为* * ** ln ln ) (ln )(ln x x x x r δ εε= = 。 2、设x 的相对误差为2%,求n x 的相对误差。 [解]设*x 为x 的近似值,则有相对误差为%2)(*=x r ε,绝对误差为**%2)(x x =ε,从而n x 的误差为n n x x n x n x x n x x x ** 1 *** %2%2) ()()()(ln * ?=='=-=εε, 相对误差为%2) () (ln )(ln *** n x x x n r == εε。 3、下列各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出它们是几位有效数字: 1021.1*1=x ,031.0*2=x ,6.385*3=x ,430.56*4=x ,0.17*5 ?=x 。 [解]1021.1*1 =x 有5位有效数字;0031.0* 2=x 有2位有效数字;6.385*3=x 有4位有效数字;430.56* 4 =x 有5位有效数字;0.17*5?=x 有2位有效数字。 4、利用公式(3.3)求下列各近似值的误差限,其中* 4*3*2*1,,,x x x x 均为第3题所给 的数。 (1)* 4*2*1x x x ++; [解]3 334* 4*2*11** *4*2*1*1005.1102 1 10211021)()()()()(----=?=?+?+?=++=? ??? ????=++∑x x x x x f x x x e n k k k εεεε; (2)* 3*2 *1x x x ;

数值分析第五版答案

第一章 绪论 p19 2.设x 的相对误差为2%,求n x 的相对误差。 解:设()n f x x =,则函数的条件数为'()||() p xf x C f x = 又1'()n f x nx -=, 1 ||n p x nx C n n -?∴== 又((*))(*)r p r x n C x εε≈? 且(*)r e x 为2% ((*))0.02n r x n ε∴≈ 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为343 V R π= 则何种函数的条件数为 23 '4343 p R V R R C V R ππ=== (*)(*)3(*)r p r r V C R R εεε∴≈= 又(*)1r V ε= 故度量半径R 时允许的相对误差限为1(*)10.333r R ε= ?≈ 7.求方程25610x x -+=的两个根,使它至少具有427.982 =)。 解:2 5610x x -+= , 故方程的根应为1,228x =故 128 2827.98255.982x = ≈+= 1x ∴具有5位有效数字 211280.0178632827.98255.982 x =-=≈=≈+ 2x 具有5位有效数字

9.正方形的边长大约为了100cm ,应怎样测量才能使其面积误差不超过21cm ? 解:正方形的面积函数为2()A x x = p7 当*100x =时,若(*)1A ε≤, 则21(*)102 x ε-≤? 故测量中边长误差限不超过0.005cm 时,才能使其面积误差不超过21cm 第二章 插值法 p48 1.当1,1,2x =-时,()0,3,4f x =-, 分别用单项式基底、拉格朗日基底、牛顿基底求()f x 的二次插值多项式。 解: 0120121200102021101201220211,1,2, ()0,()3,()4; ()()1()(1)(2)()()2()()1()(1)(2)()()6()()1()(1)(1)()()3 x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--= =-+-----= =------==-+-- 则二次拉格朗日插值多项式为 2 20()()k k k L x y l x ==∑ 0223()4() 1 4(1)(2)(1)(1)23 537623 l x l x x x x x x x =-+=---+-+=+- 2.给出()ln f x x =的数值表 用线性插值及二次插值计算的近似值。 解:由表格知,

相关文档
最新文档