当前位置:首页 >> 数学 >> 数学建模1-2-课件

数学建模1-2-课件


科学计算与数学建模 —— 绪论

中南大学数学与统计学院

§4 误差的种类及其来源
非过失误差
数值计算中, 除了可以避免的过失误差外, 还有不少来源不同而又无法避免的 非过失误差存在于数值计算过程中, 主要有如下几种

模型误差

观测误差

截断误差

r />
舍入误差

1.4.1 模型误差
在建模(建立数学模型)过程中,欲将复杂的物理现象抽象、归 纳为数学模型,往往只得忽略一些次要因素的影响,而对问题作某些 必要的简化。这样建立起来的数学模型实际上必定只是所研究的复杂 客观现象的一种近似的描述,它与真正客观存在的实际问题之间有一 定的差别,这种误差称为“模型误差”。

1.4.2 观测误差
在建模和具体运算过程中所用到的一些初始数据往往都是通过 人们实际观察、测量得来的,由于受到所用观测仪器、设备精度 的 限制,这些测得的数据都只能是近似的,即存在着误差,这种误差 称为“观测误差”或“初值误差”。

1.4.3 截断误差
在不少数值运算中常遇到超越计算,如微分、积分和无穷级数求和 等,它们须用极限或无穷过程来求得。然而计算机却只能完成有限次 算术运算和逻辑运算,因此需将解题过程化为一系列有限的算术运

算和逻辑运算。这样就要对某种无穷过程进行“截断”,即仅保无穷过 程的前段有限序列而舍弃它的后段。这就带来了误差,称它为“截断误 差”或“方法误差”。
例如,函数 sin x 和 ln(1 ? x)可分别展开为如下的无穷幂级数:

sin x ? x ? ln(1 ? x) ? x ?

x
2

3

3!

?

x
3

5

5!

?

x
4

7

7!

??

(1.4.1)

x

2

?

x
3

3

?

x

4

? ? (?1 ? x ? 1)

(1.4.2)

若取级数的起始若干项的部分和作为函数值的近似,例如取

sin x ? x ? x ? x 3! 5!

5

(1.4.3)

ln(1 ? x) ? x ?

x
2

2

?

x
3

3

(1.4.4)

则由于它们的第四项和以后各项都舍弃了,自然产生了误差。这就是 由于截断了无穷级数自第四项起的后段的产生的截断误差。(1.4.3)和 (1.4.4)的截断误差是很容易估算的,因为幂级数(1.4.1)和(1.4.2) 都是 交错级数,当 x ? 1 时的各项的绝对值又都是递减的,因此,这时它们的截 断误差 R4 ? x ?可分别估计为:

x x R ( x) ? 7! 和 R ? x ? ? 4
4
4

7

4

1.4.4 舍入误差
在数值计算过程中还会用到一些无穷小数,例如无理数和有理 数中某些分数化出的无限循环小数,如

? ? 3.14159265?

2 ? 1.41421356?

1 1 ? ? 0.166666? 3! 6

由于受计算机机器字长的限制,它所能表示的数据只能 有有限位数,这时就需把数据按四舍五入舍入成一定位数 的近似的有理数来代替。由此引起的误差称为“舍入误差” 或“凑整误差”。 综上所述,数值计算中除了可以完全避免的过失误差 外,还存在难以避免的模型误差、观测误差、截断误差和 舍入误差。数学模型一旦建立,进入具体计算时所要考虑 和分析的就是截断误差和舍入误差了。在计算机上经过千 百次运算后所积累起来的总误差不容忽视,有时可能会大 得惊人,甚至到达“淹没”所欲求解的真值的地步,而使 计算结果失去根本的意义。因此,在讨论算法时,有必要 对其截断误差的估算和舍入误差的控制作适当的分析。

§5 绝对误差和相对误差
1.5.1 绝对误差和绝对误差限
定义1.5.1 设某一个准确值(称为真值)为 x ,其近似值为 x ,则 x
* 与 x 的差
*

称为近似值

?( x* 的“绝对误差”,简称“误差”。当x) ? 0 时,称为亏近

? (x)? x? x

*

(1.5.1)

似值或弱近似值,反之则称为盈近似值或强近似值。 由于真值往往是未知或无法知道的,因此,? ( x ) 的准确值(真值)也 就无法求出。但一般可估计此绝对误差的上限,也即可以求出一个正值 ? , 使

? ( x) ? x ? x * ? ?
称为近似值

(1.5.2)

?

x*的“绝对误差限”,简称“误差限”,或称“精度”。有时也用

(1.5.3) 来表示(1.5.2)式,这时等式右端的两个数值 x * ?? 和 x * ?? 代表了 x 所

x ? x * ??

? 在范围的上、下限。 越小,表示该近似值 x* 的精度越高。

