《计算方法》课件第1章_第1页
《计算方法》课件第1章_第2页
《计算方法》课件第1章_第3页
《计算方法》课件第1章_第4页
《计算方法》课件第1章_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章绪论1.1引言1.2计算机中数的表示1.3数值计算的误差1.4函数求值的误差1.5数值计算中要注意的若干原则数学是研究数量、结构、变化以及空间模型等概念的一门学科。随着社会的发展和科学的进步,数学开始被应用于力学领域,后来被应用于越来越广的范围,覆盖了物理、工程、化学、天文、地理、生物、医学,甚至经济、

语言等领域,这促进了包括可应用的数学及数学的应用两个部分的应用数学的产生和迅速发展,使其成为数学的一个分支。应用数学研究如何将数学知识应用到其他的范畴,它包含许多分支,其中数值计算方法是其重要的分支之一。1.1引言数学是研究数量、结构、变化以及空间模型等概念的一门学科。随着社会的发展和科学的进步,数学开始被应用于力学领域,后来被应用于越来越广的范围,覆盖了物理、工程、化学、天文、地理、生物、医学,甚至经济、语言等领域,这促进了包括可应用的数学及数学的应用两个部分的应用数学的产生和迅速发展,使其成为数学的一个分支。应用数学研究如何将数学知识应用到其他的范畴,它包含许多分支,其中数值计算方法是其重要的分支之一。计算机解决实际问题的过程包括实际问题、数学模型、计算方法、方法的程序设计、计算机求解等步骤。其中实际问题包括各个领域的许多问题,而这些实际问题的计算机求解,目前虽有一些计算软件可以直接使用,如Matlab、Mathematica等,但需要了解算法设计的原理,以便更好地应用;同时,随着实际问题越来越复杂,规模越来越庞大,现成的数值方法软件难以满足实际需要,如天气预报、计算化学、Web搜索、结构设计等,这也要求学习计算方法,以便寻求新的解决问题的方法。

本书从工程实际问题出发,研究以下数学问题:非线性方程的求解、线性方程组的求解、函数的插值与逼近、数值积分与微分、微分方程的数值求解、矩阵的特征值与特征向量的计算。 1.2计算机中数的表示

在数值计算中无处不涉及小数的运算,了解小数在计算机中的表示和运算是学习数值计算方法的基础。计算机中的数都是以二进制的形式来表示的。对于正整数,二进制形式为而对于小于1的正数,其形式为其中,di表示二进制数字,取值为0或1。1.2.1定点表示

定点表示就是小数点的位置在数中固定不变。计算机中有两种定点数最常用:一种是定点纯小数,另一种是定点纯整数。

定点纯小数是把小数点固定在数的符号位之后、最高数值位之前,小数点位置隐含,本身不占位,其格式如图1.1所示。图1.1定点纯小数的格式

定点纯整数是把小数点固定在数值的最低位之后,最高位为符号位,小数点位置隐含,本身不占位,其格式如图1.2所示。图1.2定点纯整数的格式

例1-1

如图1.3所示的两个8位二进制数,求对应的十进制数。

解图1.3(a)所示为定点纯整数表示方法,故可得N1=+84,N2=-84。

图1.3(b)所示为定点纯小数表示方法,故可得N1=+0.65625,N2=-0.65625。图1.3例1-1用图1.2.2浮点表示

相比定点表示,浮点表示在位数有限的前提下可以扩大数的表示范围,同时又可保持数的有效精度。

浮点数在机器中的一般表示形式如图1.4所示。图1.4浮点数的表示形式其中P表示阶码,而阶符表示阶码的符号;S表示尾数,尾符表示尾数的符号。也就是说,计算机中一个浮点数由阶码和尾数组成,而阶码和尾数都有自己的符号。

通常,用一位二进制数Pf表示阶码的符号位。当Pf=0时,表示阶码为正;当Pf=1时,表示阶码为负。

同样,用一位二进制数Sf表示尾数的符号位。当Sf=0时,表示尾数为正;当Sf=1时,表示尾数为负。

例1-2用浮点数表示-18.75,并假定尾数用8位二进制表示,阶码用4位二进制表示,均含符号位。

解因为(-18.75)10=(-10010.11)2=(-0.1001011)×2+101

则-18.75的浮点数表示如图1.5所示。图1.5例1-2用图 1.3数值计算的误差

1.3.1误差的来源

基于计算方法应用计算机求解实际问题的过程,不可避免会引入误差,根据误差的来源不同,误差通常分为以下四种类型:

(1)模型误差。 用数学方法解决一个具体的实际问题,首先要建立数学模型,这就要对实际问题进行抽象、简化或假设,因此建立的数学模型与实际客观问题之间就存在着一定的差距,即误差,这种误差称做模型误差。

(2)观测误差。 在数学模型中通常包含一些需要通过观测得到的物理量,如温度、长度、电压等,这些量的观测值与其实际值之间的误差,称做观测误差。

