数值分析-第一章
数值分析第一张,引言

模型(móxíng)设计
算法设计
上机计算
问题的解
共四十七页
结束(jiéshù)
其中算法设计是数值(shùzí)分析课程的主要内容.
数值分析课程(kèchéng)研究常见的基本数学问题的数值解法.包含了
数值代数(线性方程组的解法、非线性方程的解法、矩阵求逆、 矩阵特征值计算等)、数值逼近、数值微分与数值积分、常微分方程 及偏微分方程的数值解法等.它的基本理论和研究方法建立在数学 理论基础之上,研究对象是数学问题,因此它是数学的分支之 一.
3! 5! 7!
(2n 1)!
( 1.1)
这是一个无穷级数,我们只能(zhī nénɡ)在适当的地方“截断 ”,使计算量不太大,而精度又能满足要求.
如计算 sin 0.5,取n=3 sin 0.5 0.5 0.53 0.55 0.57 0.479625
3! 5! 7!
共四十七页
结束
据泰勒余项公式(gōngshì),它的误差应 为
• 1998年7月30-31日,美国DOE/FNS 共同联合组织召开了 关于“先进科学计算”的全国会议,会议强调科学模拟的重
要性,希望应用科学模拟来攻克复杂的科学与工程难题。
共四十七页
数值分析是计算数学的一个主要部分,方法解决科学研究或 工程技术问题,一般按如下途径进行:
实际 (shíjì)问
题
程序设计
R (1)9 9
9!
0,
4
R ( / 4)9 3.13 10 7
362880
( 1.2)
可见结果(jiē guǒ)是相当精确的.实际上结果(jiē guǒ)的六位数字都是 正确的.
2 算法常表现(biǎoxiàn)为一个连续过程的离 散化
数值分析(第一章)修正版描述

2
例:为使 x 20 的近似值 x 的相对误差不超过 问查开方表时至少要取几位有效数字? * 解:设近似值 x 取n位有效数字可满足题设要求。 对于 x
1 103 2
*
20, 有x1 4
* r
1 1 1 n 1 n e 10 10 由定理,有 2 x1 8
1 1 1 n 3 10 10 令 8 解得 2
e* x* x * ,则称 * 为x* 近似x的一个绝对 差限,简称误差限。 误 . 实际计算中所要求的绝对误差,是指估计一个 尽可能小的绝对误差限。
*
2.相对误差及相对误差限
0) 的一个近似,称 定义 设 x 是准确值 x( *
*
为 x 近似x的一个绝对误差。在不引起混淆时,简称符 * * 号 er ( x )为 er * * * * 因 e e e x x
(1)有效数字
定义 :设x的近似值 x 有如下标准形式
*
x 10 0.x1x2 xn1 xp 9且x1 0, p n 其中m为整数, xi 0,1,2 ,
*
1 mn e x x 10 如果 2
* *
, * 则称 x 为的具有n位有效数字的近似数. 或称 x* 准确到 10m n 位,其中数字 x1 x2 xn ,分别 * x 被称为 的第一,第二,…第n个有效数字.
*
n
* i *
x * * f 'i ( x1 , x2 , i 1 y
n
* i *
x )er ( x )
* n
* i
绝对误差限和相对误差限满足传播不等式:
( y ) f 'i ( x , x ,
《数值分析》杨大地-答案(第一章)精选全文完整版

可编辑修改精选全文完整版数值分析-第1章1.填空题(1)为便于算法在计算机上实现,必须将一个数学问题分解为有限次的四则运算;(2)在数值计算中为避免损失有效数字,尽量避免两个相近数作减法运算;为避免误差的扩大,也尽量避免分母的绝对值远小于分子的绝对值;(3)误差有四大来源,数值分析主要处理其中的截断误差和舍入误差;(4)有效数字越多,相对误差越小;2. 用例1.4的算法计算10,迭代3次,计算结果保留4位有效数字。
//见P4解题思路:假定x0是√a的一个近似值,x0>0,则ax0也是√a的一个近似值,且x0和ax0两个近似值必有一个大于√a,另一个小于√a,设想它们的平均值应为√a的更好的近似值,于是x k+1=1 2(x k+ax k),k=0,1,2,……解:取x0=3,按算法x k+1=12(x k+ax k),k=0,1,2,……迭代3次有:x1=12(x0+10x0)=(3+103)≈3.167x2=12(x1+10x1)=(3.167+103.167)≈3.162x3=12(x2+10x2)=(3.162+103.162)≈3.1623. 推导开平方运算的误差限公式,并说明什么情况下结果误差不大于自变量误差。
//见P8解:已知f(x)=√x,设x∗是准确值,令x是x∗的一个近似值,则相对误差e(f(x))=f(x)−f(x∗),由Taylor公式f(x∗)=f(x)0! +f′(x)1!(x∗−x)+f"(x)2!(x∗−x)2+⋯+f n(x)n!(x∗−x)n+R n(x)其中,R n(x)=f n+1(ξ)(n+1)!(x∗−x)n+1将f(x∗)展开分析有:f(x∗)=√x2√x x∗−x)+⋯+f n(ξ)n!(x∗−x)n+R n(x)∴e(f(x))=f(x)−f(x∗)=− (2√x x∗−x)+⋯+f n(ξ)n!(x∗−x)n+R n(x))∴|e(f(x))|≤ ε(f(x))≤|2√x |ε(x)+⋯+|f n(ξ)n!εn(x)|+|R n(x)|忽略二阶以上无穷小,可得f(x)的误差限公式为ε(f(x))≈2√x(x)。
数值分析第一章

