1绪论-求根课件1(2)

2020-03-27 19:25

设计算机的数系为F(?,t,L,U) ,m及M是其中绝对值最小及最大的正数,某数

x???c?0.a1a2???,a1?0满足m?x?M,x? F(?,t,L,U),则计算机经舍入处理?, 后以数fl(x) 接收,即fl(x)???c?a??0.a1a2???at?a???t??0.a1a2???at??1) efl?x??x?fl(x)?0.5??2)erfl?x??0?at?1??/2at?1??/2

因此计算机对x的舍入绝对误差和舍入相对误差有如下估计

??c?t

??x?fl(x)x0.5??c?t??0.5??1?t c0.1??由此可知,计算机对任何实数的舍入相对误差限与实数本身无关,只与计算机字长t有关,其值为0.5??1?t。因此通常定义数eps?0.5??1?t 为计算机的精度。给定一台计算机后,其舍入相对误差的精度也就给定了,任何运算要想得到比计算机精度更小的舍入相对误差,需要做特别处理才行。由于计算机的精度只与字长有关,计算机字长t越大,其精度越高。这也是在数值计算中,为了提高计算结果的精度,有些数值要用双字长处理的原因,双字长数据也称为双精度数。

1.4有效数字

定义1.5 若近似数x* 的误差限是其某一位上数字的半个单位,就说近似数x* 准确到该位;由该位自右向左数到x* 的第一个非零数字若有n位,就称近似数x*有n位有效数字。

由定义可知,若近似数x*有n位有效数字,只要最后一位有效数字不是零,则可以认为与准确数x相比, x*的前n-1位数字都是准确的,只是最后一位可能比x在该位数的值少1。因此,可以从有效数字推断出准确数的主要数据部分。

有效数字的数学描述是:设x*??0.a1a2???ak?10m,a1?0,al??0,1,2,???,9?,m为整数,k为不小于正整数n的整数。若有关系式

e?x*??x*?x?0.5?10m?n(1.4)

就称近似数x*有n位有效数字,此时x*有n位有效数字的值为?0.a1a2???an?10m。 式(1.4)常用来确定近似数有多少位有效数字。

可以证明,如果十进制准确数x经过四舍五入得到近似数x*,则x*的有效数字位为将x*写为规格化浮点数后的尾数的位数,例如x =0.00345, 四舍五入得x*=0.0035=0.35?10-2,可知x*有2位有效数字。

由定义可知,有效数字越多,绝对误差和相对误差就越小,因此近似数就越准确,这也是科学计算中要尽可能多保留有效数字的原因。

例1.4 求圆周率??3.1415926??? 的近似值x1?3.14和x2?3.141的有效数字。 解 x1?0.314?101 x2?0.314?1110m,?

1 6

由??x1?0.015926????10?2?0.15926????0.5?10?2,有m-n =-2 ,得n =3 ,即x1有3位有效数字;

由??x2?0.0005926????10?3?0.5926????0.5?10?2,有m-n =-2 ,得n=3 , 即x2有3位有效数字。

例 1.5 已知近似数x*有5位有效数字,试求其相对误差限。

解 因为x*有5位有效数字,可以设x*??0.a1a2???a5?10m,a1?1,于是有n=5和

x*?x?0.5?10m?5,考虑x*的相对误差:

x*?xx*0.5?10m?55?10?511?4?4????10??10 m0.a1a2?a5?10a12a12故有5位有效数字的x*相对误差限为0.5?10 -4 。

有效数字与相对误差有如下关系:

定理1.3设近似数x*??0.a1a2???ak?10m,a1?0,al??0,1,???,9?,m为整数,有: 1) 若x*有n位有效数字,则x*的相对误差

er?x2) 若x*的相对误差

*??x*?xx*?1?101?n2a1(1.5),

er?x*??则x*有n位有效数字。

x*?xx*?1?101?n2?a1?1?m?n(1.6)

*证明 1) 因为x*有n位有效数字,则有x?x?0.5?10,于是

er?x2) 由

*??x*?xx*0.5?10m?n0.51?n1?n???10??10 m0.a1a2?ak?100.a12a1x*?xx*?*1?101?n,有