(3)截断误差。当数学模型不能得到精确解时,通常用数值方法求它的近似解,则所求得的近似解与准确解之间的误差称为截断误差,也称为方法误差。例如,计算sinx的值时,应用其泰勒展开式有如果取该式的前两项计算sinx的值,即则为计算sinx的截断误差。

(4)舍入误差。由于计算机的字长有限,参加运算的数据在计算机中只能表示为数据真实值的近似值,由此产生了误差,而且用计算机进行实际计算时每一步都可能产生该类误差,这种误差称为舍入误差。

例如,设计算机的字长为最多能够处理10位十进制数,则1÷3=0.3333333333,而其真实值应为1÷3=0.33333333333…,由此产生的误差就是舍入误差。1.3.2绝对误差

定义1.1设x为准确值,x*为x的一个近似值,称x-x*为近似值x*的绝对误差,简称误差,记做e*,即

(1.1)通常无法知道准确值x,也就不能算出误差的准确值e*,只能根据测量或计算估计出误差的绝对值不超过某个正数ε,即(1.2)ε称为绝对误差限或精度。显然,误差限不是唯一的,但是误差限越小,表示近似值的精度越高。近似值的误差可正可负,实际应用中常用误差限来表示误差。有了误差限就可知道x的范围,因此工程上通常用(1.3)

来表示近似值的精度或准确值的范围。例如,用毫米测度尺测量一长度x,若误差限为0.5mm,读出的长度为23mm,则有|23-x|≤0.5mm;又如,测得某物体长度为5m,若误差限为0.01m,则可记准确长度x=(5±0.01)m,即该物体的准确长度在4.99m~5.01m范围内。绝对误差是有量纲的,这从上述的两个例子也可以看出。另外,仅有绝对误差通常不能完全刻画近似值的精确程度。例如,x=(15±2)cm,y=(1000±5)cm,则e(x*)=2cm,e(y*)=5cm,从表面上看y*的绝对误差大于x*的绝对误差,得出x*更精确的结论;实际上,x*为15cm产生了2cm的误差,即每1cm产生的误差约为0.1333cm,而y*为1000cm产生了5cm的误差,即每1cm产生的误差为0.005cm,所以y*比x*更精确,其实这就是相对误差。1.3.3相对误差

定义1.2设x为准确值,x*为x的一个近似值,称(x-x*)/x为近似值x*的相对误差,记做e*r,即(1.4)根据绝对误差的定义,即式(1.1),将其代入式(1.4)有即相对误差可由绝对误差与准确值计算得到,但实际中准确值难以得到,因此通常根据下式来计算相对误差:(1.5)同绝对误差一样,相对误差也可正可负,因此实际中也取某个正数εr作为误差限来表示相对误差,即|er*|≤εr,则根据式(1.2)可得(1.6)

例1-3已知某商品的质量为(35±0.2)kg,计算该商品的相对误差限εr。

解根据已知可得该商品质量的绝对误差限ε=0.2,则根据式(1.6)有

例1-4已知e=2.71828182…,取其近似值e*=2.71828,求e*的绝对误差限ε和相对误差限εr。

e*的绝对误差为所以绝对误差限为则相对误差为1.3.4有效数字与误差

定义1.3若x*作为x的近似值,其绝对误差的绝对值不超过某一位的半个单位,而从该位开始到x*的第一位非零数字共有n位,则称用x*近似x时,具有n位有效数字,简称x*有n位有效数字。

一般来说,如果x的近似值x*可以表示成如下形式:(1.7)其中ai∈{0,1,2,…,9},且a1≠0。若(1.8)则称近似数x*具有n位有效数字,或称x*精确到第n位;反之,若x*具有n位有效数字,则其绝对误差必定满足:这也称为有效数字的等价定义。

例1-5已知π=3.14159265…,设π的3个近似值分别为π1=3.14,π2=3.1415,π3=3.1415927,求π1、π2、π3有效数字的个数。

解方法一:根据有效数字的定义,需计算π1、π2、和π3的绝对误差限,即

所以π1有3位有效数字,π2有4位有效数字,π3有8位有效数字。

方法二:利用有效数字的等价定义计算,则有

1=3.14=0.314×101,而,即k-n=-2,而k=1,所以n=3,即

1有3位有效数字。同理可得

2=3.1415有4位有效数字,

3有8位有效数字。例1-6已知x=4.854±0.03,则其近似值4.854具有几位有效数字?

解因为4.854的误差限ε=0.03,则ε<0.05=0.5×10-1,根据有效数字的等价定义,k-n=-1,而k=1,所以n=2,即4.854具有2位有效数字。

定理1.1如果x的近似值x*可以表示成如下形式:

(2)若x*的相对误差满足所以x*有n位有效数字。

例1-7要使得的相对误差不超过0.1%,应至少取几位有效数字?

解设的近似值x*有n位有效数字,则由定理1.1得x*的相对误差满足而x*的首位数字a1为4,所以有由此可以得到n≥3.097,即应至少取4位有效数字。

1.4函数求值的误差

1.一元函数的情况

计算函数y=f(x)的值,若得到的是x的近似值x*,由此计算得到的函数值也是近似值y*=f(x*),现在研究y*的绝对误差与相对误差。

