计算方法(李有法版)第一章课件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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