截断误差:
Rn(x)
f (n1)()xn1
(n1)!
舍入误差:机器字长有限
R 3 .14 0 1 .05 09 0 .数0 制转0 换、2 机器6 数.
二、误差、有效数字
定义1 绝对误差,简称误差: e*x* x,其x* 中 为准 x的 确 近 .值 似
误差限:*|e*|的一个上 . 界
数值分析
第1章 绪论
§1 数值分析的研究对象与特点
一、什么是数值分析
数值分析是计算数学的一个主要部分,计算数学是数 学科学的一个分支,它研究用计算机求解各种数学问题 的数值计算方法及其理论与软件实现.
实际问题→数学模型→数值计算方法 →程序设计→上机计算求出结果
先看两个例子。 例1 求方程 x2=2sinx,在区间(1,2)内的根。 理论上可知显然找不出根的解析式,即无法求出
而 按 (2.相 1 ), m 对 3 ,误 n3 差绝 .2限对 相误 同 2 *差 : 1 21限 05. r*0.005 /90..80000/00.0050.980
定理1设近似x*数 表示为
x*10m(a1a2101al 10(l1)) (2.)1
一般 Cp10认为是病 . 态 其他计算问题条 也件 要 ,考 数 考虑虑是否 . 病态
二、算法的数值稳定性
考虑初始数据误差在计算中的传播问题.
例 5计In算 e 10 1xnexdx,n0,1 , ,并估.计误
In 1 n n 1 I ,n 1 ,2 , , I01e1. (A) II0 n 1 0.6nI3n ,1 2,n11,2, . (B)II9n** 10.01n(168,In*4),n9,8, ( ,1I9. 1 2(110e110)0.06)8 定义一3个算法若输 误入 差 ,而数 在据 计有 算过 误差不,则 增称 长此算法是 的,否 数则 值是 稳不 定. 稳
数值分析第一章实验 误差分析

1. 计算11n x nI ex e dx -=⎰(n=0,1,2,……)并估计误差。
由分部积分可得计算n I 的递推公式111101,1,2,e 1.nn x I nI n I e dx e ---=-=⎧⎪⎨==-⎪⎩⎰……. (1) 若计算出0I ,代入(1)式,可逐次求出 12,,I I …的值。
要算出0I 就要先算出1e -,若用泰勒多项式展开部分和21(1)(1)1(1),2!!ke k ---≈+-+++…并取k=7,用4位小数计算,则得10.3679e -≈,截断误差14711|0.3679|108!4R e --=-≤<⨯.计算过程中小数点后第5位的数字按四舍五入原则舍入,由此产生的舍入误差这里先不讨论。
当初值取为000.6321I I ≈= 时,用(1)式递推的计算公式为 010.6321A 1nn I I nI -⎧=⎨=-⎩ (),n=1,2,…。
计算结果见表1的n I 列。
用0I 近似0I 产生的误差000E I I =- 就是初值误差,它对后面计算结果是有影响的.表1 计算结果从表1中看到8I 出现负值,这与一切0n I >相矛盾。
实际上,由积分估值得111110001011(im )(max)11x n n n x x e e m e x dx I e x dx n n ---≤≤≤≤=<<=++⎰⎰ (2) 因此,当n 较大时,用n I 近似n I 显然是不正确的。
这里计算公式与每步计算都是正确的,那么是什么原因合计算结果出现错误呢?主要就是初值0I 有误差000E I I =- ,由此引起以后各步计算的误差n n nE I I =- 满足关系1,1,2,n n E nE n -=-=….由此容易推得0(1)!n n E n E =-,这说明0I 有误差0E ,则n I 就是0E 的n!倍误差。
例如,n=8,若401||102E -=⨯,则80||8!||2E E =⨯>。
数值分析第一章1.3范数

A R ,令 A max X 0
nn
AX X
r
r
, ( r 1, 2, ),
r 则 为 与n 相容的范数,记为 。 A r Rn
称其为由向量范数诱导的矩阵空间的算子范数。
证明:1、向量范数与其诱导的矩阵空间的算子范数相容 证、 A R nn、Y R n , Y 0,
2
二、矩阵的范数 定义2 定义映射 :R nn R, A A ,若满足: 1、 A
0, A 0 当且仅当
A 0;
2、 aA a A , a R, A R nn ;
nn 3、 A B A B , AB A . B , A, B R ,
n
2
2 2 x12 x 2 x n 0;
2
i1 axi
n
2
a
xi2 a X 2 ; i 1
n
(3)易见,X
2
X T X , 由Cauchy-Schwarz不等式
( X T Y ) 2 ( X T X )(Y T Y )
X Y
2 2
(X Y) (X Y) X
2、(齐次性).任意 a R ,有 aX a X ; 3、(三角不等式). X Y X Y 。 将向量模的概念加以推广,便得到向量范数概念。
定义1 定义映射 ① ② ③
: R n ,若满足条件: R, X X
X 0;
X 0当且仅当 , X 0
aX a X , a R, X R n ;
X Y X Y , X ,Y Rn ,
n 则称其为 R上的一种范数。
最常用的如下三种向量范数: X x1 , x2 ,, xn T R n
数值分析_第1章

