第一章数值计算方法与误差分析
第一章数值计算方法与误差分析
0.4900 − 0.484 1 1 −1 = 0.012397 < 0.0125 = ×10 = ×10−(2−1) 0.484 2× 4 2× 4
第四节 数值运算中误差的传播
要分析数值运算中误差的传播,首先就要估 计数值运算中的误差。数值运算的误差估计情况 较复杂, 通常利用微分来估计误差。
一、利用微分估计误差
特别注意
近似值后面的零不能随便省去, 如 例2中4.27和4.270,前者精确到4.27,有效 数字为3位,取4位,x3*=4.270,有效数字 为4位。可见,它们的近似程度完全不同, 与准确值的最大误差也完全不同。
有效数字和绝对误差的关系
定义3换一种说法就是:设x的近似值 x*= ±0.a1a2… an … ×10p 若其绝对误差 |ε(x)|=|x-x*| ≤0.5 ×10p-n - 则称近似数x*具有n 位有效数字。这里p为整数,a1 , a2 , … , an 是0 到9中的一个数字且a1≠0 。 例如,若x*=0.23156×10-2是x 的具有五位有效数字的近似 值,则绝对误差是 |x-x*| ≤0.5 ×10-2-5 = 0.5 ×10-7 - 定义3或式 |ε(x)|=|x-x*| ≤0.5 ×10p-n - 建立了绝对误差(限)和有效数字之间的关系。由于n 越大,10p-n 的值越小,所以有效数字位越多,则绝对误差(限)越小。 有效数字位越多,
1. 一元函数 设 y=f(x)为一元函数,则计算函数值的 误差为
ε(y)=y-y*=f(x)-f(x* )
≈dy=f '(x)dx ≈ f '(x)ε(x) 解的相对误差
εr(y) ≈dy/y
一元函数的误差估计举例
例 正方形的边长约为100cm, 怎样测量才能使其 面积误差不超过1cm2。 解 设正方形的边长为xcm, 测量值为x*cm, 面积 y=f(x)=x2 f′(x)=2x
误差分析与数值计算的基本方法
误差分析与数值计算的基本方法在日常生活中,我们不断地进行着数值计算,比如计算家庭的开销、工作中的数据分析等。
然而,在数值计算中,我们经常会遇到误差的问题。
误差不仅会影响计算结果的准确性,还可能导致实际应用中的误判或失败。
因此,正确的误差分析和数值计算方法具有非常重要的意义。
本文将从几个方面来介绍误差分析和数值计算的基本方法。
误差的类型误差是指实际值与真实值之间的差异,而误差可以分为绝对误差和相对误差。
绝对误差是指实际值与真实值之间的差异,通常以绝对值来表示。
相对误差是指绝对误差与真实值之比的绝对值,通常以百分数的形式来表示。
在计算机数值计算中,由于计算机内部表示数字的方式是有限制的,因此还会出现舍入误差。
所谓舍入误差,就是因为数字的位数限制而被截掉的数值,造成的误差。
误差的来源在数值计算中,误差来自多个方面,如输入数据、计算过程、输出结果等。
不同来源的误差,可能导致误差类型不同,进而影响正确性和可靠性。
输入数据的误差是指在实际输入数据时可能出现的误差,包括仪器误差、测量误差、观测误差等。
这些误差通常是由于工具或人的精度不同而产生的。
计算过程的误差是指计算中可能发生的误差,包括算法误差、步长误差、舍入误差等。
由于计算机的运算只有0和1两种状态,因此可能出现舍入误差。
输出结果的误差是指计算结果与最终目标之间的差异,包括截断误差、舍入误差等。
输出结果误差可能会影响后续的数值计算和实际结果的可靠性。
误差的刻画和控制误差的刻画和控制是数值计算中非常重要的内容,它们决定了数值计算的正确性和可靠性。
误差的刻画包括误差界的估计和误差分布的描述。
误差界是指计算结果可能存在的误差上限和下限,误差分布是指误差可能呈现的分布状态。
通过误差界和误差分布,我们可以判断计算结果的可靠性,制定正确的数值计算策略。
误差的控制包括提高输入数据的准确性、选择适当的算法和参数、严格的校验和测试、合适的舍入方式等方法。
通过合适的误差控制方法,我们可以提高数值计算的正确性和稳定性。
计算方法(1)-数值计算中的误差
* r
(
x)
1)乘方运算结果的相对误差增大为原值 x的p倍,降低精度.
2)开方运算结果的相对误差缩小为原值
x的1/q倍,精度得到提高.
三.算例的误差分析
x
3
2 2
1 1
24
§6 算法的数值稳定性
一.算法稳定性的概念
凡一种算法的计算结果受舍入误差的影 响小者称它为数值稳定的算法.
例4 解方程 x2 (109 1)x 109 0
方程精确解: x1 10 9 , x2 1
利用求根公式
x1,2
b
b2 4ac 2a
x1 10 9 , x2 0
25
当多个数在计算机中相加时,最好从
绝对值最小的数到绝对值最大的数依次相
加,可使和的误差减小.
二.算法的改进
2 2
1 1
3
计算结 果
2 7/5
2 17 /12
1 ( 2 1)6
2 6
0.0040960
5
6
0.00523278
5
12
2 99 70 2
1
1 0.16666667
6
3
6
1
5
6
0.00523278
12 6
计算方法
1
第一章 数值计算中的误差
§1 引言 §2 误差的种类及其来源 §3 绝对误差和相对误差 §4 有效数字及其与误差的关系 §5 误差的传播与估计 §6 算法的数值稳定性
数值分析(01) 数值计算与误差分析
克莱姆算法步骤
1. 2.
D for 2.1. 2.2.
( j1 jn )
t ( 1 ) a1 j1 a 2 j2 a nj n
i 1 n Di
( i1 i n ) t ( 1 ) a i1 1 bi2 j a in n
Di xi D
N=[(n2-1)n!+n]flop
每周有课外练习,两周交一次作业, 一学期完成 3 个综合程序课题设计。 考试评分: 平时作业+程序占总成绩的30%,
期末考试占总成绩的70%,开卷考试。
Matlab_zm@ 密码 123456
数值分析
数值分析
第二节 数值问题与数值算法
求数学问题的数值解称为数值问题.
数值方法:适合在计算机上,按确定顺序依次进行计算 的计算公式,也就是通常所说的数值计算方法。 数值算法:从给定的已知量出发,经过有限次四则运算
有递推公式
注意
计算量 N n flop
Pn ( x) x( x( x( x(an x an1 ) an2 ) a1 ) a0
数值分析
sn an sk xsk 1 ak P n ( x) s0
k n 1,,2,1,0
数值分析
例3 矩阵乘积AB的计算量分析
第一节 数值分析的研究对象和特点
我们把在电子计算机上进行的科学工作称为科学计算。 科学研究的方法: 科学理论,科学实验,科学计算 科学计算的核心内容是以现代化的计算机及数学软件 为工具,以数学模型为基础进行模拟研究。
数值分析
数值分析
第一节 数值分析的研究对象和特点
科学计算的步骤:实际问题→数学模型→数值方法 →程序设计→上机计算→分析结果。 1、建立数学模型(实际问题数学化) 2、设计计算方案(数学问题数值化)
第一章数值计算方法与误差分析分析
控制误差传播的例子
例10 计算积分 In=∫01 xn ex-1dx,n=0,1, 2, … , 9 利用分部积分法,可得 In= xn ex-1| 01 –∫01 ex-1dxn
=1– n∫01 xn-1 ex-1dx =1– nIn-1
从而有递推公式
I0= ∫01 ex-1dx= ex-1 | 01 = 1-e-1 ≈0.6321 In= 1– nIn-1 (n=0, 1, 2, … , 9)
所谓算法,是指对一些数据按某种规定的顺序 进行的运算序列。在实际计算中,对于同一问题我 们选用不同的算法, 所得结果的精度往往大不相同。 这是因为初始数据的误差或计算中的舍入误差在计 算过程中的传播,因算法不同而异,于是就产生了 算法的数值稳定性问题。一个算法, 如果计算结果 受误差的影响小,就称这个算法具有较好的数值稳 定性。否则,就称这个算法的数值稳定性不好。
简化计算步骤、减少运算次数、避免误差积累的例子
又如计算
1/(1*2)+1/(2*3)+…+1/(1000*1001)
的值。 若一项一项进行计算,不仅计算次数多,而 且误差积累也很大。若简化成 1-1/1001 进行计 算,则整个计算只要一次求倒数和一次减法。
(四)要避免绝对值小的数作除数
由式 ε(x1/x2)≈d(x1/x2)≈[x2ε(x1)-x1ε(x2)]/ x22 , (x2≠0) 可知,当除数x2接近于零时,商的绝对误差就可能很大。因此 , 在数值计算中要尽量避免绝对值小的数作除数, 避免的方法是把 算式变形或改变计算顺序。 例8 当x接近于0时 (1-cosx)/sinx 的分子、分母都接近0,为避免绝对值小的数作除数,可将原式 化为 (1-cosx)/sinx=sinx/(1+cosx) 例9 当x 很大时,可化 x/[(x+1)0.5-x0.5]=x[(x+1)0.5 + x0.5]
第一章 数值计算中的误差分析
时,则得 e ≈ 2.72, e ≈ 2.71828 。
不管取几位小数得到的近似数,其绝对误差都不超过末位数
的半个单位,即 e − 2.72 ≤ 1 ×10−2 , e − 2.71828 ≤ 1 ×10 −5.
2
2
� “有效数字”的概念:若近似值 x* 的绝对误差限是某一位
的半个单位,就称其“准确”到这一位,且从该位直到 x* 的
� 数值计算主要过程:实际问题→建立数学模型→设计 高效、可靠的数值计算方法→程序设计→上机计算求 出结果。
数值计算方法不同于纯数学:它既具有数学的抽象性与严 格性,又具有应用的广泛性与实际试验的技术性,它是一门与计 算机紧密结合的实用性很强的有着自身研究方法与理论系统的 计算数学课程。
1
� 数值计算方法的特点:提供能让计算机直接处理的,切
例如,用毫米刻度的直尺去测量一长度为 x 的物体,测得其
近似值为 x* = 84mm ,由于直尺以毫米为刻度,所以其误差不超
过 0.5mm,即 x − 84 ≤ 0.5(mm) 。这样,虽然不能得出准确值 x 的
长度是多少,但从这个不等式可以知道 x 范围是
83.5mm ≤ x ≤ 84.5mm ,即 x 必在[83.5mm,84.5mm]内。
根据“数值计算”的特点,首先应注意掌握数值计算方法 的基本原理和思想,注意方法处理的技巧及其与计算机的密 切结合,重视误差分析、收敛性及稳定性的基本理论;其次 还要注意方法的使用条件,通过各种方法的比较,了解各种 方法的异同及优缺点。
2
§1.2 误差与数值计算的误差估计
一、误差的来源与分类 在数值计算过程中,估计计算结果的精确度是十分重要的工 作,而影响精确度的因素是各种各样的误差,它们可分为两大类: 一类称为“过失误差”,它一般是由人为造成的,这是可以避免 的,故在数值计算中我们不讨论它;而另一类称为“非过失误差”, 这在“数值计算”中往往是无法避免的,也是我们要研究的。 � 按照误差的来源,误差可分为四种:模型误差、观测误差、 截断误差、舍入误差。 1.模型误差 用数值计算方法解决实际问题时,首先必须建立数学模型. 由于实际问题的复杂性,在对实际问题进行抽象与简化时,往往 为了抓住主要因素而忽略了于次要因素,这就会使得建立起来的 数学模型只是复杂客观现象的一种近似描述,它与实际问题之间 总会存在一定的误差.我们把数学模型与实际问题之间出现的误 差称为模型误差。 2.观测误差 在数学模型中往往包含一些由观测或实验得来的物理量,由 于工具精度和测量手段的限制,它们与实际量大小之间必然存在 误差。 3.截断误差 由实际问题建立起来的数学模型,在很多情况下要得到准确 解是困难的,通常要用数值方法求出它的近似解。例如常用有限
数值计算方法第一章 误差
1 10n1 2a1
所以 1 10n1 是 x* 的相对误差限。
2a1
若
r
1
2a1
1
10n1,
由式(1-4)
21
绝对误差、相对误差和有效数字
e x* x*er x* 0.a1a2 L an L 10mr
a1
1
10m1
2
1 a1
1
10n1
1 10mn 2
由式(1-6),x* 至少有n位有效数字。
1.3.1 基本运算中的误差估计
本节中所讨论的基本运算是指四则运算与 一些常用函数的计算。
由微分学,当自变量改变量(误差)很小时, 函数的微分作为函数改变量的主要线性部分可以 近似函数的改变量, 故利用微分运算公式可导出 误差运算公式。
24
数值计算中误差的传播
设数值计算中求得的解与参量(原始数据)
由以上各式还可得出
ex1 x2 ex1 ex2 ex1 ex2 (1-14)
er x1x2 er x1 er x2 er x1 er x2 (1-15)
er
x1 x2
er x1 er x2
er x1
er x2
(1-16)
29
数值计算中误差的传播
因此,和、差的误差限不超过各数的误差限之 和,积、商的相对误差限不超过各数的相对误 差限之和。
定义: 若x的某一近似值 x* 的绝对误差限是某一位 的半个单位, 则称其“准确”到这一位,且从该位直到
x* 的第一位非零数字共有q位,则称近似值 x* 有q
位有效数字。
16
绝对误差、相对误差和有效数字
例如, 2 的近似值1.414准确到小数点后第3位, 它具有4位有效数字。
第1章 误差分析
第1章误差分析利用计算机进行数值计算几乎全都是近似计算:计算机所能表示的数的个数是有限的,我们需要用到的数的个数是无限的,所以在绝大多数情况下,计算机不可能进行绝对精确的计算。
定义:设x *为某个量的真值,x为x *的近似值,称x *- x为近似值x的误差,通常记为e(x),以表明它是与x有关的量。
与误差作斗争是时计算方法研究的永恒的主体,由于时间和经验的关系,我们仅对这方面的只是做一个最基本的介绍。
1.1 误差的来源误差的来源是多方面的,但主要来源为:描述误差,观测误差,截断误差和舍入误差。
1描述误差为了便于数学分析和数值计算,人们对实际问题的数学描述通常只反映出主要因素之间的数量关系,而忽略次要因素的作用,由此产生的误差称为描述误差。
对实际问题进行数学描述通常称为是建立数学模型,所以描述误差也称为是模型误差。
2观测误差描述实际问题或实际系统的数学模型中的某些参数往往是通过实验观测得到的。
由试验得到的数据与实际数据之间的误差称为观测误差。
比如我们用仪表测量电压、电流、压力、温度时,指针通常会落在两个刻度之间,读数的最后一位只能是估计值,从而也产生了观测误差。
3.舍入误差几乎所有的计算工具,当然也包括电子计算机,都只能用一定数位的小数来近似地表示数位较多或无限的小数,由此产生的误差称为舍入误差。
4.截断误差假如真值x*为近似值系列{x n}的极限,由于计算机只能执行有限步的计算过程,所以我们只能选取某个x N作为x*的近似值,由此产生的误差称为截断误差。
我们可以通过函数的泰勒展式来理解截断误差:设f(x)可以在x=x0处展开为泰勒级数,记f N(x)为前N+1项的和,R N(x)为余项,如果用f N(x)近似表示f(x),则R N(x)就是截断误差。
提示:在我们的课程中,重点是考虑尽可能减小截断误差,尽可能消除舍入误差的副作用。
1.2 误差基本概念1.绝对误差与相对误差定义:设x*为某个量的真值,x为x*的近似值,我们称|x*- x|为近似值x的绝对误差;称|x *- x|/|x*|为近似值x的相对误差。
数值计算方法马东升等第 版习题解答
第1章 数值计算引论1.1 内容提要一、误差的来源数值计算主要研究以下两类误差。
1. 截断误差数学模型的准确解与用数值方法求得的解的差称为截断误差,又称为方法误差。
这种误差常常是由用有限过程代替无穷过程时产生的误差。
例如,要计算级数∑∞==+++++1!1!1!31!211k k n的值,当用计算机计算时,用前n 项(有限项)的和∑==+++++nk k n 1!1!1!31!211来代替无穷项之和,即舍弃了n 项后边的无穷多项,因而产生了截断误差∑∞+=1!1n k k2. 舍入误差由于计算机字长为有限位,原始数据和四则运算过程中进行舍入所产生的误差称为舍入误差。
例如,用3.141 59表示圆周率π时产生的误差0.000 002 6…,用0.333 33表示1÷3的运算结果时所产生的误差1÷3-0.333 33 = 0.000 003 3…都是舍入误差。
二.近似数的误差表示1. 绝对误差设x *是准值x 的一个近似值,称**)(x x x e -=为近似值x *的绝对误差,简称误差。
令|)(|*x e 的一个上界为*ε,即***|||)(|ε≤-=x x x e把*ε称为近似数*x 的绝对误差限,简称误差限。
2. 相对误差设*x 是精确值x 的一个近似值,称xx x xx e **)(-=为近似值x *的相对误差。
在实际应用中常取***)(xx x x e r -=为*x 的相对误差。
令相对误差绝对值 |)(|*x e r 的一个上界为ε*r,即 ****|||||)(|r r x x x x e ε≤-=把ε*r称为近似数*x 的相对误差限。
3. 有效数字对有多位数字的准确值四舍五入原则得到其前若干位的近似值时,该近似值的绝对误差不超过末位的半个单位。
设数x 的近似值m n x x x x 10.021*⨯±= ,其中,i x 是0~9之间的任一个数,但i x ≠0,n i ,2,1=是正整数,m 是整数,若nm x x -⨯≤-1021||*则称*x 为x 的具有n 位有效数字的近似值,*x 准确到第n 位,n x x x ,,,21 是*x 的有效数字。
数值计算方法第一章
第一章 绪 论本章以误差为主线,介绍了计算方法课程的特点,并概略描述了与算法相关的基本概念,如收敛性、稳定性,其次给出了误差的度量方法以及误差的传播规律,最后,结合数值实验指出了算法设计时应注意的问题.§ 引 言计算方法以科学与工程等领域所建立的数学模型为求解对象,目的是在有限的时间段内利用有限的计算工具计算出模型的有效解答。
由于科学与工程问题的多样性和复杂性,所建立的数学模型也是各种各样的、复杂的. 复杂性表现在如下几个方面:求解系统的规模很大,多种因素之间的非线性耦合,海量的数据处理等等,这样就使得在其它课程中学到的分析求解方法因计算量庞大而不能得到计算结果,且更多的复杂数学模型没有分析求解方法. 这门课程则是针对从各种各样的数学模型中抽象出或转化出的典型问题,介绍有效的串行求解算法,它们包括(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 n n ++++-- 值的如下快速算法n a s =;k n a t -=;t sx s += ),,2,1(n k =它通过n 次乘法和n 次加法就计算出了任意n 次多项式的值. 再如幂函数64x 可以通过如下快速算法计算出其值x s =;s s s ⋅=;循环6次如上算法仅用了6次乘法运算,就得到运算结果.算法最终需要在计算机上运行相应程序,才能得到结果,这样就要关注算法的时间复杂度(计算机运行程序所需时间的度量)、空间复杂度(程序、数据对存储空间需求的度量)和逻辑复杂度(关联程序的开发周期、可维护性以及可扩展性). 事实上,每一种算法都有自己的局限性和优点,仅仅理论分析是很不够的,大量的实际计算也非常重要,结合理论分析以及相当的数值算例结果才有可能选择出适合自己关心问题的有效求解算法. 也正因如此,只有理论分析结合实际计算才能真正把握准算法.§ 误差的度量与传播一、误差的度量误差的度量方式有绝对误差、相对误差和有效数字.定义 用*x 作为量x 的近似,则称)(:**x e x x =-为近似值*x 的绝对误差.由于量x 的真值通常未知,所以绝对误差不能依据定义求得,但根据测量工具或计算情况,可以估计出绝对误差绝对值的一个较小上界ε,即有ε≤-=x x x e **)( 称正数ε为近似值*x 的绝对误差限,简称误差. 这样得到不等式εε+≤≤-**x x x工程中常用ε±=*x x表示近似值*x 的精度或真值x 所在的范围.误差是有量纲的,所以仅误差数值的大小不足以刻划近似的准确程度. 如量m m cm s μ50001230000005.023.15.0123±=±=±=为此,我们需要引入相对误差定义 用0*≠x 作为量x 的近似,称)(:**x e xxx r =-为近似值*x 的相对误差. 当*x 是x 的较好近似时,也可以用如下公式计算相对误差***)(x xx x e r -=显然,相对误差是一个无量纲量,它不随使用单位变化. 如式中的量s 的近似,无论使用何种单位,它的相对误差都是同一个值.同样地,因为量x 的真值未知,我们需要引入近似值*x 的相对误差限)(*x r ε,它是相对误差绝对值的较小上界. 结合式和,*x 相对误差限可通过绝对误差限除以近似值的绝对值得到,即***)()(xx x r εε=为给出近似数的一种表示法,使之既能表示其大小,又能体现其精确程度,需引入有效数字以及有效数的概念.定义 设量x 的近似值*x 有如下标准形式 p n m a a a a x 21*.010⨯±=()p m p n m n m m a a a a ----⨯++⨯++⨯+⨯±101010102211 =其中}9,,1,0{}{1 ⊂=p i i a 且01≠a ,m 为近似值的量级. 如果使不等式n m x x -⨯≤-1021* 成立的最大整数为n ,则称近似值*x 具有n 位有效数字,它们分别是1a 、2a 、… 和 n a . 特别地,如果有p n =,即最后一位数字也是有效数字,则称*x 是有效数.从定义可以看出,近似数是有效数的充分必要条件是末位数字所在位置的单位一半是绝对误差限. 利用该定义也可以证明,对真值进行“四舍五入”得到的是有效数. 对于有效数,有效数字的位数等于从第一位非零数字开始算起,该近似数具有的位数. 注意,不能给有效数的末位之后随意添加零,否则就改变了它的精度.例 设量π=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所以*1x 和*3x 都有3位有效数字,但不是有效数. *2x 具有4位有效数字,是有效数.二、误差的传播这里仅介绍初值误差传播,即假设自变量带有误差,函数值的计算不引入新的误差. 对于函数),,,(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 x f y y y e -≈-=∑= )(),,,(*1**2*1i ni n i x e x x x f ∑== 其中ii x ff ∂∂=:,*i x 是i x 的近似值,)(*i x e 是*i x 的绝对误差),,2,1(n i =. 式表明函数值的绝对误差近似等于自变量绝对误差的线性组合,组合系数为相应的偏导数值.从式也可以推得如下函数值的相对误差传播近似计算公式)(),,,()(***1**2*1*i r ini n i r x e y x x x x f y e ∑=≈对于一元函数)(x f y =,从式和可得到如下初值误差传播近似计算公式)()()(***x e x f y e '≈)()()(*****x e yx x f y e r r '≈式表明,当导数值的绝对值很大时,即使自变量的绝对误差比较小,函数值的绝对误差也可能很大.例 试建立函数n n x x x x x x f y +++== 2121),,,(的绝对误差(限)、相对误差的近似传播公式,以及{}ni i x 1*0=>时的相对误差限传播公式. 解 由公式和可分别推得和的绝对误差、相对误差传播公式如下∑∑==≈ni i ini ni x e x e x x x f y e 1**1**2*1*)()(),,,()(=∑∑==≈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 in i in i ix x e x e y e 1*1*1**)()()()(ε于是有和的绝对误差限近似传播公式 ∑=≈ni i x y 1**)()(εε当{}ni i x 1*0=>时,由式推得相对误差限的近似传播公式)(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 y x x x y x yxy εεεεεε≤≤=≤≤=≤≤====≤=≈∑∑∑∑例 使用足够长且最小刻度为1mm 的尺子,量得某桌面长的近似值3.1304*=a mm ,宽的近似值8.704*=b mm (数据的最后一位均为估计值). 试求桌子面积近似值的绝对误差限和相对误差限.解 长和宽的近似值的最后一位都是估计位,尺子的最小刻度是毫米,故有误差限5.0)(*=a εmm ,5.0)(*=b εmm面积ab S =,由式得到近似值***b a S =的绝对误差近似为)()()(*****b e a a e b S e +≈进而有绝对误差限55.10045.03.13045.08.704)()()(*****=⨯+⨯=+≈b a a b S εεε mm 2相对误差限 %11.00011.08.7043.130455.1004)()(***=≈⨯=≈S S S r εε§ 数值实验与算法性能比较本节通过几个简单算例说明解决同一个问题可以有不同的算法,但算法的性能并不完全相同,他们各自有自己的适用范围,并进而指出算法设计时应该注意的事项.算例 表达式)1(1111+=+-x x x x ,在计算过程中保留7位有效数字,研究对不同的x ,两种计算公式的计算精度的差异.说明1:Matlab 软件采用IEEE 规定的双精度浮点系统,即64位浮点系统,其中尾数占52位,阶码占10位,尾数以及阶码的符号各占1位. 机器数的相对误差限(机器精度)eps=2-52≈×10-16,能够表示的数的绝对值在区间×10-308,×10308)内,该区间内的数能够近似表达,但有舍入误差,能够保留至少15位有效数字. 其原理可参阅参考文献[2, 4].分析算法1: 111)(1+-=x x x y 和算法2: )1(1)(2+=x x x y 的误差时,精确解用双精度的计算结果代替. 我们选取点集301}{=i i π中的点作为x ,比较两种方法误差的差异.从图可以看出,当x 不是很大时,两种算法的精度相当,但当x 很大时算法2的精度明显高于算法1. 这是因为,当x 很大时,x 1和11+x 是相近数,用算法1进行计算时出现相近数相减,相同的有效数字相减后变成零,于是有效数字位数急剧减少,自然相对误差增大. 这一事实也可以从误差传播公式分析出. 鉴于此,算法设计时,应该避免相近数相减.在图中我们给出了当x 接近1-时,两种算法的精度比较,其中变量x 依次取为{}3011=--i i π. 从图中可以看出两种方法的相对误差基本上都为710-,因而二者的精度相当.图 算例中两种算法的相对误差图(+∞→x )图 算例中两种算法的精度比较)1(-→x算例 试用不同位数的浮点数系统求解如下线性方程组⎩⎨⎧=+=+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 ,用不同的算法计算出的结果见表.表 对算例用不同算法的计算结果比较对于算例,表中的数据表明,当用4位尾数计算时,算法1给出错误的结果,算法2则给出解很好的近似. 这是因为在实现算法1时,需要给第一个方程乘以00001.0/2-加至第二个方程,从而削去第二个方程中1x 的系数,但在计算2x 的系数时需做如下运算661610000003.0104.0103.0104.03200001.02⨯⨯⨯⨯=+⨯+=-+--对上式用4位尾数进行计算,其结果为6104.0⨯-. 因为舍入误差,给相对较大的数加以相对较小的数时,出现大数“吃掉”小数的现象. 计算右端项时,需做如下运算661610000002.0102.0102.0102.02100001.02⨯⨯⨯⨯=+⨯+=-+--同样出现了大数吃小数现象,其结果为6102.0⨯-. 这样,得到的变形方程组⎩⎨⎧⨯-=⨯-⨯=⨯+⨯62612114102.0104.0101.0102.0101.0x x x 中没有原方程组中第二个方程的信息,因而其解远偏离于原方程组的解. 该算法中之所以出现较大数的原因是因为运算00001.0/2-,因而算法设计中尽可能避免用绝对值较大的数除以绝对值较小的数. 其实当分子的量级远远大于分母的量级时,除法运算还会导致溢出,计算机终止运行.虽从单纯的一步计算来看,大数吃掉小数,只是精度有所损失,但多次的大数吃小数,累计起来可能带来巨大的误差,甚至导致错误. 例如在算法1a 中出现了两次大数吃小数现象,带来严重的后果. 因而尽可能避免大数吃小数的出现在算法设计中也是非常必要的.当用较多的尾数位数进行计算,舍入误差减小,算法1和2的结果都有所改善,算法1的改进幅度更大些. 算例 计算积分⎰+=1055dx x x I n 有递推公式),2,1(511 =-=-n I n I n n ,已知56ln0=I . 采用IEEE 双精度浮点数,分别用如下两种算法计算30I 的近似值. 算法 1 取0I 的近似值为6793950.18232155*=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 的计算结果见表. 误差绝对值的对数图见图. 表 算例的计算结果139238337436535634 (33)25+001+0013226+001+0013127+002+002 3028+003+00329+003+00330+004+004图算例用不同算法计算结果的误差绝对值的对数图从表中的计算结果可以看出,算法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,即有mmn 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 已知有效数105.3*1-=x ,4*210125.0⨯=x ,010.0*3=x . 试给出各个近似值的绝对误差限和相对误差限,并指出它们各有几位有效数字.2 证明当近似值*x 是x 的较好近似时,计算相对误差的计算公式xxx -*和**x xx -相差一个和2*⎪⎪⎭⎫ ⎝⎛-x x x 同阶的无穷小量. 3 设x 的近似值*x 具有如式的表示形式,试证明 1) 若*x 具有n 位有效数字,则相对误差n r a x e -⨯≤11*1021)(; 2) 若相对误差n r a x e -⨯+≤11*10)1(21)(,则*x 至少具有n 位有效数字.4 试建立二元算术运算的绝对误差限传播近似计算公式.5 试建立如下表达式的相对误差限近似传播公式,并针对第1题中数据,求下列各近似值的相对误差限.1) *3*2*1*1x x x y +=; 2) 3*2*2x y =; 3) *3*2*3/x x y = 6 若例题中使用的尺子长度是80mm ,最小刻度为1mm ,量得某桌面长的近似值3.1304*=a mm ,宽的近似值8.704*=b mm . 试估计桌子长度、宽度的绝对误差限,并求用该近似数据计算出的桌子面积的绝对误差限和相对误差限. 7 改变如下计算公式,使其计算结果更为精确. 1)0,cos 1≠-x xx且1<<x 2) 1,1ln )1ln()1(ln 1>>--++=⎰+N N N N N xdx N N3) 1,133>>-+x x x8 (数值试验)试通过分析和数值试验两种手段,比较如下三种计算1-e 近似值算法的可靠性.算法1 ∑=--≈mn nn e1!)1(;算法2 101!1-=-⎪⎭⎫⎝⎛≈∑m n n e; 算法3 101)!(1-=-⎪⎪⎭⎫ ⎝⎛-≈∑m n n m e ;9 (数值试验)设某应用问题归结为如下递推计算公式72.280=y ,251-=-n n y y , ,2,1=n在计算时2取为具有5位有效数字的有效数*c . 试分析近似计算公式**1*5c y y n n -=-的绝对误差传播以及相对误差传播情况,并通过数值实验验证(准确值可以用IEEE 双精度浮点运算结果代替),该算法可靠可用吗。
数值计算中的数值方法与计算误差分析
选择方法
根据问题特性选 择合适的数值方
法
● 04
第四章 数值微分方程方法
常微分方程数值 解法
常微分方程的数值解 法包括欧拉法、龙格 -库塔法、龙格-库塔 对法等。这些方法各 有特点,需要根据具 体问题选择合适的方 法。常微分方程数值 解法在动力学、生态 学等领域有着广泛的 应用。
偏微分方程数值解法
数值计算中的数值方法与计 算误差分析
汇报人:XX
2024年X月
目录
第1章 简介 第2章 数值逼近方法 第3章 数值代数方法 第4章 数值微分方程方法 第5章 数值方法在工程中的应用 第6章 总结与展望
● 01
第1章 简介
数值计算及其重要性
01 数值计算定义
数值计算利用计算机对数学问题进行数值求 解的过程
辛普森法则
利用二次多项式逼近被积 函数,估算积分值
龙贝格积分
通过递归的方式不断提高 积分精度
符号计算与数值计算的结 合
符号计算能够进行精确计算,但不适用于复杂运 算。数值计算能够处理大规模数据,但存在误差 问题。将符号计算与数值计算结合可以兼顾精确 性和效率性,提高计算的准确度和效率。
● 03
系统动态响 应评估
分析系统稳定性
航空航天应 用
提高飞行控制精 度
汽车控制系 统
增强汽车安全性 能
鲁棒性优化
改善系统控制性 能
应用前景展望
数值方法在工程领域 中的应用前景广阔, 随着计算能力的不断 提升,工程仿真和分 析将更加精确和快速。 在未来,数值方法将 在各个工程领域发挥 更重要的作用,为解 决复杂问题提供有效 的数过迭代过程逐步逼近解 不同算法有不同的收敛速 度
收敛性分析
数值计算方法第一章 误差
6
误差的来源
4.舍入误差 在计算过程中往往要对数字进行舍入。 如受机器 字长的限制,无穷小数和位数很多的数必须舍入成 一定的位数。 这样产生的误差称为“舍入误差”。 本课程只讨论截断误差与舍入误差对计算结 果的影响。
§1.2 绝对误差、相对误差和有效数字
7
绝对误差、相对误差和有效数字
1.2.1
绝对误差与相对误差
17
x* 0.a1a2 an 10m
如果
1 x x 10 m n 2
*
(1-5)
(1-6)
* x 则称近似值 有n位有效数字。
1 5 x 0 . 003400 10 例如 表示近似值0.003400准确 2
到小数点后第5位,有3位有效数字。
上面的讨论表明,可以用有效数字位数来刻划 误差限。 形如式(1-5)的数,当m一定时,其有效数字 数位n越大,则误差限越小。
但可以根据测量 能算出绝对误差 e( x*) 的准确值, 工具或计算的情况估计出它的取值范围,
8
绝对误差、相对误差和有效数字
即估计出误差绝对值的一个上界
e( x ) x x
* *
*
(1-2)
通常称 为近似值 x 的绝对误差限,简称误差限。 显然误差限不是唯一的。 有了误差限及近似值,就可以得到准确值 的范围 * * 即准确值 x
* 显然,误差限与近似值绝对值之比 * 为 x 的 一 x
个相对误差限。
例 取3.14作为 相对误差限.
的四舍五入的近似值,试求其
13
绝对误差、相对误差和有效数字
1 2 3 . 14 0 . 0016 10 解: 2 相对误差限 1 2 10 2 0.159 % * x 3.14 又如 由实验测得光速近似值为 c * 2.997925 105 km/s, 其误差限为 0.1 km/s, 于是
数值计算方法chap1误差
算法Ⅰ
In
5In1
1 n
按公In式 n 15In 1 (n1,2,.)..
取 I01 0x1 5dx ln 1.20.18232 I0 *155
依次计算 I1,I2, 近似值.
n
I
* n
(算法Ⅰ)
0
0.18232155
1
0.08839225
2
0.05803875
3
0.04313958
4
0.03430208
1.3.2 算法的数值稳定性
算法:预先设计计算问题近似解的运算顺序 稳定性:在按一个算法的计算过程中,数据误 差和舍入误差在计算过程中不增长,则称算法 是稳定的;否则称算法是数值不稳定的.
例: 计算下列积分的近似值
1 xn
In
dx(n 0,1,2,...) 0 x5
In5In11 0xnx 5x 5n1d x1 0xn1d xn 1
例x*: 237,且 6(4 x*)91 0140则x*有3位有效数字 .
2
定理1.1若x的近似x值 * 0.a1a2.....a.n...10m
(a1
0)有n位
有n1为
其
相 对 误 差,反 限之,若x*的 相 对 误 差 限 满 足
r
1 10n1 2(a11)
则x*至少具n位 有有效数 . 字
哪一个精度高?
相对误差:
ee er x x*
相对误差限: er r
e x*
e xe(x xx *x*)x*(ee 2 x*)1 ( x e*x )e2 *
两种误差限的关系:
r
x*
x* r
r(x)x(x*)
0.020.0 10
《数值计算方法》复习资料
实用文档《数值计算方法》复习资料第一章数值计算方法与误差分析第二章非线性方程的数值解法第三章线性方程组的数值解法第四章插值与曲线拟合第五章数值积分与数值微分第六章常微分方程的数值解法自测题课程的性质与任务数值计算方法是一门应用性很强的基础课,在学习高等数学,线性代数和算法语言的基础上,通过本课程的学习及上机实习、使学生正确理解有关的基本概念和理论,掌握常用的基本数值方法,培养应用计算机从事科学与工程计算的能力,为以后的学习及应用打下良好基础。
第一章数值计算方法与误差分析一考核知识点误差的来源类型;绝对误差和绝对误差限,相对误差和相对误差限,有效数字;绝对误差的传播。
二复习要求1.知道产生误差的主要来源。
2.了解绝对误差和绝对误差限、相对误差和相对误差限和有效数字等概念以及它们之间的关系。
3.知道四则运算中的误差传播公式。
实用文档三例题例 1 设x*= =3.1415926⋯近似值 x=3.14 = 0.314× 101,即 m=1,它的绝对误差是- 0.001 592 6 ,⋯有即 n=3,故 x=3.14 有 3 位有效数字 .x=3.14准确到小数点后第 2 位 .又近似值 x=3.1416,它的绝对误差是0.0000074 ⋯,有即 m=1,n= 5, x=3.1416 有 5 位有效数字 .而近似值x=3.1415,它的绝对误差是0.0000926 ⋯,有即 m=1,n= 4, x=3.1415 有 4 位有效数字 .这就是说某数有s 位数,若末位数字是四舍五入得到的,那么该数有s 位有效数字;例 2指出下列各数具有几位有效数字,及其绝对误差限和相对误差限:2.000 4-0.002 009 0009 000.00解因为 x1=2.000 4= 0.200 04× 101, 它的绝对误差限 0.000 05=0.5 × 10 1―5,即m=1,n=5, 故 x=2.000 4 有 5 位有效数字 . a1=2,相对误差限x2=- 0.002 00,绝对误差限0.000 005,因为 m=-2,n=3 ,x2=- 0.002 00 有 3 位有效数字 . a1=2 ,相对误差限r ==0.002 5实用文档x3=9 000 ,绝对误差限为0.5× 100,因为 m=4, n=4, x3=9 000 有 4 位有效数字, a=9 ,相对误差限r== 0.000 056x4=9 000.00 ,绝对误差限0.005,因为 m=4, n=6, x4=9 000.00 有 6 位有效数字,相对误差限为r== 0.000 000 56由 x3与 x4可以看到小数点之后的0,不是可有可无的,它是有实际意义的.例 3 ln2=0.69314718⋯,精确到10-3的近似值是多少?解精确到 10-3= 0.001,意旨两个近似值x1,x2满足,由于近似值都是四舍五入得到的,要求满足,近似值的绝对误差限应是=0.0005,故至少要保留小数点后三位才可以。
数值计算方法第一章误差的基本知识
推理证明能力; 5、认真进行数值计算的训练。
§1.2 误差知识
一、误差的来源及其分类 二、误差的度量 三、误差的传播
一、误差来源及其分类
1) 模型误差(描述误差) 反映实际问题有关量之间的计算公式
(数学模型)通常是近似的。
x1*
x
0 .0 00 5 9
0.005
1 1013 2
3位有效数字,非有效数
x
* 2
x
0 .0 00 4 0
0.0005
1 1014 2
Remark2: 相对误差及相对误差限是无量纲的,但绝对 误差以及绝对误差限是有量纲的。
3.有效数字
为了规定一种近似数的表示法,使得用它表示的 近似数自身就直接指示出其误差的大小。为此需要引 出有效数字和有效数的概念。
定义:设 x 的近似值 x* 有如下标准形式
x* 10m 0.x1x 2 x n x n1 x p ,
本课程主要内容
鉴于实际问题的复杂性,通常将其具体地分解 为一系列子问题进行研究,本课程主要涉及如下几 个方面问题的求解算法: 非线性方程的近似求解方法; 线性代数方程组的求解方法; 函数的插值近似和数据的拟合近似; 积分和微分的近似计算方法; 常微分方程初值问题的数值解法; 矩阵特征值与特征向量的近似计算方法; ……
第一章 绪 论
内容提要
§1.1 引 言 §1.2 误差的度量与传播 §1.3 选用算法时应遵循的原则
§1.1 引 言
课程特点
数值分析或数值计算方法主要是研究如何 运用计算机去获得数学问题的数值解的理论和 方法。
对那些在经典数学中,用解析方法在理论 上已作出解的存在,但要求出他的解析解又十 分困难,甚至是不可能的这类数学问题,数值 解法就显得不可缺少,同时有十分有效。
1 误差分析 计算方法课件及实验 教学课件
若存在正数 ,使 r(x) ,则称 为近似值 x *的相对误差限。
实际中因为一个量的真值往往是不可能求出的,常用绝对误差 与近似值的比来描述。于是有:
r*(x)x(x*)x x*x*
绝对误差与相对误差的区别
绝对误差与量纲有关,而相对误差与量纲无关。
仍然考虑:x = 100 2,y = 10 1:
r(x)(xx)dxx dlnx
对于
y f(x)
y f(x)
(y) dy
r (y)
dln y
f '(x) dx
f (x)
同样,可推广至多元函数的情况。
例 uxy,则 ( u ) d d ( x u ) x y y d x d ( y y ) y x ( x ) r ( u ) d lu n d lx n d ly n r ( x ) r ( y )
上运算, 则 b19 010.111000.00000 0101000 01
0.111000.00000 010100000.11110019 0
b 2 4 a c ( 19 0 1 )2 4 19 0 190
所以
x1b2 b a 24a c190 2190190
bb24ac190190
x2
x 的近似值 x * 的规格化形式: x*0.12n1m 0
其中1,2,,n都是0,1,2,,9中的一个数字,1 0 ;
n是正整数;m是整数。
若 x *的 误差限为
(x)xx* 110mn
2
则称 x * 为具有 n位有效数字的有效数.或称它精确到 10mn
例:3.1416 具有五位有效数字,精确到0.0001; 3.14159具有
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工具求出数学问题的数值解,并对算 法的收敛性、稳定性和误差进行分析 计算的全过程。
构建一个完整的数值算法,包含着以下环节: 1. 提出数值问题(即对对象建立数学模型) 2 .构思处理数值问题的基本思想(即提出理论) 3 .列出计算公式 4 .设计程序框图
5 .编制源程序并调试
I0=
∫01
ex-1dx=
ex-1|
1 0
=
1-e-1
≈0.6321
In= 1– nIn-1 (n=1, 2, … , 9)
用四位小数计算依次得到:
0.6321, 0.3679, 0.2642, 0.2074, 0.1704
0.1480, 0.1120, 0.2160, -0.7280, 7.5520
• 定义3 若近似值x*的绝对误差限是 某一位上的半个单位,该位到x*的第一 位非零数字一共有n位,则称近似值x*有 n位有效数字,或说x*精确到该位。
• 准确数本身有无穷多位有效数字, 即从第一位非零数字以后的所有数字都 是有效数字。
有效数字举例
• 如例1中的x*1,x*2 ,x*3,分别有1,3,5位有效数字。 • 实际上,用四舍五入法取准确值x 的前n位(不
• 为了既能表示近似数的大小,又能 表示近似数的精确程度,我们下面介绍 有效数字的概念(注意:有效数字既能 表示近似数的大小,又能表示近似数的 精确程度)。
半个单位的概念
•
我们知道,当x有很多位数字时,常常按照
“四舍五入”原则取前几位数字作为x的近似值x*。
• 例1 设 x = π = 3.1415926 …
一元二次方程 X2+2pX +q=0的求解方法
根据根与系数的关系可知
所以
x1x2=q=1
x2=1/x1 因此,如果仍用上述方法算出x1,然后用
x2=1/x1 计算x2,可得
x1=100000.00,x2=0.00001000 该结果是非常好的。这就说明这种算法有较好的数值稳
定性。
一般说来,当|p|>>|q|时,用公式x1= –p–sign(p)•(p2–q)0.5 ,
在实际计算中, 由于ε(x)与x都不能准
确地求得,因此相对误差 εr(x)也不可能准确
地得到, 我们只能估计它的大小范围。即指 定一个适当小的正数η,使
|εr(x)|= |ε(x)|/| x* | ≤η
称η为近似值x*的相对误差限。
当|εr(x)|较小时,可以用下式来计算η:
η=ξ/|x*|
有效数字
数值计算中的误差
1、误差的种类和来源
① 模型误差
② 观测误差
③ 截断误差
④ 舍入误差
真
2、误差的有关概念:
值
近似值
① 绝对误差: (x) x x
② 绝对误差限: (x) x x* 1
③ 相对误差:
r (x)
(x)
x
x x x
x x x
④ 相对误差限: r (x) 2
相对误差限的概念
取x1*=3作为π的近似值,则|ε1(x)|=0.1415 … ≤0.5×100; 取x2*=3.14,则|ε2(x)|=0.00159 … ≤0.5×10-2; 取x3*=3.1416, 则|ε3(x)|=0.0000074 … ≤0.5×10-4 。
它们的误差都不超过末位数字的半个单位。
有效数字的概念
x2=q/x1来求解方程 X2+2pX+q=0 是数值稳定的。 从而可知,算法数值稳定性的讨论甚为重要。
二、设计算法的若干原则
为防止误差使计算结果失真(失常)现 象发生,要选用数值稳定的计算公式,以 保证算法的数值稳定性。下面我们给出设 计算法的若干原则,并给出改善算法的例 子,这些原则有助于鉴别算法的可靠性并 防止误差危害的现象产生。
包括第一位非零数字前面的零)作为它的近似 值x*时,x*有n位有效数字。 • 例2 设 x = 4.26972,则按四舍五入法,取2位, x1*=4.3有效数字为2位,取3位,x2*=4.27,有效数 字为3位,取4位,x3*=4.270,有效数字为4位。
特别注意
近似值后面的零不能随便省去, 如 例2中4.27和4.270,前者精确到4.27,有效 数字为3位,取4位,x3*=4.270,有效数字 为4位。可见,它们的近似程度完全不同, 与准确值的最大误差也完全不同。
解的相对误差
εr(y) ≈dy/y =Σ∂f (x1,x2 )/∂xi*xi/ f (x1,x2 )*εr(xi) (i=1,2)
利用这两式可得到两数和、差、积、商的误差估 计。
算法的数值稳定性
一、算法的数值稳定性概念
所谓算法,是指对一些数据按某种规定的顺序
进行的运算序列。在实际计算中,对于同一问题我 们选用不同的算法, 所得结果的精度往往大不相同。 这是因为初始数据的误差或计算中的舍入误差在计 算过程中的传播,因算法不同而异,于是就产生了 算法的数值稳定性问题。一个算法, 如果计算结果
由此看到I8为负值、 I9 >1,显然与一切0<In<1
(由于 e-1/(n+1)= min(ex-1)∫01xndx<In (0≤x≤1)
<max (ex-1)∫01xndx=1/(n+1)
且误差积累也很大。若简化成 1-1/1001 进行计 算,则整个计算只要一次求倒数和一次减法。
(四)要避免绝对值小的数作除数
由式 ε(x1/x2)≈d(x1/x2)≈[x2ε(x1)-x1ε(x2)]/ x22 , (x2≠0) 可知,当除数x2接近于零时,商的绝对误差就可能很大。因此 , 在数值计算中要尽量避免绝对值小的数作除数, 避免的方法是把 算式变形或改变计算顺序。 例8 当x接近于0时
受误差的影响小,就称这个算法具有较好的数值稳 定性。否则,就称这个算法的数值稳定性不好。
算法的数值稳定性概念举例
例1 一元二次方程
X2+2pX +q=0 的两个根分别是:
x1= –p+(p2–q)0.5,x2= –p–(p2–q)0.5 当p= –0.5×105,q=1时,方程的两个根取11位有效数字为:
法。 如改用下式计算 (((0.062 5x+0.425)x+1.215)x+1.912)x+2.129 6
则只需做四次乘法和四次加法。
简化计算步骤、减少运算次数、避免误差积累的例子
又如计算
1/(1*2)+1/(2*3)+…+1/(1000*1001)
的值。 若一项一项进行计算,不仅计算次数多,而
如果按从左到右的顺序进行加法运算,后三个数都在对阶过 程中被当作零,得出含有较大绝对误差的结果y=54321。要避免 这种大数“吃掉”小数的现象,可以调整计算顺序,采用先小数
后 大数的计算次序,即先将0.4,0.3,0.4加起来,然后再加上54321, 结果等于54322。
一般情况下,若干数相加,采用绝对值较小者先加的算法,
x1=99999.999990 , x2=0.000010000000001 在高精度的计算机(进制β=10,字长t=8,浮点阶码下限L= –50, 浮点阶码上限U=50)上直接用上述公式计算的结果为:
x1=100000.00, x2=0 可见,结果x1很好,而x2很不理想,这说明直接用上述公式 计算第二个根是不稳定的,其原因在于在计算x2时造成相近两数 相减,从而使有效数字严重损失。请看下面的求解方法。
例4 对于绝对值小的 x,可利用泰勒级数 ex–1= x+x2/2+x3/6+…
取前n项来计算。
(二)要防止大数“吃掉“小数,注意保护重要数据
在数值运算中,参加运算的数有时数量级相差很大,而计算 机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的
现 象,影响计算结果的可靠性。
例5 在五位浮点十进制计算机上,计算 y=54321+0.4+0.3+0.4
二元函数 设数学问题的解y与变量x1 , x2有关, y=f(x1,x2)。若
x1,x2的近似值为x1*, x2*,相应解为y*,则当数据误差较 小时解的绝对误差
ε(y)=y-y*=f(x1,x2 )-f(x1*,x2* ) ≈dy=∂f (x1,x2 )/∂x1*ε(x1)+∂f (x1,x2 )/∂x2*ε(x2)
值,则绝对误差是
|x-x*| ≤0.5 ×10-2-5 = 0.5 ×10-7
定义3或式
|ε(x)|=|x-x*| ≤0.5 ×10p-n
建立了绝对误差(限)和有效数字之间的关系。由于n 越大,10p-n
的值越小,所以有效数字位越多,则绝对误差(限)越小。
有效数字与相对误差的关系
定理1 若近似数x*具有n位有效数字,则 其相对误差为
0.484
24
24
我们不能由此推出x*有两位有效数字,这是因为
x-x*=0.4900-0.484=0.0060>0.005
即可知近似值x*并不具有两位有效数字。
实际上, x*只有一位有效数字。
数值运算中误差的影响
要分析数值运算中误差的传播,首先就要估 计数值运算中的误差。数值运算的误差估计情况 较复杂, 通常利用微分来估计误差。
ε| r(x)| ≤1/(2×a1) ×10-(n-1)
其中a1≠0是x*的第一位有效数字。
定理1说明有效数字位越多,相对误差(限)越小。
定理2 形式如x*= ±0.a1a2… an … ×10p的近似数 x*,若其相对误差满足
ε| r(x)| ≤1/[2×(a1+1)] ×10-(n-1)
则x* 至少有n位有效数字。 由此可知,有效数字位数可刻画近似数的精