例1.5.1 用有毫米刻度的尺测量不超过一米的长度。读数方法如下: 如长度接近于毫米刻度,就读出该刻度数作为长度的近似值。显 然,这个近似值的绝对误差限就是半个毫米,则有

? (l ) ? l ? l * ?

1 (毫米) 2

如果读出的长度是513毫米,则有

l ? 513 ? 0.5
这样,虽仍不知准确长度

l

是多少,但由(1.5.3)式可得到不等式:

512.5 ? l ? 513.5(毫米)
这说明 l 必在 [512.5,513.5] 毫米区间内。

1.5.2 相对误差和相对误差限
用绝对误差还不能完全评价近似值的精确度。例如测量10米的长度时 产生1厘米的误差与测量1米的长度时产生1厘米的误差是大有区别的。虽然 两者的绝对误差相同,都是1厘米,但是由于所测量的长度要差十倍,显然 前一种测量比后一种要精确得多。这说明要评价一个近似值的精确度,除 了要看其绝对误差的大小外,还必须考虑该量本身的大小,这就需要引进 相对误差的概念。

定义1.5.2

绝对误差与真值之比,即

x ? x* ? r ( x) ? ? x x

? ( x)

(1.5.4)

称为近似值 x* 的“相对误差”。 1 在上例中,前一种测量的误差为 1000 ,而后一种测量的相对误差则为 1
100 ,是前一种的十倍。

由(1.5.4)可见,相对误差可以从绝对误差求出。反之,绝对误 差也可由相对误差求出,其相互关系式为:

? ( x) ? x ? ? r ( x)

(1.5.5)

相对误差不仅能表示出绝对误差来,而且在估计近似值运算结果的 误差时,它比绝对误差更能反映出误差的特性。因此在误差分析中,相 对误差比绝对误差更为重要。相对误差也无法准确求出。因为(1.5.4) 中的 ? ( x) 和 x 均无法准确求得。 也和绝对误差一样,可以估计它的大小范围,即可以找到一个正数 ? ,使 ? ( x) ? ? (1.5.6)
r

?

称为近似值 x 的“相对误差限”。 相对误差是个纯数字,它没有量纲。

*

例1.5.2

称100 千克重的东西若有1千克重的误差和量100米长
1 100

的东西有1米长的误差,这两种测量的相对误差都是
千克和1米的量纲不同,两者就无法进行比较。

。与此相

反,由于绝对误差是名词,有量纲,上例中两种测量的绝对误差1

在实际计算中,由于真值

x

总是无法知道的,因此往往取

? r* ( x) ?
作为相对误差的另一定义。

? ( x)
x*

(1.5.7)

? r* ( x) 与 ? r ( x) 之间的相差究竟有多大: 下面比较

? r ?x ? ? ? ?x ?
* r
=

=

1 1 ? ( x)( ? * ) x x

=

1 ?? ( x)?2 ? x ? x*
x ? * (? r ( x)) 2 x

1 ? * ( x? r ( x)) 2 xx
? ? 1 2 ?? = ??? r ( x ) ? ?1 ? ? r ( x ) ?

=

? 一般地,r ( x) 很小,不会超过 0.5 。这样 1 ? ? ( x) 不大于2,因此, r 上式右端是一高阶小量,可以忽略。 ? r ( x) ? ? r* ( x) ? 2[? r ( x)]2 ? ? (? r ( x))
上式右端是一高阶小量,可以忽略,故用
? r* ( x)

1

来代替 ? r ( x) 。

? ( x) ? r* ( x) ? * ?100% 相对误差也可用百分数来表示: x

这时称它为百分误差。

§6 有效数字及其误差的关系
1.6.1 有效数字
在表示一个近似值的准确程度时,常用到“有效数字”的概念。
例1.6.1 ? ? 3.14159265 ??? ,若 ? 按四舍五入取四位小数,则得的近 似值为3.1416;若取五位小数则得其近似值为3.14159。这种近似值 取法的特点是误差限为其末位的半个单位,即 1 ? ? 3.1416 ? ?10?4 2 定义1.6.1 当近似值 x 的误差限是其某一位上的半个单位时,称其
*

“准确”到这一位且从该位起直到前面第一位非零数字为止的所有数字

称为有效数字。一般说,设有一个数

x ,其近似值 x* 的规格化形式:
(1.6.1)

x* ? ?0.?1? 2 ?? n ?10m

m 式中 ? 都是 0,1, 2,?,9 中的一个数字, n 是正整数, 是整数。 * 若 x 的误差限为:
1 ? ( x) ? x ? x ? ?10m?n 2
*

(1.6.2)
m?n

则称

x

*

为具有n位有效数字的有效数,或称它精确到 10