x * 的第一位非零数字为止的所有数字
称为 有效数字。 x * 的有效数字。
(关心有效数字的位数) 关心有效数字的位数)
数学语言描述: 数学语言描述:
设 x = ± 0 .a 1 a 2 L × 10 m ,
x * = ± 0 .a1 a 2 L a n × 10 m
= ± ( a 1 × 10 − 1 + a 2 × பைடு நூலகம்0 − 2 L a n × 10 − n ) × 10 m ,
1 而 ε r ( x) = , 8726
y* = 0.8727 × 10 99 .
1 ε r ( y) = . 8726
ε ( x) = 0.0001×10 −99 , ε ( y ) = 0.0001×1099 .
三.有效数字 如果近似值
x * 的绝对误差限不超过
的某一位上的半个单位, x * 的某一位上的半个单位,则从该位起到
取 x * = xR = sR ×10 P , 则xR为 x 的舍入, xR ∈ F 且
1 1 −t P ×10 ×10 ×10−t xR − x 2 1 1−t 1 −t 2 ≤ = ≤ ×10 ×10 = ×10 . P x s ×10 s 2 2
p -1
s = 0 . d1 d 2 L d t L
1 (19) ( ≤ 10) s (20)
d1 ≠ 0 , d i = 0,1, L 9, i = 2, 3, L ,
0 . d1d 2 L d t 1.舍入法 : sR = 0 . d1d 2 L d t + 10 −t
0 ≤ d t +1 ≤ 4 < 5 1 d t +1 ≥ 5 = ×10 2
数值分析原理课件第一章

