计算方法(李有法版)第一章课件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章 误差

§1.误差的来源 实际问题——➠建立数学模型—➠确定数值计算方法——➠编制程序上机算出结果

模型误差 截断误差或方法误差 舍入误差

§2. 绝对误差、相对误差与有效数字

(1) 绝对误差与绝对误差限

定义: 绝对误差 x x x e e −==***)( .

近似值------↑ ↑------精确值

通常,由于x 不知道,所以无法得*e ,故估计*e 的上界*ε,即

***||||ε≤−=x x e 或 **ε±=x x .

↑------称为近似值*x 的绝对误差限,简称误差限。

(2) 相对误差与相对误差限

110 ,210021±=±=x x

定义: 相对误差 .)(****

x x x x e x e e r

r −=== 由于x 未知,所以**

*

x e e r ≈; Q **2*****1)(x e x e x e x e −=−,当||**x e 较小时,***x e x e −是**x e 的平方级,可以忽略不计,∴ 取**

*x e e r

=. 与绝对误差类似,只能估计相对误差绝对值的某个上界*r ε,即

**||r

r e ε≤ ↑------近似值*x 的相对误差限,

得(差)。(好),%1010

1|)(| %21002|)(|2*1*=≤=≤x e x e r r .

(3) 有效数字

若近似值*x 的误差不超过某位数字的半个单位,而从该位数字到*x 最左边的那个非零数字(即自左向右看,第一个出现的非零数字)共有n 位,那么这n 位数字都称有效数字,并称*x 具有n 位有效数字。

X XX x L L =*

自左向右看,第一个非零数----↑ ↑-----误差不超过该位数的半个单位 例:L 14159.3==πx ,若取近似值14.3*≈x ,则01.0210015.0|)(|*×≤=L x e ,故*x 具有三位有效数字。

(4) 有效数字、绝对误差、相对误差之间关系如何呢?

一般(*) )1010(10)1(121*−−−×++×+×±=n n m a a a x L 01≠a ,即n a a a ~ ;9~1:21是.9~0 且1)1(*102

1101021||+−−−×=××≤−n m n m x x m m a x a 10)1(||101*1×+≤≤×Q

111121***10211010|

|||||+−+−×=××≤−=∴n m n m r a a x x x e 定理1:若用)

(*式表示的近似值*x 具有n 位有效数字,则其相对误差满足不等式 11

*1021||+−×≤n r a e 其中1a 为*x 的第一个非零数字。 反之,有

定理2:若近似值*x 的相对误差满足不等式

11*10)

1(21||+−×+≤n r a e 其中1a 为*x 的第一个非零数字, 则它至少具有n 位有效数字。

证明: ,102

110)1(10)1(21||||||1111***+−+−×=×+⋅×+≤⋅=−n m m n r a a x e x x 所以*x 至少具有n 位有效数字。

§3.估计误差的一个基本方法

以二元函数为例 ,设 ),(21x x f y =的近似值为),(*2*1*x x f y =

),(),()(21*2*1**x x f x x f y y y e −=−=

)(()()()()()()(

)(2**21**12*2*21*1*1*x e x f x e x f x x x f x x x f y e ∂∂+∂∂=−∂∂+−∂∂≈ *

2**2*2*1**1*1*)()()()()(y x e x x f y x e x x f y e r r r ∂∂+∂∂≈ ⇒ |;)(||)(||)(||)(

||)(|2**21**1*x e x f x e x f y e ⋅∂∂+⋅∂∂≤ .||/|)(||)(|||/|)(||)(||)(|*2**2

*1**1*y x e x f y x e x f y e r ⋅∂∂+⋅∂∂≤ 例见P.7。

§4.数值运算中应注意的几个原则

(1)选用数值稳定性好的算法

例见P2. 计算∫−=101dx e x e I x n n ),1,0(L =n 并估计误差。

理论分析: *1*11 ,1−−−=−=n n n n nI I nI I 其中*1−n I 是1−n I 的近似值,

)(!)1(*00*I I n I I n n n −−=−,推出 |!|||*00*I I n I I n n −=−;

这样,当 0||*00≠−I I 且+∞→n 时,则有 +∞→−||*n n I I ;

事实上,;1101<−<<−e I n 故此算法不稳定。

但可以反过来用 )1,,1,( , )1(11L −=−=

−N N n I n I n n 此时,

||1111||111||1||**11**11N n N n n n n n n n I I N

n n n I I n n I I n I I ++++−−−++⋅=−⋅+⋅=−=−L , 若需计算10I ,可取5.020≈I ,则由||201121111||*2020*1010I I I I −⋅=

−L 及,5.0||*2020≤−I I 得到10*10I I ≈ 。就可获得一个稳定的算法

(2) 相近两数应避免相减

理论依据:设, ,***y x z y x z −=−=

|)(||)(|)()()(*****************y e y

x y x e y x x y e y x y x e y x x z e r r r r r −+−≤−−−≈ 当*x 与*y 非常接近时,近似值*x -*y 的相对误差可能变得很大;但有的计算式可化到较稳定的形式, 如:

x

x x x ++=−+111 )

1(11arctan arctan )1(arctan ++=−+x x x x ; 当x 很小时, 22sin 2cos 1

=−x x , )621(12112

L L +++=−+++=−x x x x x e x

, y

x y x ln ln ln =− 。 确实不能转化到具有较好稳定性的表达形式,可选用长字长计算,这样可改善计算精度(以计算工作量为代价)。

(3) 绝对值太小的数不宜作除数(同(2)理)

(4) 避免“大数”吃“小数”

例求:010)(92=+++x x βα的根,其中1,109−=−=βα,假定8位浮点数进行运算。

解: 1 ,10291==x x a

ac b b x 2422,1−±−= 对阶:α−==×=×+×∆×+×=+=−91010101010910101.010********.0101.010

0000000001.0101.0110b 同理:92104=∆−b ac b

相关文档
最新文档