。其中每

一位数字

* ?1 , ? 2 ,?, ? n 都是 x* 的有效数字。 若(1.6.1)中的 x

是经四舍五入得到的近似数, 则 例 1.6.2 例 1.6.3

x* 具有

n

位有效数字。

3.1416 是? 的具有五位有效数字的近似值,精确到0.0001。

但要注意, 203 和 0.0203 都是具有三位有效数字的有效数。 即仅精确 0.0203 和 0.020300 就不同了,前者仅具有三位有效数字,

到 0.0001 ;而后者则具有五位有效数字,即精确到0.000001。可见, 两者的精确程度大不相同,后者远较前者精确(差100倍)。因此,有 另一种情况, 例如 x ? 0.1524 , x ? 0.154 这时 x 的误差为 ?0.0016 ,其绝对
*
*

值超过 0.0005(第三位小数的半个单位),但却没有超过0.005(第二 位小数的半个单位),即

0.0005 ? x ? x* ? 0.005
显然, 虽然有三位小数但却只精确到第二位小数,因此,它只具 x
有二位有效数字。其中1和5都是准确数字,而第三位数字4就不再是准
*

确数字了,我们就称它为存疑数字。 注 用计算机进行的数值计算,由于受到计算机字长的限制,要求输入 的数有一定的位数,计算的结果也只保留一定的位数,且所保留下来的 不一定都是有效数字,同时也不是所有的有效数字都可保留下来。

1.6.2 有效数字与误差的关系
由(1.6.2)可知,从有效数字可以算出近似数的绝对误差限;有 效数字的位数越多,其绝对误差限也就越小,且还可以从有效数字 求出其相对误差限。 当用(1.6.1)表示的近似值 x ,具有 n 位有效数字时,显然有
*

x* ? ?1 ? 10 m ?1
故由(1.6.2)可知,其相对误差

1 ?10m? n ? ( x) 2 1 * ? r ( x) ? ? ? ?10? n ?1 x* ?1 ?10m?1 2?1
故相对误差限为

(1.6.3)

1 ?? ?10? n ?1 2?1

(1.6.4)

由(1.6.4)可见,有效数字的位数反映了近似值的相对精确度。 上述关系的逆也是成立的,即当用 (1.6.1) 表示的近似值,如果 其相对误差能满足

? ( x) ?
* r

1 2(?1 ? 1)

?10? n ?1

(1.6.5)



x*至少具有 n

位有效数字。这是因为:

由(1.6.5)及 x* ? ??1 ? 1? ? 10m ?1 有

? ( x) ? x* ? ? r* ( x) ? (?1 ? 1) ?10m?1 ?
* 即 x 至少具有

1 ?10? n ?1 ? ?10m? n 2(?1 ? 1) 2

1

n

位有效数字。

例1.6.4

当用3.1416来表示的近似值时,它的相对误差是多少?

解 3.1416具有五位有效数字,?1 ? 3 ,由(1.6.3)有

1 1 ?5?1 ? ( x) ? ?10 ? ?10?4 2?3 6
* r

例1.6.5 为了使积分的近似值的相对误差不超过0.1%,问至少要取
几位有效数字? 解 可以知道I=0.7476…,这样 ?1 ? 7 ,由(1.6.3)有

1 ? (I ) ? ?10? n ?1 ? 0.1% 2? 7 * * I * ? 0.747 就能保证 I 可解出 n ? 3 ,即 I 只要取三位有效数字
* r

的相对误差不大于0.1%。

§7 误差的传播与估计
1.7.1 误差估计的一般公式
在实际的数值计算中,参与运算的数据往往都是些近似值,带有 误差,这些数据误差在多次运算过程中会进行传播,使计算结果产生 误差,而确定计算结果所能达到的精度显然是十分重要的,但往往很 困难。不过,对计算误差作出一定的定量估计还是可以做到的。下面 利用函数泰勒(Taylor)展开式推出误差估计的一般公式。
* * y* 考虑二元函数 y ? f ( x1 , x2 ),设 x1 和 x2 分别是 x1和 x2 的近似值, * * * 是函数值 y 的近似值,且 y ? f ( x1 , x2 ),函数 f ( x , x ) 在点 ( x * , x * ) 1 2 1 2 处的泰勒展开式为: ? f * ? f * * * f ( x1 , x2 ) ? f ( x1*, x2 *) ? [( ) ( x1 ? x1 ) ? ( ) ( x2 ? x2 ) ] ?x1 ?x2

1 ?2 f * ?f * * * * ? [( 2 ) ? ( x1 ? x1 ) 2 ? 2( ) ? ( x1 ? x1 )( x2 ? x2 ) 2! ?x1 ?x1?x2 ?2 f * * ? ( 2 ) ? ( x1 ? x2 ) 2 ] ? ? ?x2