第一章 绪 论本章以误差为主线,介绍了计算方法课程的特点,并概略描述了与算法相关的基本概念,如收敛性、稳定性,其次给出了误差的度量方法以及误差的传播规律,最后,结合数值实验指出了算法设计时应注意的问题.§1.1 引 言计算方法以科学与工程等领域所建立的数学模型为求解对象,目的是在有限的时间段内利用有限的计算工具计算出模型的有效解答。
由于科学与工程问题的多样性和复杂性,所建立的数学模型也是各种各样的、复杂的. 复杂性表现在如下几个方面:求解系统的规模很大,多种因素之间的非线性耦合,海量的数据处理等等,这样就使得在其它课程中学到的分析求解方法因计算量庞大而不能得到计算结果,且更多的复杂数学模型没有分析求解方法. 这门课程则是针对从各种各样的数学模型中抽象出或转化出的典型问题,介绍有效的串行求解算法,它们包括(1)非线性方程的近似求解方法;(2)线性代数方程组的求解方法;(3)函数的插值近似和数据的拟合近似;(4)积分和微分的近似计算方法;(5)常微分方程初值问题的数值解法;(6)优化问题的近似解法;等等从如上内容可以看出,计算方法的显著特点之一是“近似”. 之所以要进行近似计算,这与我们使用的工具、追求的目标、以及参与计算的数据来源等因素有关.计算机只能处理有限数据,只能区分、存储有限信息,而实数包含有无穷多个数据,这样,当把原始数据、中间数据、以及最终计算结果用机器数表示时就不可避免的引入了误差,称之为舍入误差.我们需要在有限的时间段内得到运算结果,就需要将无穷的计算过程截断,从而产生截断误差. 如的计算是无穷过程,当用作为的 +++=!21!111e !1!21!111n e n ++++= e 近似时,则需要进行有限过程的计算,但产生了截断误差.e e n - 当用计算机计算时,因为舍入误差的存在,我们也只能得到的近似值,也就是n e n e *e 说最终用近似,该近似值既包含有舍入误差,也包含有截断误差.*e e 当参与计算的原始数据是从仪器中观测得来时,也不可避免得有观测误差.由于这些误差的大量存在,我们得到的只能是近似结果,进而对这些结果的“可靠性”进行分析就是必须的,它成为计算方法的第二个显著特点. 可靠性分析包括原问题的适定性和算法的收敛性、稳定性.所谓适定性问题是指解存在、惟一,且解对原始数据具有连续依赖性的问题. 对于非适定问题的求解,通常需要作特殊的预处理,然后才能做数值计算. 在这里,如无特殊说明,都是对适定的问题进行求解.对于给定的算法,若有限步内得不到精确解,则需研究其收敛性. 收敛性是研究当允许计算时间越来越长时,是否能够得到越来越可靠的结果,也就是研究截断误差是否能够趋于零.对于给定的算法,稳定性分析是指随着计算过程的逐步向前推进,研究观测误差、舍入对于同一类模型问题的求解算法可能不止一种,常希望从中选出高效可靠的求解算法. 如我国南宋时期著名的数学家秦九韶就提出求n 次多项式值0111a x a x a x a n n nn ++++-- 的如下快速算法;n a s =; k n a t -=t sx s +=),,2,1(n k =它通过n 次乘法和n 次加法就计算出了任意n 次多项式的值. 再如幂函数可以通过如下64x 快速算法计算出其值;x s =;循环6次s s s ⋅=如上算法仅用了6次乘法运算,就得到运算结果.算法最终需要在计算机上运行相应程序,才能得到结果,这样就要关注算法的时间复杂度(计算机运行程序所需时间的度量)、空间复杂度(程序、数据对存储空间需求的度量)和逻辑复杂度(关联程序的开发周期、可维护性以及可扩展性). 事实上,每一种算法都有自己的局限性和优点,仅仅理论分析是很不够的,大量的实际计算也非常重要,结合理论分析以及相当的数值算例结果才有可能选择出适合自己关心问题的有效求解算法. 也正因如此,只有理论分析结合实际计算才能真正把握准算法.§1.2 误差的度量与传播一、误差的度量误差的度量方式有绝对误差、相对误差和有效数字.定义1.1 用作为量的近似,则称为近似值的绝对误差.*x x )(:**x e x x =-*x 由于量x 的真值通常未知,所以绝对误差不能依据定义求得,但根据测量工具或计算情况,可以估计出绝对误差绝对值的一个较小上界,即有ε (1.1)ε≤-=x x x e **)(称正数为近似值的绝对误差限,简称误差. 这样得到不等式ε*x εε+≤≤-**x x x 工程中常用ε±=*x x 表示近似值的精度或真值x 所在的范围.*x 误差是有量纲的,所以仅误差数值的大小不足以刻划近似的准确程度. 如量 (1.2)m m cm s μ50001230000005.023.15.0123±=±=±=为此,我们需要引入相对误差定义1.2 用作为量的近似,称为近似值的相对误差. 当0*≠x x )(:**x e xxx r =-*x 是x 的较好近似时,也可以用如下公式计算相对误差*x (1.3)***)(xx x x e r -= 显然,相对误差是一个无量纲量,它不随使用单位变化. 如式(1.2)中的量s 的近似,无论使用何种单位,它的相对误差都是同一个值.同样地,因为量x 的真值未知,我们需要引入近似值的相对误差限,它是相*x )(*x r ε对误差绝对值的较小上界. 结合式(1.1)和(1.3),相对误差限可通过绝对误差限除以近似*x 值的绝对值得到,即(1.4)***)()(xx x r εε=为给出近似数的一种表示法,使之既能表示其大小,又能体现其精确程度,需引入有效数字以及有效数的概念.定义1.3 设量的近似值有如下标准形式x *x p n ma a a a x 21*.010⨯±= (1.5)()pm p n m n m m a a a a ----⨯++⨯++⨯+⨯±101010102211 =其中且,m 为近似值的量级. 如果使不等式}9,,1,0{}{1 ⊂=pi i a 01≠a (1.6)n m x x -⨯≤-1021*成立的最大整数为n ,则称近似值具有n 位有效数字,它们分别是、、… 和 . *x 1a 2a n a 特别地,如果有,即最后一位数字也是有效数字,则称是有效数.p n =*x 从定义可以看出,近似数是有效数的充分必要条件是末位数字所在位置的单位一半是绝对误差限. 利用该定义也可以证明,对真值进行“四舍五入”得到的是有效数. 对于有效数,有效数字的位数等于从第一位非零数字开始算起,该近似数具有的位数. 注意,不能给有效数的末位之后随意添加零,否则就改变了它的精度.例1.1 设量,其近似值,,. 试回答这三个近π=x 141.3*1=x 142.3*2=x 722*3=x 似值分别有几位有效数字,它们是有效数吗?解 这三个近似值的量级,因为有1=m 312*110211021005.000059.0--⨯=⨯=≤=- x x 413*2102110210005.00004.0--⨯=⨯=≤=- x x571428571428.3*3=x 312*310211021005.0001.0--⨯=⨯=≤=- x x 所以和都有3位有效数字,但不是有效数. 具有4位有效数字,是有效数.*1x *3x *2x 二、误差的传播这里仅介绍初值误差传播,即假设自变量带有误差,函数值的计算不引入新的误差. 对于函数有近似值,利用在点处),,,(21n x x x f y =),,,(**2*1*n x x x f y =),,,(**2*1n x x x 的泰勒公式(Taylor Formula),可以得到 )(),,,()(*1**2*1**i i ni n i x x x x xf y y y e -≈-=∑=(1.7))(),,,(*1**2*1i ni n i x e x x xf ∑== 其中,是的近似值,是的绝对误差. 式(1.7)表明函ii x f f ∂∂=:*i x i x )(*i x e *i x ),,2,1(n i =数值的绝对误差近似等于自变量绝对误差的线性组合,组合系数为相应的偏导数值. 从式(1.7)也可以推得如下函数值的相对误差传播近似计算公式 (1.8))(),,,()(***1**2*1*i r i ni ni r x e yx x x x f y e ∑=≈对于一元函数,从式(1.7)和(1.8)可得到如下初值误差传播近似计算公式)(x f y = (1.9))()()(***x e x f y e '≈ (1.10))()()(*****x e yx x f y e r r '≈式(1.9)表明,当导数值的绝对值很大时,即使自变量的绝对误差比较小,函数值的绝对误差也可能很大.例1.2 试建立函数的绝对误差(限)、相对误差n n x x x x x x f y +++== 2121),,,(的近似传播公式,以及时的相对误差限传播公式.{}ni i x 1*0=> 解 由公式(1.7)和(1.8)可分别推得和的绝对误差、相对误差传播公式如下(1.11)∑∑==≈ni i ini nix e x e x x xf y e 1**1**2*1*)()(),,,()(= (1.12)∑∑==≈ni i r i i r i ni ni r x e yx x e y x x x x f y e 1******1**2*1*)()(),,,()(= 进而有∑∑∑===≤≤≈ni i n i ini ix x e xe y e 1*1*1**)()()()(ε于是有和的绝对误差限近似传播公式 ∑=≈ni ixy 1**)()(εε当时,由式(1.3)推得相对误差限的近似传播公式{}ni i x 1*=>)(max )(max )(max )()()(*11***11***11****1**i r ni ni i ir n i ni i i r n i ni i r i ni ir x yx x yx x x y x yxy εεεεεε≤≤=≤≤=≤≤====≤=≈∑∑∑∑ 例1.3使用足够长且最小刻度为1mm 的尺子,量得某桌面长的近似值3.1304*=a mm ,宽的近似值mm (数据的最后一位均为估计值). 试求桌子面积近似值的绝8.704*=b 对误差限和相对误差限.解 长和宽的近似值的最后一位都是估计位,尺子的最小刻度是毫米,故有误差限 mm ,mm 5.0)(*=a ε5.0)(*=b ε面积,由式(1.7)得到近似值的绝对误差近似为ab S =***b a S = )()()(*****b e a a e b S e +≈进而有绝对误差限 mm 255.10045.03.13045.08.704)()()(*****=⨯+⨯=+≈b a a b S εεε相对误差限 %11.00011.08.7043.130455.1004)()(***=≈⨯=≈S S S r εε§1.3 数值实验与算法性能比较本节通过几个简单算例说明解决同一个问题可以有不同的算法,但算法的性能并不完全相同,他们各自有自己的适用范围,并进而指出算法设计时应该注意的事项. 算例1.1 表达式,在计算过程中保留7位有效数字,研究对不同)1(1111+=+-x x x x 的x ,两种计算公式的计算精度的差异.说明1:Matlab 软件采用IEEE 规定的双精度浮点系统,即64位浮点系统,其中尾数占52位,阶码占10位,尾数以及阶码的符号各占1位. 机器数的相对误差限(机器精度)eps=2-52≈2.220446×10-16,能够表示的数的绝对值在区间(2.2250739×10-308,1.797693×10308)内,该区间内的数能够近似表达,但有舍入误差,能够保留至少15位有效数字. 其原理可参阅参考文献[2, 4].分析算法1: 和算法2: 的误差时,精确解用双精111)(1+-=x x x y )1(1)(2+=x x x y 度的计算结果代替. 我们选取点集中的点作为x ,比较两种方法误差的差异.301}{=i i π 从图1.1可以看出,当x 不是很大时,两种算法的精度相当,但当x 很大时算法2的精度明显高于算法1. 这是因为,当x 很大时,和是相近数,用算法1进行计算时出x 111+x 现相近数相减,相同的有效数字相减后变成零,于是有效数字位数急剧减少,自然相对误差增大. 这一事实也可以从误差传播公式(1.12)分析出. 鉴于此,算法设计时,应该避免相近数相减.在图1.2中我们给出了当x 接近时,两种算法的精度比较,其中变量x 依次取为1-. 从图中可以看出两种方法的相对误差基本上都为,因而二者的精度相当.{}3011=--i iπ710-图1.1 算例1.1中两种算法的相对误差图()+∞→x图1.2 算例1.1中两种算法的精度比较)1(-→x 算例1.2 试用不同位数的浮点数系统求解如下线性方程组⎩⎨⎧=+=+2321200001.02121x x x x 说明2:浮点数系统中的加减法在运算时,首先按较大的阶对齐,其次对尾数实施相应的加减法运算,最后规范化存入计算机.算法1 首先用第一个方程乘以适当的系数加至第二个方程,使得第二个方程的的系1x 数为零,这时可解出;其次将带入第一个方程,进而求得(在第三章中称该方法为高2x 2x 1x 斯消元法). 当用4位和7位尾数的浮点运算实现该算法,分别记之为算法1a 和算法1b . 算法 2 首先交换两个方程的位置,其次按算法1计算未知数 (第三章中称其为选主元的高斯消元法). 当用4位和7位尾数的浮点运算实现该算法,分别记之为算法2a 和算法2b .方程组的精确解为, ,用不同的算法计算出的...25000187.01=x ...49999874.02=x 结果见表1.1.表1.1 对算例1.2用不同算法的计算结果比较算例1.2*1x )(*1x r ε*2x )(*2x r ε算法1a 0.00000.10×1010.50000.25×10-7算法2a 0.25000.75×10-70.50000.25×10-7算法1b 0.26000000.40×10-10.49999870.10×10-6算法2b0.25000200.50×10-80.50000000.25×10-7对于算例1.2,表中的数据表明,当用4位尾数计算时,算法1给出错误的结果,算法2则给出解很好的近似. 这是因为在实现算法1时,需要给第一个方程乘以加00001.0/2-至第二个方程,从而削去第二个方程中的系数,但在计算的系数时需做如下运算1x 2x(1.13)661610000003.0104.0103.0104.03200001.02⨯⨯⨯⨯=+⨯+=-+--对上式用4位尾数进行计算,其结果为. 因为舍入误差,给相对较大的数加以6104.0⨯-相对较小的数时,出现大数“吃掉”小数的现象. 计算右端项时,需做如下运算(1.14)661610000002.0102.0102.0102.02100001.02⨯⨯⨯⨯=+⨯+=-+--同样出现了大数吃小数现象,其结果为. 这样,得到的变形方程组6102.0⨯-⎩⎨⎧⨯-=⨯-⨯=⨯+⨯62612114102.0104.0101.0102.0101.0x x x 中没有原方程组中第二个方程的信息,因而其解远偏离于原方程组的解. 该算法中之所以出现较大数的原因是因为运算,因而算法设计中尽可能避免用绝对值较大的数00001.0/2-除以绝对值较小的数. 其实当分子的量级远远大于分母的量级时,除法运算还会导致溢出,计算机终止运行.虽从单纯的一步计算来看,大数吃掉小数,只是精度有所损失,但多次的大数吃小数,累计起来可能带来巨大的误差,甚至导致错误. 例如在算法1a 中出现了两次大数吃小数现象,带来严重的后果. 因而尽可能避免大数吃小数的出现在算法设计中也是非常必要的. 当用较多的尾数位数进行计算,舍入误差减小,算法1和2的结果都有所改善,算法1的改进幅度更大些.算例1.3 计算积分有递推公式,已知⎰+=1055dx x x I n ),2,1(511 =-=-n I nI n n . 采用IEEE 双精度浮点数,分别用如下两种算法计算的近似值.56ln 0=I 30I算法1 取的近似值为,按递推公式计算0I 6793950.18232155*0=I *1*51--=n n I nI *30I 算法2 因为,取的近似值为)139(5156)139(611039103939+⨯=<<=+⨯⎰⎰dx x I dx x 39I ,按递推公式计算3333330.004583332001240121*39≈⎪⎭⎫ ⎝⎛+=I ⎪⎭⎫ ⎝⎛-=-**1151n n I n I *30I 算法1和算法2 的计算结果见表1.2. 误差绝对值的对数图见图1.3.表1.2 算例1.3的计算结果算法1算法2n *nI n n I I -*n *nI nn I I -*18.8392e-002 1.9429e-01639 4.5833e-0033.9959e-0042 5.8039e-0029.8532e-016384.2115e-0037.9919e-0053 4.3139e-002 4.9197e-01537 4.4209e-003 1.5984e-0054 3.4306e-002 2.4605e-01436 4.5212e-003 3.1967e-0065 2.8468e-002 1.2304e-01335 4.6513e-003 6.3935e-0076 2.4325e-002 6.1520e-01334 4.7840e-003 1.2787e-007………33 4.9255e-003 2.5574e-00825 1.1740e+001 1.1734e+00132 5.0755e-003 5.1148e-00926-5.8664e+001 5.8670e+00131 5.2349e-003 1.0230e-00927 2.9336e+002 2.9335e+002 305.4046e-003 2.0459e-01028-1.4667e+003 1.4668e+003 297.3338e+0037.3338e+003 30-3.6669e+004 3.6669e+004图1.3 算例1.3用不同算法计算结果的误差绝对值的对数图从表1.2中的计算结果可以看出,算法1随着计算过程的推进,绝对误差几乎不断地以5的倍数增长,即有0*02*221*1*555I I I I I I I I n n n n n n n -≈≈-≈-≈----- 成立. 对于逐步向前推进的算法,若随着过程的进行,相对误差在不断增长,导致产生不可靠的结果,这种算法称之为数值不稳定的算法. 对于算法1绝对误差按5的幂次增长,但真值的绝对值却在不断变小且小于1,相对误差增长的速度快于5的幂次,导致产生错误的结果,因而算法1数值不稳定,不能使用. 而算法2随着计算过程的推进,绝对误差几乎不断地缩小为上一步的1/5,即有m m n m n n n n n n n I I I I I I I I 5/5/5/*22*21*1*++++++-≈≈-≈-≈- 成立. 绝对误差不断变小,真值的绝对值随着过程向前推进却在变大,这样相对误差也越来越小,这样的方法称之为数值稳定的算法. 算法1和算法2的误差对数示意图见图1.3. 这个算例告诉我们应该选用数值稳定的算法.知识结构图⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧⎩⎨⎧⎪⎩⎪⎨⎧⎩⎨⎧算法设计要点数值方法的稳定性数值方法的收敛性算法多元函数一元函数传播有效数字相对误差(限)绝对误差(限)度量截断误差舍入误差误差的产生误差误差与算法习题一1 已知有效数,,. 试给出各个近似值的绝对误105.3*1-=x 4*210125.0⨯=x 010.0*3=x 差限和相对误差限,并指出它们各有几位有效数字.2 证明当近似值是x 的较好近似时,计算相对误差的计算公式和相差一个*x x x x -***xxx -和同阶的无穷小量.2*⎪⎪⎭⎫⎝⎛-x x x 3 设x 的近似值具有如式(1.5)的表示形式,试证明*x 1)若具有n 位有效数字,则相对误差;*x n r a x e -⨯≤11*1021)(2)若相对误差,则至少具有n 位有效数字.n r a x e -⨯+≤11*10)1(21)(*x 4 试建立二元算术运算的绝对误差限传播近似计算公式.5 试建立如下表达式的相对误差限近似传播公式,并针对第1题中数据,求下列各近似值的相对误差限.1) ; 2) ; 3) *3*2*1*1x x x y +=3*2*2x y =*3*2*3/x x y =6若例题1.3中使用的尺子长度是80mm ,最小刻度为1mm ,量得某桌面长的近似值mm ,宽的近似值mm . 试估计桌子长度、宽度的绝对误差限,并3.1304*=a 8.704*=b 求用该近似数据计算出的桌子面积的绝对误差限和相对误差限.7 改变如下计算公式,使其计算结果更为精确.1) 且0,cos 1≠-x xx1<<x 2)1,1ln )1ln()1(ln 1>>--++=⎰+N N N N N xdx N N3) 1,133>>-+x x x 8 (数值试验)试通过分析和数值试验两种手段,比较如下三种计算近似值算法的可靠性.1-e 算法1 ;∑=--≈mn nn e 01!)1( 算法2 ;101!1-=-⎪⎭⎫ ⎝⎛≈∑m n n e算法3 ;101)!(1-=-⎪⎪⎭⎫ ⎝⎛-≈∑m n n m e9 (数值试验)设某应用问题归结为如下递推计算公式 ,,72.280=y 251-=-n n y y,2,1=n 在计算时取为具有5位有效数字的有效数. 试分析近似计算公式的2*c **1*5c y y n n -=-绝对误差传播以及相对误差传播情况,并通过数值实验验证 (准确值可以用IEEE 双精度浮点运算结果代替),该算法可靠可用吗?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、有效数字及其位数
若近似值 x*某位数数值的半个单位是其绝对误差 限, 而从该位数字到x*的最左边的非零数值数位止, 共 有n位数, 则我们称这个近似值 x*具有n位有效数字.
例如, =3.141592···, x*= 3.14的绝对误差 |e(x*)|=
0.00159··· 0.011/2, 即“4”所在的百分位的半个单位 0.011/2 是x*的绝对误差限, 故x*的最左边的非零位 数(个位)“3”到百分位“4”共有三位, 所以x* = 3.14具 有3位有效数字.
《数值分析》绪论
参考书:
[1] 施吉林, 刘淑珍, 陈桂芝. 计算机数值方法. 第一版. 北京:高等教育出版社, 1999. [2] 吴勃英, 王德明, 丁效华, 李道华. 数值分析原理. 第 一版. 北京:科学出版社,2003. [3] 陈传淼. 科学计算概论. 第一版. 北京:科学出版社,
2007. [4] Rainer Kress. Numerical Analysis. New York: Springer-Verlag, 2003.
数值计算方法涉及的基础数学课程较多, 但在本 课程中主要涉及微积分、线性代数、常微分方程等数 学知识.
A
5
第一章 引论
引例
例1: y = arctan5430 – arctan5429的准确值为:
0.0000000339219··· 0.33910–7
但是, 用具有八位舍入功能的计算器直接计算得
y 1.5706122 – 1.5706121 = 0.0000001 = 110–7
A
1
实际问题
否
解释 实际问题
是
结束
抽象
建立数学模型
简化
类方 型法
结果分析 求解计算
应用于实践
A
2
数值分析研究的主要内容:是各类数学问题的近 似解法——数值方法, 是从数学模型(由实际问题产生 的一组解析表达式或原始数据)出发, 寻求在有限步内 可以获得数学问题满足一定精度近似解的运算规则, 这种规则称为算法, 它包括计算公式, 计算方案和整个 计算过程.
A
18
乘法相关的误差公式: 设 f (x1, x2)= x1 x2 . e ( x 1 x 2 ) x 2 e ( x 1 ) x 1 e ( x 2 ) e r ( x 1 x 2 ) e r ( x 1 ) e r ( x 2 ) |e ( x 1 x 2 ) | |e ( x 1 ) | |e ( x 2 ) | |e r ( x 1 x 2 ) | |e r ( x 1 ) | |e r ( x 2 ) |
有效数字位数越多, 近似值的绝对误差和相对误 差就相对越小, 反之亦然.
A
15
§3 误差的传播规律
设x1*, x2*分别为x1, x2的近似值, 函数值 y=f(x1, x2) 的近似值用y*=f (x1*, x2*)表示. 利用函数f (x1, x2)在点 (x1*, x2*)处的二元泰勒展开公式, 对y*的绝对误差和 相对误差进行分析.
实际 问题
建立数 学模型
确定计 算方法
编程 上机
由抽象简 化产生的 模型误差 及参数的 观测误差
由计算方 法本身产 生的截断 误差或称 方法误差
A
计算过 程中产 生的舍 入误差
9
例如用级数
sixn x1x 31x 51x 7 3 ! 5 ! 7 !
的前三项计算 sinx 的近似值, 即取 sixn S 5(x)x3 1 !x35 1 !x5
为1.5708(cm2), 相对误差限为2.7% .
A
22
§4 数值运算中应注意的几个原则
一、选用数值稳定性好的算法
再来看例2的积分问题:
I n e 1 0 1 x n e x dx ( n 0 ,1 ,2 , )
由递推公式 In= 1 – n In–1 (n = 1, 2, …) 可得 In- In*=(-1)n n!(I0- I0*) (n=1, 2, …)
e 1 x n ex|1 0 e 1 0 1 nn 1 x ex dx
1 n n 1 I (n 1 ,2 , ).
如果取 I0 = 1–e–1 = 0.63212056 (八位有效数字).
利用递推公式进行计算得:
n In近似值 n In近似值 n In近似值 0 0.63212056 6 0.12680320 12 0.63289603
对于两个数值
x1=100±2, x2=10±1
近似值x1*=100的绝对误差限*(x1*)=2是近似值 x2*=10的绝对误差限*(x2*)=1的两倍. 但是,近似值100
的偏差不超过2, 而近似值10的偏差不超过1. 哪个近似
值的精度好呢?
一个近似值的精度不仅与绝对误差的大小有关, 还与精确值的大小有关. 为此我们需要引入相对误差 的概念.
3. 高效性: 它应该具有计算量小、占用存储单元 少、计算过程简单、规律性强等优点.
A
4
《数值分析》课程主要介绍几类数学问题的经典 算法. 在学习中既要重视实际应用, 又要重视有关理论, 必须注意理解算法的设计原理和处理技巧, 重视基本 概念和理论——误差分析, 收敛性与稳定性. 认真完成 习题中的理论证明和计算方面的相关问题, 手算与上 机计算相结合, 同时注意培养利用计算机进行科学计 算的能力.
设x的近似值为x*, 则称x*的绝对误差e(x*)与精确
值x的比值为近似值x*的相对误差, 并记作er(x*),
A
12
即
er(x* )e(x x* )x xx*
同样, 由于精确值 x 经常是未知的, 所以, 需要另
外的近似表达形式. 我们注意如下公式的推导,
当
|
e ( x*) x*
|
较小时,
有
e(x* )e(x* )e(x*x )* (x)
1 0.36787944 7 0.11237760 13 -7.2276483
2 0.26424112 8 0.10097920 14 102.18708
3 0.20727664 9 0.091187200 15 -1531.8061
4 0.17089344 10 0.088128000 :
5 0.14553280 11 0.030591000 :
所得计算结果的可靠性值得怀疑. 这一结果的产
生是由于四舍五入造成的.
例2: 计算下面积分的值( n = 0, 1, 2, ···):
Ine101xnexd.x
积分In的值必定落在区间[0, 1]内, 我们由被积函
数及其图形作出判断. A
6
由分部积分法可得:
Ine101xndex
n=1,2,4,6, 8,10,15
x x*
xx*
[x*[ee((xx**))2]x] *1[e(exx(**x*)]2) x*
当x*x 时, 即e (x*)0 时, 上式是[e( x*) ]2
x*
的同阶无穷小, 故可忽略不计A .
13
通常将 er*(x* )e(xx* * )x x* x* 作为近似值 x*的相对误差.
满足不等式
|er (x *| )|e(x x * *| )|x x* x*|r
这是一门与计算机紧密结合, 实用性很强的数学 课程.
A
3
算法应具有的特点:
1. 可行性: 它只能包括计算机能够直接处理的加、 减、乘、除和逻辑运算, 以及计算机的内部函数, 并能 够在有限步结束.
2. 可靠性: 它应该有数学理论分析的支持,包括误 差分析、收敛性分析、数值稳定性分析等, 使得近似 解与精确解的误差可以任意地小.
当 x1*和 x2*的绝对误差都较小时, y – y*= f (x1, x2) – f (x1*, x2*)
f x 1 ( x 1 * x 2 * x , 1 x ) 1 * ( f x 2 ( ) x 1 * x 2 * x , 2 ) x 2 * ( 近似值y*的绝对误差的近似表达式为:
A
19
除法相关的误差公式:
设
f
(x1,
x2)=
x x
1 2
e(x x1 2 )x 12 e(x1 )x x2 1 2e(x2 )
er(x x12 )er(x1)er(x2) |e(x x 1 2 )||x 1 2 2|(x |2 e(x 1 )||x 1 e(x2 )|)
|er(x x1 2 )||er(x1 )||er(x2 )|
满足不等式 |e(x*)| = | x–x*| *的正数*称为近
似值 x*的绝对误差限, 简称为误差限. 在工程技术中常记作 x=x*±*。 例如, 电压V=100±2(V), V*=100(V)是V的一个近
似值, 2(V)是V*的一个误差限, 即
| V–V*| 2(V)
A
11
二、相对误差与相对误差限
这两个近似表达式给出了二元函数绝对误差和相对误
差的传播规律. 一般地讲, 我们比较注意二元运算中的 相关问题, 以下对加、减、乘、除四则运算进行讨论.
A
17
加, 减法相关的误差公式: 设 f (x1, x2)= x1±x2 .
e ( x 1 x 2 ) e ( x 1 ) e ( x 2 ) e r (x 1 x 2 )x 1 1x 2 [x 1 e r (x 1 )x 2 e r (x 2 )] |e ( x 1 x 2 ) | |e ( x 1 ) | |e ( x 2 ) | |e r (x 1 x 2 )| |x 1 1 x 2 |[x 1 | e r (x 1 )| |x 2 e r (x 2 )|]
则截断误差为: R (x ) sx i n S 5 (x ) 7 1 !x 7 9 1 !x 9