2?a1?1?*0.a1a2?ak?10m11?nx?x?x??10??101?n2?a1?1?2?a1?1?a.a?ak?12?10m?n2?a1?1?证毕。

a1.a2?ak?a1?1?1?10m?n2

例 1.6 为保证某算式的计算精度,要求参与计算的323的近似值x*的相对误差小于0.1%,请确定x*至少要取几位有效数字才能达到要求。 解 先将323写成浮点数。 因为2?3323?,所以323?2.a2a3??0.a2??1,得到10a1=2。假设x*至少要2a3取n位有效数字才能保证相对误差小于0.1%,由定理1.3的(1.5)式,选择满足

111?101?n?0.1%得?101?n??101?n?0.1%的最小整数n即可。由

2?22a12?2

7

104?n?4,因而要n?4才行。满足此式的最小整数n为4,故x*至少要取4位有效数字

才能达到相对误差小于0.1%的要求。

例 1.7 若x =1.1062, y =0.947是经过四舍五入后得到的近似数,求x-y和xy的绝对误差限,指出x-y和xy各有几位有效数字并给出其用有效数字表示的值。

- 4 -3

解 由有效数字定义有:|dx|? 0.5?10 ,|dy|? 0.5?10,因为

|e(x-y)|= |d(x-y)|? |dx-dy|?|dx|+|dy|? 0.5?10-4+0.5?10-3<0.5?10-2

故x-y的绝对误差限为0.5?10,也说明x-y可以准确到小数点后两位。

直接计算有x-y=0.1592的值有2位有效数字, 利用四舍五入法,得出x-y具有2位有效数字的近似数为0.16;由

-2

|e(xy)|= |d(xy)|? |ydx+xdy|?|y||dx|+|x||dy|?0.947?0.5?10-4+1.1062?0.5?10-3<0.5?10-2

故xy的绝对误差限为0.5?10,说明xy可以准确到小数点后两位。直接计算有xy=1.04757的值有3位有效数字,利用四舍五入法,得出xy具有3位有效数字的近似数为1.05。

1.5数值分析研究的对象、内容及发展

数值分析是一门最古老的数学,因为它只涉及到数的四则运算,但它又是一门很年轻的数学,因为它是随计算机的诞生、发展和广泛应用而逐步发展形成的,其理论还涉及到现代数学的理论和内容。

数值分析属计算数学的范畴,有时也称它为计算方法、数值方法、计算数学等,其研究对象是各种数学问题的数值方法设计、分析,有关的数学理论和软件实现,它是一个数学分支。

数值分析的内容可分为两大方面:1.连续系统的离散化;2.离散型方程的数值求解。

-2

求定积分

?f(x)dx 是连续系统问题,数值分析常用公式 ?f(x)dx??Abbk?1bbnkf(xk)

微分方程的定解问题

??y'?f(x,y)(a?x?b) ?ya?y?a???令ym?y(xm),h?(b?a)/n,xm?a?mh(m?0,1,2,???,n)可转化为离散化方程

ym?1?ym?hf(xm,ym)

这样由y0?ya,可依次求出y1,y2,???,yn,从而求函数y?x?在xm的近似值

y?x1?,y?x2?,???,y?xn?,然后数据逼近方法求出y?x?的近似解。

串行计算方法或串行算法 ,

1.6 1. 数值问题

由一组已知数据(输入数据),求出一组结果数据(输出数据),使得这两组数据之间

8

数值分析中常用的一些概念

满足预先指定的某种关系的问题,称为数值问题。 2. 数值解

由近似公式计算出的解称为数值解。一般数值解是近似解。 3. 算法

由给定的已知量,经过有限次四则运算及规定的运算顺序,求出所关心未知量的数值解,这样所构成的整个计算步骤,称为算法。 数值分析本质上是研究和构造算法。

4.计算量

一个算法所需要的乘法和除法总次数称为计算量,常用N表示。

计算量的单位为flop,表示完成一次浮点数乘法或除法所需要的时间。算法的计算量可以衡量算法的优劣,因为它体现着算法的计算效率。

算法的计算量越小,则算法的计算效率越高,因而该算法也就越好。

