计算机运算实际运算的误差,误差

本文探讨了数值计算中的误差来源,包括计算机数系的有限性和离散性导致的计算误差,以及模型误差、测量误差、截断误差和舍入误差。介绍了计算机对数的接收和处理方式,强调了舍入误差在计算过程中的积累影响。此外,还讨论了绝对误差、相对误差和有效数字的概念,以及如何通过有效数字来衡量近似值的精确度。最后,提出了数值稳定性的概念和构造稳定算法的原则。
摘要由CSDN通过智能技术生成

§1.2 数值计算的误差

用数值方法解决科学研究或工程技术中的实际问题,一般来说,产生误差是不可避免的,根本不存在绝对的严格和精确。但是我们可以认识误差,从而控制误差,使之局限于最小(或尽量小)的范围内。

算法的实现必须在计算机上进行,计算机并不是像一般人想象的哪样可以解决一切问题而不出差错。半个世纪以来计算机带给我们这个世界的诸多烦恼中,误差问题最为突出。小到银行利率的错算,大到导弹的错误发射,除了操作人员的疏忽、机器的故障引起过失误差外,计算机在处理数据过程中还存在计算误差。这主要是计算机机器数所引起的,机器数的特点是有限、离散;这和数学上常用的实数系无限、稠密、连续的特点完全不同。

在2400多年前,古希腊人提出了被称为几何三大问题的古典难题。这说明在历史上,人类就常被误差所困扰。下面问题就是三大难题之一。

立方倍积问题做一个立方体,使其体积为已知立方体的二倍。

解 不妨设已知立方体体积为1,要做的立方体体积为2,则所做立方体高度应该为6d98c90814c84ee7c4e9c48c4ccfa8f8.gif。用计算机计算出89d87cfdb658267f782edb57b1d1b88e.gif≈1.259 921 049 894 87(15位数),尽管精确度相当高,但仍然是近似值。下面表中列出了对h取前有限位数时,计算所得体积的误差。

位数

高度

体积

误差

2

1.2

1.728

2.7200×10--1

3

1.25

1.953125

4.6875×10--2

4

1.259

1.995616979

4.3830×10--3

5

1.2599

1.999899757799

1.0024×10--4

6

1.25992

1.99999500019149

4.9998×10--6

7

1.259921

1.99999976239049

2.3761×10--7

8

1.2599210

1.99999976239049

2.3761×10--7

9

1.25992104

1.99999976239049

4.7121×10--8

10

由上表可知,计算机机器数的有限位特点使这一问题只能在满足一定的精度条件下解决。误差是无法消除的。

1.2.1计算机的数系与运算特点

1.计算机数系

我们所研究的算法都是在计算机上求解的方法,因此应该了解计算机是如何进行数字计算的,这有助于构造和分析各种数值方法。数字运算主要是实数运算,而任一实数都可以表示为

5732332d446b32ad9590dc329e377af1.gif=±8252013cf570b4ea6bdbf8aaa430020f.gif

其中 325590b94451d6bd0ff02b1bd1f7fcd0.gif为整数,x称为十进制浮点数。一般地,可定义c07cb17f92975911fd1e0af16df75396.gif进制浮点数为

5732332d446b32ad9590dc329e377af1.gif=±49fab707bb0c0bf9b0b4a49d0f3a5807.gif

其中 bc5bda37f39c64f92d4d0e2e631e77a5.gif

在计算机中,由于机器本身的限制,一般实数只能被表示为

5732332d446b32ad9590dc329e377af1.gif=±c2f9d9bc69b1199162a7c7ad53ae8539.gif

其中 1817fba70f7cb072a03a957c41d5a7d7.gif这里的t是正整数,是计算机的字长,c为整数,满足a7ef04f15427ac5a289e5978838e2e63.gif7e4ae9da3bb23db3cd4a8cafa4081330.gif为固定整数,对不同的计算机,9b1d9ba4e5625aad6391f87320cfdbfc.gif是不同的。这样的是x称为t位c07cb17f92975911fd1e0af16df75396.gif进制浮点数,其中c称为阶码,3c729ccc4cda34dd8409df877ab7c627.gif称为尾数,数集

4ea7b62c4eec4aa6d4feabd605be5ef8.gif±aa1bd8a8d8b3585496f86d19cfb214bc.gif

757a46ff97225f0b76426bd4bd4c109f.gifa7ef04f15427ac5a289e5978838e2e63.gif}