( 式中,x1 ? x1 ) ? ? ( x1 ) 和 ( x2 ? x2 ) ? ? ( x2 ) 一般都是小量值,如忽
*

*

略高阶小量,则上式可简化为
* 1 * 2

?f * ?f * f ( x1 , x2 ) ? f ( x , x ) ? ( ) ? ? ( x1 ) ? ( ) ? ? ( x2 ) ?x1 ?x2

?f * ?f * ? ( y) ? y ? y* ? f ( x1 , x2 ) ? f ( x1*, x2 *) ? ( ) ? ? ( x1 ) ? ( ) ? ? ( x2 ) (1.7.1) ?x1 ?x2
?f * ?f * * * ) 和( ) 分别是 x1和 x 2 对 y * ? 式中, ( x1 ) 和前面? ( x2 ) 的系数 ( ?x1 ?x2 ? 的绝对误差增长因子,它们分别表示绝对误差 ( x1 ) 和 ? ( x2 ) 经过传播

因此,y * 的绝对误差为

y *的相对误差: 后增大或缩小的倍数。 由(1.7.1)可得出

? r* ( y ) ?
?
* r

? ( y)
y*
* 1 *

?(

?f * ? ( x1 ) ?f * ? ( x2 ) ) ?( ) ?x1 y* ?x2 y*
* 2 *

x ?f * * x ?f * * ( ) ? ? r ( x1 ) ? ( ) ? ? r ( x2 ) y ?x1 y ?x2
* r

(1.7.2)

* * x2 ?f * * x1 ?f * ? ( x1 ) 和 ? ( x2 ) 前面的系数 * ( ) 和 * ( ) 分别是 x1 式中, y ?x2 y ?x1 * * * * 和 x2 对 y 的相对误差增长因子,它们分别表示相对误差? r ( x1 ) 和? r ( x2 )

经过传播后增大或缩小的倍数。 例1.7.1 用电表测得一个电阻两端的电压和流过的电流范围分别为
V ? 200 ? 2(伏特)和 I ? 10 ? 0.1(安培),求这个电阻的阻值 R ,并估算

其绝对误差和相对误差。

解 由欧姆定律,有

R?

V I
220 R ? ? 22(欧姆) 10
*

由(1.7.1)可计算 R* 的绝对误差:

?R * ?R * 1 V* ? ( R) ? ( ) ? ? (V ) ? ( ) ? ? ( I ) ? * ? ? (V ) ? 2 ? ? ( I ) ?V ?I I I* ? ?
; (安) 令 V * ? 220(伏) ,? (V ) ? (伏) I ? 10* (安) ? ( I ) ? 0.1 2 ,

将它们带入上式,即可估算出的绝对误差:

1 V* 1 220 ? ( R) ? * ? ? (V ) ? * 2 ? ? ( I ) ? ? 2 ? ? 0.1 ? 0.42 2 I (I ) 10 (10)
? ( R) ?
* r

? ( R)
R*

0.42 ? ? 0.0191 ? 1.91% 22

f ( x1 , x2 ?, xn ) * * * 中,只要将函数 y ? f ( x1 , x2 ?, xn ) 在点 ( x1 , x2 ? , xn ) 处作泰勒展开, 并略去其中的 ? ( x1 ),? ( x2 ),?, ? ( xn ) 等小量的高阶项,即可得到函数的
(1.7.1)和(1.7.2)可推广到更为一般的多元函数 近似值的绝对误差和相对误差的估算式分别为: n ? ?f ? ? ( y ) ? ? ? ( )* ? ? ( xi ) ? i ?1 ? ?xi ? 和
? xi* ?f * * ? ? ( y) ? ? ? * ( ) ? ? r ( xi ) ? ?xi i ?1 ? y ?
n * r

(1.7.3)

(1.7.4)

?f * xi* ?f * 上两式中的各项 ( ) 和 * ( ) (i ? 1, 2,? , n) 分别为各个 xi* (i ? 1,2,?, n) y ?xi ?xi
对的绝对误差和相对误差的增长因子。 从(1.7.3)和(1.7.4)可知,误差增长因子的绝对值很大时,数据误

差在运算中传播后,可能会造成结果的很大误差。凡原始数据的微小变化可
能引起结果的很大变化的这类问题,称为病态问题或坏条件问题。

1.7.2 误差在算术运算中的传播
可以利用(1.7.3) 和(1.7.4)对算术运算中数据误差传播规律

作一具体分析。

(1)加,减运算
由(1.7.3) 和(1.7.4)有


? n ? n ? ? ? xi ? ? ? ? ( xi ) ? i ?1 ? i ?1
n ? n ? ? ? ? xi ? ? ? i ? i ?1 ? * r

(1.7.5) (1.7.6)

xi*

?x
i ?1

n

* i

由(1.7.5)可知:近似值之和的绝对误差等于各近似值绝对误差的 代数和。两数 x2 和 x1 相减,由(1.7.6)有
* x1* * x2 * ? ? x1 ? x2 ? ? * * ? r ? x1 ? ? * * ? r ? x2 ? x1 ? x2 x1 ? x2 * r



? r* ? x1 ? x2 ?

* x1* x2 ? * * ? ? r* ? x1 ? ? * * ? ? r* ? x2 ? x1 ? x2 x1 ? x2

* * 当 x1 ? x2 ,即大小接近的两个同号近似值相减时,由上
* 式可知,这时 ? r ? x1 ? x2 ? 可能会很大,说明计算结果的有效

数字将严重丢失,计算精度很低。

因此在实际计算中,应尽量设法避开相近数的相减。当实
在无法避免时,可用变换计算公式的办法来解决。

例1.7.2 当要计算

3.01 ? 3,结果精确到第五位数字时,至少取到

3.01 ? 1.7349352 和 3 ? 1.7320508 ,这样 3.01 ? 3 ? 2.8844 ?10?3
才能达到具有五位有效数字的要求。如果变换算式:

3.01 ? 3 0.01 3.01 ? 3 ? ? ? 2.8843 ?10?3 3.01 ? 3 1.7349 ? 1.7321
也能达到结果具有五位有效数字的要求,而这时 3.01和 3 所需的有 效位数只要五位,远比直接相减所需有效位数(八位)要少。 例1.7.3 恒等式

cos 当 x 很小时, x ? 1 ,如要求 ? cos x 的值,可利用三角 1

?x? 1 ? cos x ? 2sin ? ? ?2?
2

进行公式变换后再来计算。同理,也可把 cos x 展开成泰勒级数后,按

x2 x4 1 ? cos x ? ? ?? 2! 4!
来进行计算。这两种算法都避开了两个相近数相减的不利情况。

(2)乘法运算
由(1.7.3)及(1.7.4)有



?? n ? ? ? ? ? ? ? xi ? ? ? ?? ? x* ? ? ? xi ? ? ?? j ?1 j ? ? ? i ?1 ? i ?1 ?? ? ? ? ?? j ? i ?
n n

(1.7.7)

? n ? n * ? ? ? xi ? ? ? ? r ? xi ? ? i ?1 ? i ?1
* r

(1.7.8)

因此,近似值之积的相对误差等于相乘各因子的相对误差的代数和。
? n 当乘数的绝对值很大时,乘积的绝对值误差 ? ? ? xi ? ? ? i ?1 ?

可能会很大,因此

也应设法避免。

(3)除法运算
由(1.7.3)及(1.7.4)有
* * ? x1 ? 1 x1 x1 * ? ? ? ? * ? ? x1 ? ? ? ? x2 ? ? * [? r ? x1 ? ? ? r* ? x2 ?] * 2 x2 ? x2 x2 ? ? x2 ?

(1.7.9)



? r* ?

? x1 ? ? ? r* ? x1 ? ? ? r* ? x2 ? ? x2 ? ?

(1.7.10)

由(1.7.10)可知,两近似值之商的相对误差等于被除数的相对 误差与除数的相对误差之差。

又由(1.7.9)可知,当除数 x2 的绝对值很小,接近于零时,商
的绝对误差 ? ? 1 ? 可能会很大,甚至造成计算机的“溢出”错 ? x2 ? 误故应设法避免让绝对值太小的数作为除数。
? x ?

*

(4)乘方及开方运算
由(1.7.3)及(1.7.4)有

? ?x


p

? ? p?x ?
*

p ?1

? ? x?

(1.7.11) (1.7.12)

? r* ? x p ? ? p? r* ? x ?

由(1.7.12)可知,乘方运算将使结果的相对误差增大为原值 x 的

p(乘方的方次数)倍,降低了精度;开方运算则使结果的相对误差缩
小为原值 x 的
1 ( q

q 为开方的方次数),精度得到提高。

综上分析可知,大小相近的同号数相减,乘数的绝对值很大,以及
除数接近于零等,在数值计算中都应设法避免。

1.7.3 对1.3.1中算例的误差分析
应用上述误差估计的公式,可对1.3.1中提出的算例中的各种 算式作出误差估计和分析,从而可以比较出它们的优劣来。见结 果下表1.7.1。
表1.7.1

序号
1 2 3 4

近似值
7 ? 1 ? 0.4 5
?7 ? ? ? 1? ? 0.00409 ?5 ?
6

真值

绝对误差

相对误差
0.0355=3.55%
6×0.0355=21.3%

?

2 ?1
2 ?1

?

0.0142

6

0.000955

99 ? 70 ?
1
? ? ? 1 ? ? ? ? 7 ? ?1? ? ? 5 ?

7 ?1 5

99 ? 70 2
1 2 ?1
? ? ? ? ? 2 ?1? 1 1
6

? 0.995

? 0.995 ? ?99.5%
? 0.00589 ? ?0.589%

7 ?1 5 6

? 0.416667

? 0.00245
? 0.000182

? 0.00523278

? 6 ? 0.00589 ? ?3.53%

1 7 99 ? 70 ? 5

? 0.00507614

99 ? 70

2

? 0.0000255 ? 0.0502 ? ?0.502%

§8 算法的相对稳定性
通过前面对误差传播规律的分析和对1.3算例的剖析,可知同一问题 当选用不同的算法时,它们所得到的结果有时会相差很大,这是因为运 算的舍入误差在运算过程中的传播常随算法而异。凡一种算法的计算结 果受舍入误差的影响小者称它为数值稳定的算法。下面再通过其他一些 例子来进一步说明算法稳定性的概念。

解方程 x 2 ? 109 ? 1 x ? 109 ? 0 解 由韦达定理可知,此精确解为 x1 ? 109 , x2 ? 1 例1.8.1 如果利用求根公式

?

?

(1.8.1)

?b ? b 2 ? 4ac x1,2 ? 2a

(1.8.2)

来编制计算机程序,在字长为8基底为10的计算机上进行运算, 则由于计算机实际上采用的是规格化浮点数的运算, 这时

?b ? 109 ? 1 ? 0.1?1010 ? 0.0000000001?1010
的第二项最后两位数“01”,由于计算机字长的限制,在机器上表示 ? 不出来,故在计算机对其舍入运算(用 标记)时

?b?0.1?1010 ? 0.0000000001?1010 ? 0.1?1010 ? 109
b ? 4ac ? ? ? ?109 ? 1?? ? 4 ?109 ? 109 ? ?
2 2

?

?b ? b 2 ? 4ac 109 ? 109 x1 ? ? ? 109 2a 2

?b ? b 2 ? 4ac 109 ? 109 x2 ? ? ?0 2a 2

这样算出的根显然是严重失真的( ? 精确解 x2 ? 1 ),这说明直接利用 (1.8.2)求解方程(1.8.1)是不稳定的。其原因是在于当计算机进行加减运算时 要对阶舍入计算,实际上受到机器字长的限制,在计算 ?b 时,绝对值小的数(1) 2 4 被绝对值大的数( 109 )“淹没”了,在计算 b 2 ? 4ac 时, ?109 被?? ?109 ? 1?? ? ? “淹没”了;这些相对小的数被“淹没”后就无法发挥其应有的影响,由此带来误 差,造成计算结果的严重失真。同样道理,当多个数在计算机中相加时,最好从其 中绝对值最小的数到绝对值最大的数依次相加,可使和的误差减小。这时,如要提 高计算的数值稳定性,必须改进算法。 在此例中,由于算出的根是可靠的,故可利用根与系数的关系式 来计算 x , 有
2

c 1 109 x2 ? ? ? ?1 9 a x1 1?10

c x1 ? x2 ? a

所得结果很好。这说明第二种算法有较好的数值稳定性(注意在利用根与系数 关系式求第二个根时,必须先算出绝对值较大的一个根,然后再求另一个根,才能 得到精度较高的结果)。

例1.8.2 试计算积分

En ? ? xne x?1dx(n ? 1, 2,?)
0

1

解 由分部积分可得

En ? x e
因此有递推公式

n x ?1

1 0

? n ? x n ?1e x ?1dx
0

1

En ? 1 ? nEn?1 (n ? 2,3,?)

1 E1 ? e
用上面的递推公式,在字长为6,基底为10的计算机上,从E1 出发计算前几个积分值,其结果如表1.8.1。

表1.8.1

k
1 2 3 4 5 6 7 8 9

0.367879 0.264242 0.207274 0.170904 0.145480 0.127120 0.110160 0.118720 -0.068480

Ek

被积函数 x n e x ?1 在积分限区间 (0,1) 内都是正值,积分值 E9 取 三位有效数字的精确结果为0.0916,但上表中 E9 =-0.068480却是负 值,与0.0916相差很大。怎么会出现这种现象?可分析如下。 由于在计算时有舍入误差约为

? ? 4.412 ?10?7

且考虑以后的计算都不再另有舍入误差。此对后面各项计算的影响为

E2 ? 1 ? 2( E1 ? ? ) ? 1 ? 2 E1 ? 2? ? 1 ? 2 E1 ? 2!?
E3 ? 1 ? 3(1 ? 2 E1 ? 2!? ) ? 1 ? 3(1 ? 2 E1 ? 3!? )
E4 ? 1 ? 4[1 ? 3(1 ? 2 E1 ) ? 3!? ] ? 1 ? 4[1 ? 3(1 ? 2 E 1)] ? 4!?

E9 ? 1 ? 9 ?1 ? 8 ???? ? ? 9!? ? ?

?

这样,算到时产生的误差为 9!? ? 9!? 4.412 ?10?7 ? 0.6101 这就是一个不小的数值了。 可以改进算法来提高此例的数值稳定性,即将递推公式改写为

En ?1 ?

1 ? En n

从后向前递推计算时, n 的误差下降为原来的 1 ,因此只要n E n 取得足够大,误差逐次下降,其影响就会越来越小。由

1 En ? ? x e dx ? ? x dx ? 0 0 n ?1
1 n x ?1 1 3

可知: 当 n ?? 时 En ? 0 。因此 E20 可取作为初始值进行递推计算。 由于 E20 ?
1 1 ? ? 0.0024 ,计算 E 时误差已下降到 4 ?10?8 ,结果如表1.8.2。 15 21 20

1 1 ,故 E20 ? 0 的误差约为 21 。在计算时误差下降到 21

表1.8.2

k
20 19 18 17 16

Ek
0.0000000 0.0500000 0.0500000 0.0527778 0.0557190

15
14 13 12 11

0.0669477
0.0627322 0.0669477 0.0717733 0.0773523

10
9

0.0838771
0.0916123

这样得到的 E9 =0.0916123已经很精确了。可见经过改进后的新算 法具有很好的稳定性。 例1.8.3 对于小的值,计算 e x

?1。

解 如果用 e x ? 1 直接进行计算,其稳定性是很差的,因为两个相近数 相减会严重丢失有效数字,产生很大的误差。因此得采用合适的算法 来保证计算的数值稳定性。可将 e x 在点 x ? 0 附近展开成幂级数:

则可得

x 2 x3 ex ? 1 ? x ? ? ?? 2! 3!
? ? x x2 e ? 1 ? x ?1 ? ? ? ? ? ? 2! 3! ?
x

按上式计算就有很好的数值稳定性。

通过以上这些例子,可以知道算法的数值稳定性对于数值计算的重要 性了。如无足够的稳定性,将会导致计算的最终失败。为了防止误差传播、 积累带来的危害,提高计算的稳定性,将前面分析所得的各种结果归纳起 来,得到数值计算中应注意如下几点: ? (1)选用数值稳定的计算方法,避开不稳定的算式。

? (2)注意简化计算步骤及公式,设法减少运算次数,选用运算次数少的算 式,尤其是乘方幂次要低,乘法和加法的次数要少,以减少舍入误差的积 累,同时也可节约计算机的机时。
例1.8.4 要计算 x255 的值时,如果逐个相乘要做254次乘法,但若写成

x255 ? x ? x2 ? x 4 ? x8 ? x16 ? x32 ? x64 ? x128
则只要做14次乘法运算即可。

?(3)应合理安排运算顺序,防止参与运算的数在数量级相差
悬殊时,“大数”淹没“小数”的现象发生。多个数相加时,最 好从其中绝对值最小的数到绝对值最大的数依次相加;多个数相

乘时,最好从其中有效位数最多的数到有效位数最少的数依次相
乘。

?(4)应避免两相近数相减,可用变换公式的方法来解决。

?(5)绝对值太小的数不宜作为除数。否则产生的误差过大, 甚至会在计算机中造成“溢出”错误。

习 题 1
1.下列各数都是对真值进行四舍五入后得到的近似值,试分别写出它们 的绝对误差限,相对误差限和有效数字的位数:
(1) x1
*
* * x* x* ? 0.024 (2) x2 ? 0.4135 (3) x3 ? 57.50(4) 4 ? 60000 (5) 5 ? 8 ? 105

? 2.如果求? 10 的近似值的相对误差 0.1% ,问 ? 至少应取几位有效数字? 3.为了使 的近似值的相对误差 ,问至少应取几位有效数字? ? 0.1% 11 4.如用级数 来求 的值,为使相对差 ,问至少需取 n ? x ? 10?3 几项? ex ? ? e ?5 n?0 n ! 5.用观测恒星的方法求得某地纬度 (读到秒),问计算 ? sin ? ? ? 45 0?2?? 将有多大误差? 6.正方形的边长约为100厘米,问测量时误差最多只能到多少,才能保 证面积的误差不超过1平方厘米? 7. 已测得直角三角形的斜边 毫米,一直角边 毫米, c ? 58 ? 0.2 a ? 25 ? 0.1 如题7图示。试计算 的近似值,并估算出其绝对误差和相对误差限。

?A

2 8.已知 y ? p( x) ? x ? x ? 1150 x ?

100 x* ? 33 3 * ? 100 ? y ? P ? 33? ,并求 x * 和 y * 计算 y ? P ? ?及 ? 3 ? 的相对误差。

9.求方程 x2 ? 40 x ? 1 ? 0 的两个根,使它们至少具有
四位有效数字(已知 399 ? 19.975 )。

10.设近似数 x 的绝对误差为? ,当分别计算下列两式时,问误
*

差对计算结果的影响如何?
x* ? ? (1) y1 ? 1000
x* ? ? (2) y2 ? 0.001

11.下列各题怎样计算才合理(即计算结果的精度高)? ? (1) 1 ? cos1? (四位函数表求三角函数值); ? (2) ? (3) ? (4)
ln 30 ? 302 ? 1

?

?

(开方用六位函数表);

1 ? cos x sin x

(其中充分小); (其中N充分大);

?

N ?1

N

dx 1 ? x2

12.下面计算的公式中,哪一个算得更准确些?为什么?
(1)已知

x ?? 1 :

1 1? x ? , 1? 2x 1? x 2x2 (b) y ? ; (1 ? 2 x)(1 ? x) (a) y ?

(2)已知

x ?? 1

(a) y ?

2 ? 1 1? x? x ? ? x ? ? x x? ? x? 1 1 ? x? ; x x

,


(b) y ?

(3)已知

x ?? 1

2sin 2 x (a) y ? , x 1 ? cos 2 x : (b) y ? ? ; x

(a) y ? q 2 ( p ? p 2 ? q 2 ),
(4)已知 p ? 0, q ? 0, p ?? q : (b) y ? ? p ?

p2 ? q2 .

13.设 p ? 0, q ? 0, p ?? q ,计算: y ? ? p ?

p2 ? q2

s ? p 2 , t ? s ? q, u ? t , y ? ? p ? u ; 算法(1):
q 算法(2): s ? p , t ? s ? q, u ? t , v ? p ? u , y ? . v
2

试分析上述两种算法的好坏。

14.用四位尾数浮点数计算

1 ? i 2 ,要求分别按递增顺序和按递减顺 i ?1

20

序相加,所得结果不同,为什么?哪个更接近真值?

中南大学数学与统计学院


更多相关文档:

数学建模课件1

数学建模课件1_理学_高等教育_教育专区。第章 线性差分方程 这章我们将要...3 k _1 ? 2 8 26 80 , , ? (极限是 1); , k ? N ,即 0, ,...

数学建模第二章课件

数学建模课件_计算机软件及应用_IT/计算机_专业资料。第章本章学习目的...1 x 对于圆柱形状容器壁上的容积刻度,可以利用圆柱体体积公式: V ? ?D 2 ...

数学模型作业(1-2周)(姜启源第三版)

搜试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 理学...数学模型作业(1-2周)(姜启源第三版)_理学_高等教育_教育专区。数学模型作业...

数学建模课件

49页 1财富值 数学建模课件 63页 免费 数学建模课件 31页 2财富值 数学建模课件第九章 72页 5财富值 数学建模课件 第六章 25页 免费 数学建模课件 第三章 ...

数学建模优化课件

数学建模优化课件 隐藏>> 数学建模的理解 例子: 二、 经典最优化方法 1、微分与极值 2、无约束极值问题 3、约束极值问题 三、无约束优化问题数值解法(向量...

数学建模课件

数学建模课件数学建模课件隐藏>> MATLAB 讲义 第 2 讲 M 文件设计 ■ M 文件介绍 ...1 文件的特点与形式...11 M 文件的特点与形式 命令文件...3...

数学建模课件

数学建模课件数学建模课件隐藏>> MATLAB 讲义 序 ■ MATLAB 简介 ...2121212 ◇3 ◇4 ◇12 ◇3 ◇4 ◇12 ◇3 ◇4...

专题1-2: 数学建模概论

搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 专业资料 自然科学 数学专题1-2: 数学建模概论_数学_自然科学_专业资料 暂无评价|0人阅读|0次下载|...

数学建模上机实验1-2

搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 ...数学模型上机实验 1、生成个从 20111450 至 20111373 的递减维列向量...

数学建模优化课件

数学建模课件--优化模型 48页 免费 数学建模课件(第四章:运... 91页 2下载...第章 线性优化及其应用§1 线性优化问题及其数学模型 ()引例1(生产计划的...
更多相关标签:
数学建模课件 | 高中数学选修2 1课件 | 高一数学必修1课件 | 高中数学选修1 1课件 | 高一数学必修1ppt课件 | 高中数学必修1课件 | 数学选修1 1课件 | 选修2 1数学课件 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com