将f(x)在x*处作泰勒展开,并取一阶泰勒多项式,则有所以y*的绝对误差e(y*)=y-y*=f(x)-f(x*)≈f′(x*)(x-x*),即根据相对误差的定义可以得到y*的相对误差为:

(1.9)(1.10)y*的绝对误差为根据相对误差的概念可以得到y*的相对误差为:(1.12)(1.11)

3.和、差、积、商误差的计算

利用函数求值的误差计算公式可以得到两个数的和、差、积、商的误差估计,设两个近似数x*1、x*2,其误差分别为e(x*1)和e(x*2),对它们进行加、减、乘、除运算得到的误差分别为(1.13)(1.14)(1.15)(1.16)

例1-8测得某桌面的长a的近似值a*=120cm,宽b的近似值b*=60cm。若已知|e(a*)|≤0.2cm,|e(b*)|≤0.1cm,试求面积近似值s*=a*b*的绝对误差与相对误差。

解根据乘法运算的误差计算公式得则相对误差为1.5数值计算中要注意的若干原则

解决一个问题的计算方法往往有多种,不同的计算方法计算结果的精确度往往不同,计算量小而精度高的算法最好,因此对数值计算中计算结果的精度,即误差,进行分析十分重要。然而现实中的工程或科学问题经常是非常复杂的,针对其计算的每一步都进行误差分析难以做到,也不必要,因此通过对误差传播的分析并结合计算过程中的实践经验,得出了数值计算中应注意的若干原则。

(1)尽量避免两个相近的数相减。数值计算中,两个相近的数相减会严重损失有效数字,也会造成计算结果相对误差变得很大。如x=532.65和y=532.32都具有5位有效数字,但x-y=0.33只有两位有效数字。要避免这种现象的发生所采取的措施就是改变计算方法。例1-9当x很大时,和1/x-1/(x+1)的运算就是两个相近的数相减,避免该现象的方法是改变其计算方法,具体如下(即用右端代替左端进行计算):

例1-10当x1与x2很接近时,的运算成为两个相近的数相减,避免该现象的方法仍是改变其计算的方法:

例1-11当x接近于0时,1/sinx-cosx/sinx变成两个相近的数相减,避免该现象的方法同样是改变其计算方法,即

一般情况下,当x*位于x附近时,可以用泰勒展开公式代替两个相近函数值的相减计算:

(1.17)

(2)避免大数“吃”小数现象。若参加运算的数量级相差很大而计算机的位数有限,如不注意运算次序,可能出现大数“吃”小数现象,影响计算的结果。如当|a|>>|b|时,应尽量避免进行a+b的运算。例如假设计算机只能存放10位尾数的十进制数,则就出现了大数“吃”小数现象。要避免该现象发生的方法是改变计算方法,尽量使数量级相近的数进行相加或相减运算。

例1-12在8位十进制计算机上,求二次方程x2-(109+1)x+109=0的根。

解利用因式分解容易求出该方程的两个根为x1=109,x2=1。若在计算机上用求根公式求解,则有在8位十进制计算机上,有进而有由此得到方程的根x1=109,x2=0。显然x2的结果是错误的,这是大数“吃”小数现象造成的。为了避免该现象发生,改变x2的计算公式,即将则可以得到此结果正确。

例1-13在5位十进制计算机上,计算,其中σi=0.9。

解因为很明显,其计算结果是错误的,这也是大数“吃”掉了小数。避免该现象发生的方法是先计算小的数,然后再加上大的数,即

(3)避免使用绝对值较小的数做除数。根据除法运算的误差估计公式,较小的数做除数时会使计算结果的误差变得很大,因此应避免这种现象的发生。

例1-14计算的值。

解计算y时,出现了绝对值较小的数做除数现象,应改变其计算方法,即

(4)注意简化计算步骤,减少运算次数。如果能够减少运算次数,既能节省计算机的运行时间,又能减少舍入误差,这也是数值计算应注意的原则。

例1-15计算x31的值。

解若将x逐个相乘,那么要做30次乘法。注意到x31=xx2x4x8x16

则令x2=xx,x4=x2x2,x8=x4x4,x16=x8x8

则有x31=xx2x4x8x1630次乘法运算减少到8次乘法运算。

例1-16计算多项式f(x)=anxn+an-1xn-1+…+a1x+a0

的值。

解如果根据通常的计算方法,即逐项先进行乘法然后相加,共需要进行n+(n-1)+…+2+1=n(n+1)/2次乘法和n次加法。

如果采用秦九韶算法,则仅需要n次乘法和n次加法。关于秦九韶算法有兴趣的读者可参阅相关资料。

(5)选择数值稳定性好的算法。数值计算的过程中舍入误差对计算结果影响不大的算法称为数值稳定的算法,影响严重的算法称为数值不稳定的算法。如果第n+1步的误差en+1与第n步的误差en满足,则称该算法是绝对稳定的,否则称不是绝对稳定的。显然,数值计算中应该选择数值稳

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论