称为机器数系,它是计算机进行实数运算所用的数系,一般c07cb17f92975911fd1e0af16df75396.gif取2,8,10和16.机器数系F是一个离散的有限集合,分布也不均匀。在F中有一个最大正数M和一个最小正数m,如数系612a1d40f29560a7d80761fccf0d9126.gif中,21bbeda1540b8d9ac216cbfddb5ef541.gifb3e432d9179895bdc8f5135bc7efe398.gif若一个实数的绝对值大于M,则计算机产生上溢错误,若绝对值小于m,则计算机产生下溢错误,上溢时计算机中断程序处理;下溢时,计算机将此树以零表示,继续执行程序。上溢、下溢统称为溢出错误。通常,计算机把尾数为0且阶数最小的数表示为数零。

2.计算机对数的接收

设实数x是计算机接收的数,则计算机对其的处理方法是:

1)若35faaf730acc20168af08e614948f3f0.gif,则计算机按原样接收x;

2)若b2d3fc488d893f2ce6251fbd96506767.gif,但fc5e25ee59d9eda214a662e26b7d905f.gif,则计算机用数系F中最接近x的数b41d66d2745b20958c768d1470832b65.gif表示并记录x。

3.计算机对数的处理

计算机对接收到数主要做加减乘除四则运算,其运算方式是:

1)加减法——先向上对阶,再运算,后舍入。

例1设计算机数系为612a1d40f29560a7d80761fccf0d9126.gif2c1a97f0dacb96e00138727bb6c9cdfb.gif245ce62f16b74d541e39eacfc79c5666.gif

6cfd67af4d3f785f7c86455f9048cf5d.gif是计算机接收到的二数。则此二数做加法的处理过程是:

0ffec22ee8e157773ee41c4744914ec1.gif

2)乘除法——先运算,后舍入。

例2同例1条件,则此二数做乘法的处理过程是:

bf0e718a5740d4525975423c727d8fb9.gif

b3bbd1491b6941928491a30f2255ae37.gif

计算机接收和处理实数的上述特点,往往使得数学上完美的公式在计算机上编程计算时却得不到正确的结果,所以在数值计算的研究中应注意计算机的此种特点。

在计算机数系中,把尾数第一位d5d70080af9517dc31e4861b8f27a63f.gif的数称为规格化浮点数,用规格化浮点数表示一个实数,具有形式唯一和精度高的特点,但并不是780872685ad36f9341f544443c0e6675.gif中所有数都能用规格化浮点数表示,如d681967c0de54dbfe7235bb2730eae94.gif就不能用规格化浮点数表示。

1.2.2误差的来源与分类

在数值计算过程中,估计计算结果的精确度是十分重要的工作,而影响精确度的因素是各种各样的误差,它们可分为两大类:一类称为“过失误差”,即因为疏忽导致误写数字和误用公式等,它一般是由人为造成的,这是可以避免的,故在“数值计算”中我们不讨论它;而另一类称为“非过失误差”,这在“数值计算”中往往是无法避免的,也是我们要研究的,大体有四种类型:模型误差、测量误差、截断误差和舍入误差。例如,计算地球的表面积可以用近似公式:d1ba8866b3d03fa189e3b7e2dbb3bf80.gifd9cb2c0e19fb6b84d109b37699a0ce8e.gif5992398a340aa75c10d289fe245df85a.gif。这其中就包含了各种误差。

1模型误差

用数值计算方法解决实际问题时,首先必须建立数学模型。由于实际问题的复杂性,在对实际问题进行抽象与简化时,往往为了抓住主要因素而忽略了一些次要因素,这样就会使得建立起来的数学模型只是复杂客观现象的一种近似描述,它与实际问题之间总会存在一定的误差。我们把数学模型与实际问题之间出现的这种误差称为模型误差。在上面的近似公式中,把地球表面近似地看成一个球,这就是地球的简单模型,它与地球的实际情况有很大的差别。

2测量误差

在数学模型中往往包含一些由观测或实验得来的物理量,如电阻、电压、温度、长度等,由于测量工具精度和测量手段的限制,它们与实际量大小之间必然存在误差,这种误差称为测量误差。上面近似公式中地球半径是要经过测量得到,然而无论使用什么工具,其误差是无法避免的。

3截断误差

由实际问题建立起来的数学模型,在很多情况下要得到准确解是困难的,通常要用数值方法求出它的近似解。例如常用有限过程逼近无限过程,用能计算的问题代替不能计算的问题。这种数学模型的精确解与由数值方法求出的近似解之间的误差称为截断误差,由于截断误差是数值计算方法固有的,故又称为方法误差。例如用函数8bb81d9815944fd4aea86f72ff24a01b.gif的泰勒(Taylor)展开式的部分和366d08537ad4e7802c5ed7643a0453f9.gif去近似代替

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值