注:在以往由于计算机做加减法通常要比乘除法快得多,故在一般情况下算法的计算量可以不考虑加减法的计算时间。但目前由于计算机技术的发展,计算机做加减法与做乘除法耗费的时间已相差不大,因此,一些数值分析的教材在计算量定义中加入了加减法次数。考虑到数值分析是一个科学计算的基础部分,为方便计,本书的计算量定义采用通常的做法。

例如假设A,B,C 分别为10×20,20×50,50×1的矩阵,计算D=ABC就有如下不同的算法和计算量:

算法1 D=(AB)C 计算量 N=10500 flop 算法2 D=A(BC) 计算量 N=1200 flop

显然算法2的计算量比算法1小,因而算法2比算法1要好。

5. 病态问题和良态问题 1) 病态问题

因初始数据的微小变化,导致计算结果的剧烈变化的问题称为病态问题。

病态问题也称坏条件问题,这类问题通常是问题本身固有的,其在函数计算、方程求根及方程组求解中都是存在的。例如,线性方程组

1111?x?x?x??122336?1113?1 (1.7) ?x1?x2?x3?23412?1147?1x?x?x??31425360?的准确解为 x1=x2=x3=1 ,把它的系数都舍入成两位有效数字做小的扰动后,原方程组变为

?x1?0.50x2?0.33x3?1.8??0.50x1?0.33x2?0.25x3?1.1 ?0.33x?0.25x?0.20x?0.78123?这个方程组的准确解为 x1=-6.222 ,x2=38.25,x 3= -33.65,此解与扰动前的解完全不同了。方

程组(1.7)的求解就是病态问题。

9

因为实际问题的数据都是近似的或经计算机做了舍入处理的,这都会引起原始数据的扰动。若所求解的问题正好是个病态问题,则采用通常算法计算就会出现很隐蔽的错误,导致不良的后果。因此,在做科学计算时要特别注意所求解的问题是否为病态问题。

病态问题的计算或求解应使用专门的方法或将其转化为非病态问题来解决。 2)良态问题

初始数据的微小变化只引起计算结果的微小变化的计算问题称为良态问题。

?2x1?x2?6?2x1?x2?6 例如对方程组?的常数项做微小扰动后变为?

x?2x??2x?2x??2.00522?1?1扰动前方程组的准确解为 x1=2 x 2 = -2,而扰动后方程组准确解为x1=1.999,x2=-2.002。

这两组解之间的差别是不大的。

数值分析中主要研究良态问题的数值解法。 6. 数值稳定算法

如果一个算法进行计算的初始数据有误差,而在计算过程中产生的舍入误差不增长,则称该算法为数值稳定算法,否则称为数值不稳定算法。 例1.8设计算机的数系为F(10,4, L,U),今有一批数据

x1?0.5055?10,x2?x3?????x11?0.4500 ,试求其和S??xi。

4i?111 解 算法1. 按 x i 角标由小到大的顺序计算

fl(x1?x2)?fl(0.5055?104?0.4500?100)?fl(0.5055?104?0.000045?104)

?fl(0.505545?104)?0.5055?104?x1同理,有fl((x1?x2)?x3)?fl(fl(x1?x2)?x3)?fl(x1?x2)?x1???

最后得S?0.5055?10

算法2. 按x i 的角标由大到小的顺序计算:

4fl(x11?x10)?fl(0.4500?100?0.4500?100)?0.9000?100

fl(x9?fl(x11?x10))?fl(0.4500?100?0.9000?100)?0.1350?101……

最后得S?0.5060?10

例1.9计算数列In? In?4?10xndx,n?1,2,?,100 值。先考察计算该数列的递推公式 x?51?5In?1的数值稳定性。如果该公式不是数值稳定的,试给出一个数值稳定的算法来n完成计算并证明其稳定性。

11**?5In?1,故其带有舍入误差的对应计算公式为In??5In?1,二式相nn**n**减得In?In?5In?1?In?1?5I0?I0,n?1,2,?,该计算公式由I0开始,依次计算出

解 因为 In?**,其在每次计算过程中,都将上次计算的舍入误差放大5倍,从式中可知计I1*,I2,?,I100算I n时的舍入误差为初始误差的5 n倍!因此该算法不是数值稳定算法。

10


1绪论-求根课件1(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:微观经济学复习试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: