应用数值分析(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-22 04:17:01

点击下载

作者:张明

出版社:石油工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

应用数值分析

应用数值分析试读:

内容提要

本书是为理工科大学各专业普通开设的“数值分析”课程编写的教材。内容包括数值分析基础,线性代数方程组的数值解法,代数特征值问题,函数插值,数值积分与数值微分,函数逼近,非线性方程和方程组的数值解法,常微分方程初、边值问题的数值解法。每章附有本章小结、习题和数值实验题。全书以Matlab为平台,深入浅出,脉络分明。本书可作为理工科专业“数值分析”课程的教材,也可供学习数值分析与Matlab建模的科技人员参考。图书在版编目(CIP)数据应用数值分析/张明主编.—4版.北京:石油工业出版社,2012.8(高等院校研究生规划教材)ISBN 978-7-5021-9201-3Ⅰ.应…Ⅱ.张…Ⅲ.数值计算-研究生-教材Ⅳ.0241中国版本图书馆CIP数据核字(2012)第173477号出版发行:石油工业出版社(北京安定门外安华里2区1号 100011)网 址:http://pip.cnpc.com.cn编辑部:(010)64523579 发行部:(010)64523620经  销:全国新华书店印  刷:北京中石油彩色印刷有限责任公司2012年8月第4版 2012年8月第5次印刷787×1092毫米 开本:1/16 印张:22.75字数:580千字定价:40.00元(如出现印装质量问题,我社发行部负责调换)版权所有,翻印必究

第四版前言

随着现在科学和计算机技术的发展,数值计算的原理和方法已成为自然科学、工程技术领域中解决实际问题最有效的手段。面对一个数值计算问题,怎样选择与使用适当的数值计算方法,怎样估计计算结果的误差,怎样解释计算过程中的异常现象,自然成为广大科技工作者迫切需要解决的问题。因此“数值分析”课一直是作为工科硕士研究生的学位课或数学专业高年级本科生的必修课。1999年教材《应用数值分析》出版,得到广大读者的喜爱,并获得了2000年度中国石油天然气集团公司颁发的优秀教学成果奖。2001年我们进行了首次修订,加入了“Matlab与数值计算”与“Matlab应用基础”。2005年出版的《应用数值分析》(第三版)获得2007年北京市精品教材奖。本书是在《应用数值分析》(第三版)的基础上,由中国石油大学(北京)、西南石油大学、长江大学、东北石油大学的有关老师共同编写完成。我们根据课程教学中的一些经验和体会,在保持第三版主要特点的基础上,对教材内容及章节安排等方面作了补充和修改:(1)对第三版的内容及章节作了适当调整,由原来的11章精减为现在的9章,更加突出了重点,便于学生学习。(2)在第三版教材中,我们已经将Matlab软件作为基本计算平台,这次修订主要是将Matlab融入各章节中,对书中一部分方法给出了用Matlab语言编写的程序,在每章最后一节介绍了Matlab求解相关问题的常用函数。(3)本书的主要对象是非计算数学专业高年级本科生、理工科硕士研究生和相当程度的科技人员。读者学习数值分析的目的,主要是为了掌握科学研究与工程设计的一种有力工具。因此,本书力求全面系统地介绍各类数值计算问题的实用的、有效的解法。通过介绍这些基本解法,强化数值计算的基本原理,突出算法的构造和分析。并在每章最后一节增加了求解实际问题的范例。(4)数值分析中关于收敛性、稳定性、误差分析等内容是教学的难点,为此增加了大量例题,适当补充了一些习题,增加了数值实验题。书后还给出了部分习题的参考答案。(5)为了帮助读者掌握数值分析的基础,学习更新、更广、更深的内容,每章都增加了本章小结,使读者更深一步地理解。本书的内容比实际教学的内容要多,在安排教学计划时,可以根据不同的对象和不同的要求对内容进行选择和组合。作为研究生学位课以60学时为宜,要求尽量讲授全书内容。对本科生以方法介绍为主,研究生则还需包括原理分析。为了配合理论教学和熟悉数值计算软件Matlab,可另外安排8~16小时课外上机实习。本书的内容比实际教学的内容要多,在安排教学计划时,可以根据不同的对象和不同的要求对内容进行选择和重新重新组合。作为研究生学位课以60学时为宜,要求尽量讲授全书内容。对本科生以方法介绍为主,研究生则还需包括原理分析。为了配合理论教学和熟悉数值计算软件Matlab,可另外安排8~16小时课外上机实习。本书由中国石油大学(北京)张明任主编,文世鹏任主审。具体修订编写分工如下:第一章、第三章(第一节至第三节)、第八章由张明、长江大学陈忠、西安石油大学王忠义编写,第五章、第七章由中国石油大学(北京)明辉、东北石油大学周少华编写,第二章、第四章由中国石油大学(北京)支丽霞、东北石油大学周少华编写,第六章、第九章由中国石油大学(北京)崔学慧、西南石油大学刘小华编写,第三章(第四节至第七节)由中国石油大学(北京)马宁、西安石油大学王忠义编写。张明负责全书的统稿工作,陈忠对全书内容进行了全面的审核。在本书的修订编写过程中,文世鹏和参编院校的各位老师提供了许多宝贵的意见,各兄弟院校的研究生院、理学院的相关领导也给予了很大的帮助和支持,在此表示衷心感谢!由于水平有限,书中的错误和不当之处恳请读者批评指正。编者2012年3月

第三版前言

为了满足教学的需要,《应用数值分析》在第二版的基础上又出了第三版。本书的第三版较前两版有较多的更新变动。全书内容的章节安排有了变化,有些章节重新撰写,有些章节有删减也有增补。在函数插值、最小二乘拟合以及数值积分部分都增加了二维问题的数值方法。涉及应用数学软件MATLAB的第十一章“MATLAB与数值计算”和附录“MATLAB入门基础”这两部分,根据MATLAB更新版本的变化也相应地进行了调整修订。全书仍然保持了自成体系以及对不同层次要求的读者提供较多可选择的自学阅读空间的特点。在教学过程中,使用本书作为工科研究生数值分析课教材的任课教师和学生对本书的再版提出了很多好的建议,抱有很好的期望,在此,对他们表示衷心的感谢。在本书第三版的编写中,支丽霞对全书习题作了修正补充;明辉对与MATLAB应用有关的第十一章的附录进行审核和删补;苏宇和熊天智负责书稿的编辑,部分章节打印、抄写和绘制图形。由于他们有成效的工作才使本书能顺利及时地出版,在此表示诚挚的谢意。同时也要感谢石油工业出版社的大力支持。第三版书稿完成之后,虽感尽了力,但仍觉有许多不尽人意的地方。随着计算机科学的迅速发展,与计算机应用紧密相关的数值计算类课程的教学内容和教学方法也要随之不断改进,这也是编写本书第三版的缘由之一。限于编者水平,书中一定会有疏漏不妥之处,诚恳地希望使用本书的读者批评指正。文世鹏 张明2005年3月

第二版前言

本书自出版以来,作为研究生数值分析课教材在教学中使用过多次,受到读者欢迎,并获得2000年度中国石油天然气集团公司颁发的优秀教学成果奖。根据教学需要和读者要求,决定对原书进行必要的修订补充后重新出版。这次再版除了对原书的内容和例题有一些订正外,最大的变动是新增加了第十二章“MATLAB与数值计算”以及“MATLAB应用基础”。MATLAB作为近代优秀的功能强大而又使用方便的科学计算应用软件,已在国内外得到了广泛的应用。这两年,我们在教学中已经把数值分析课与MATLAB相结合,用MATLAB作为学习数值分析课的基本计算机语言和计算工具,取得了很好的效果。这次再版增补的内容也是我们教学实践积累的结果。在此,要感谢我们的学生对本书再版的关心和支持鼓励,提出了很多好的建议;感谢负责再版的工作人员的努力,使得新书能顺利及时出版。文世鹏 张明2001年7月

第一版前言

随着计算机科学的发展,数值计算的方法已成为自然科学、工程技术领域中解决实际问题最有效的手段。科学计算能力是现代高层次人材综合素质中所不可缺少的。而高等学校中以现代数值方法的理论原理、计算及计算机实现为主要内容的数值分析课,在培养研究生的科学计算能力方面有着重要的、不可替代的作用。因此,大多数工程技术和应用科学方面的硕士研究生都选择数值分析课作为必修的学位课。这本《应用数值分析》就是作者在为工科硕士研究生多年讲授数值分析课的基础上形成的,并根据积累的教学经验和信息,对内容进行了认真的选择增补和重新安排。研究生数值分析课是在大学本科计算方法课基础上的深入和提高,主要包括计算数学中数值代数和数值逼近及相关内容。在计算数学中这两部分的内容很多,而作为一本教材如何选择安排内容呢?根据多年的教学实践及国内外同类学校相关信息,我们有以下几点认识:1.数值分析课不应该只是罗列现有的基本算法及重复已有的程序编码流程。应该把主要精力放在提高学生分析算法,能较快接受和应用现代高效算法及构造设计专用算法的能力上。这就要求学生具有计算数学中必要的理论基础,如矩阵论基础、泛函分析的基本思想方法以及用抽象数学空间、向量和矩阵认识和处理问题的能力。2.工科硕士研究生学习数值分析课的主要目的,不是为了将来从事计算数学中数值代数和数值逼近本身的研究工作。因此,在数值分析课中虽然应重视加强理论基础,但不能、也没有必要过于理论化和专门化,其目的应该是让学生较好地了解一个好的数值方法是在什么理论原理的基础上产生的,以及怎样认识、比较和选择不同算法。3.由于计算机科学的迅速发展,不断出现一些新的数值方法。因此,在数值分析课中不能只停留在学习成熟的传统的基本数值方法上,还需要接触和了解一些近代出现的新的数值方法。4.要处理好与大学本科计算方法内容的衔接与提高深入。以上几点虽然认识到了,但不一定能在实际中做得很好,我们应尽力沿着这个方向努力。全书共分十一章,内容大致分为四个部分。第一部分:包括第一章,第二章。第一章是对大学本科线性代数重要内容的总结复习和补充深化,这是学习本书必备的基础,熟悉这部分的读者可以跳过本章。第二章是矩阵论中矩阵分解的内容,包括重要的三角分解、正交分解和奇异值分解。本书中这部分内容与矩阵论课中不同的是,不仅讨论矩阵分解的理论原理,还讨论实现这些矩阵分解,并适合在计算机上计算的具体算法。安排第一部分这两章内容,使得本书可以基本上自成体系。第二部分:包括第三,四,五,六,十章。这些章包括了数值代数中的三个主要内容:线性代数方程组的解法,最小二乘问题和代数特征值问题;并专门安排了第六章非线性方程组的数值方法。非线性问题是当前各个领域中非常重要、非常活跃的问题,在第六章中重点讨论了基本而有效的牛顿型算法和无约束优化算法。第三部分:包括第七,八,九章。这一部分是数值逼近的主要内容,包括函数插值、函数最佳逼近和数值积分。在函数最佳逼近中,重点介绍了最佳平方逼近。另外,还介绍了二维区域的函数插值和曲面拟合问题。第四部分是第十一章,常微分方程初边值问题的解法。除了初值问题外,对常微分方程边值问题也作了较多介绍,其中打靶法也包括了作者自己做过的研究课题的结果。本书的主要对象是非计算数学专业的工科硕士研究生,具有相当于大学本科数学基础知识的工程技术人员也可以本书作为学习进修的用书,对部分工程学科的博士生也是有用的参考书。本书的内容比实际教学的内容要多,在安排教学计划时,可以根据不同的对象和不同的要求对内容进行选择和重新组合。根据国家教委曾提出过的硕士研究生数值分析课的基本要求和作者教学实践,除去打“*”号的章节,其他的章节作为本书的主要内容,可以在60学时的课堂教学中完成。为了熟悉算法和熟悉应用数值计算软件,配合课堂理论教学可安排课后有30~40小时计算机的实习时间。本书由文世鹏主编,并编写了第一章至第五章和第十章内容,承担审核修订全书。杨小远、张明、陈安乐共同参加编写工作,提供了第六,七,八,九,十一章内容。在成书过程中,梁景伟、潘建华也提供过部分章节初稿,卢名高、蔡璋琏提出过许多好的建设性意见,在此表示感谢。书中错误和不当之处,恳请读者批评指正。编者1999年5月第一章 绪论第一节 数值分析的研究对象和特点在科学和技术的发展过程中,科学理论和科学实验一直是两种重要的科学方法和手段.但是,对于一些复杂的科学与工程问题(例如太大或太小、太快或者太慢的问题),理论分析往往无能为力,而实验又无法进行,因此需要新的科学研究方法.20世纪40年代,电子计算机的发明和应用成为新的科学计算研究的手段.人们把在电子计算机上进行的科学工作称为科学计算.随着计算机的飞速发展,科学研究与工程设计的手段逐渐由理论分析、模拟实验向科学计算的方向转变.科学计算与科学理论、科学实验并列成为现代科学的三个组成部分.科学计算的核心内容是以现代化的计算机及数学软件为工具、以数学模型为基础进行模拟研究.科学计算是一个新兴的发展十分迅速的科学,先后产生了计算数学、计算物理学、计算力学、计算化学、计算材料学等一系列与计算相关的分支学科,今天科学计算已经渗透到各个学科.科学计算是利用计算机通过计算的手段来解决实际问题的一门科学.其处理问题的过程必须按照下面的步骤进行:实际问题→数学模型→数值方法→程序设计→上机计算→分析结果.(1)建立数学模型(实际问题数学化).如果人们想借助数学的手段来解决实际问题,首先要建立数学模型,即应用相关的科学知识和数学理论,将实际问题用准确的数学语言对其核心部分进行描述,并给出数学模型.(2)设计计算方案(数学问题数值化).求解数学问题当然最好得到解析解(精确解),但是一般来说科学研究中所遇到的数学问题往往是具有非常复杂的形式,很难甚至不可能用解析方法获得精确解.因此,一般求数学问题的数值解(近似解).由于数值计算的计算量很大,求数学问题的数值解一般来说都必须要利用计算机进行计算.计算机无论如何先进,它所能执行的计算也不过是简单的算术运算和逻辑运算,要想使计算机能够求解数学问题,必须根据不同的数学问题,寻找不同的数值计算方法,即数学问题数值化.(3)程序设计(数值问题机器化).一个好的数值算法要通过程序设计才能在计算机上实现.程序设计要求用最简练的计算机语言、最快的速度、最少的存储空间设计软件,并获得某种按要求的计算结果.要到达这样的要求,程序设计者必须掌握数值方法的构造思想,熟悉计算机语言,准确无误地描述每一个算法,并能以最快的速度发现和解决计算过程中出现的各种问题.(4)上机计算并分析结果.通过前面三个阶段的工作,上机计算的结果如果与实际问题不相符,则需找出原因,回到前面三个阶段继续研究,直到得到正确结果为止.上述四个环节对于科学计算都是非常重要的,哪个环节出了问题都会影响到最终结果.第一个环节通常作为应用数学的任务,第二个环节到第四个环节则是计算数学的任务,数值分析是计算数学的基础课,主要是研究在计算机上求解各种数学问题的数值计算方法.数值分析的内容包括线性代数方程的数值解法、非线性方程组的数值解法、求矩阵特征值的数值解法、数值逼近(函数插值,最佳平方逼近)、数值微分、数值积分、常微分方程的数值解法.数值分析不像纯数学那样只研究数学本身的理论,而是把理论与计算紧密结合,既有纯数学高度抽象性与严密科学性的特点,又有应用的广泛性与实际试验的高度技术性的特点.概括起来,数值分析有以下四个特点:(1)要根据计算机的特点设计有效算法,即算法只能包括加、减、乘、除运算和逻辑运算.因此“归纳”成了不容忽视的思维方法.(2)要有可靠的理论分析,即近似解能任意达到精度要求,近似算法要保证收敛性和稳定性.因此讨论的核心问题是“误差”.(3)要有好的计算复杂性.计算复杂性包括时间复杂性和空间复杂性.时间复杂性好是指节省时间,空间复杂性好是指节省存储量.因此这是在算法设计和程序设计中要研究的问题.(4)要有数值实验,即任何一个算法都要通过数值试验证明是行之有效的.数值分析涉及面较广,为了掌握数值分析的基本内容,读者首先要掌握高等数学、线性代数的基本内容,数值分析涉及的算法都是很经典的,学习时要注意掌握方法的基本原理和思想,要注意方法处理的技巧及与计算机的结合.另外,还要重视误差分析、收敛性及稳定性的基本理论.总之,通过数值分析课程的学习,要掌握数值计算的思维方式,培养分析问题解决问题的能力.第二节 数值问题与数值算法科学研究中得到的数学问题常常是连续变量的数学模型.连续变量的数学模型要通过离散化变成为一个离散的数值问题.所谓数值问题是指可以在原问题自变量的原始数据和用输出数据表示的结果之间建立一个确定的函数关系.对这个数值问题进行数值运算就可得到数值解(也称计算解或近似解).当然,也有的数学模型本身就是一个可以进行数值计算的数值问题.因此,求解工程实际问题进行科学计算所面对的实际上是数值问题.求解数值问题必须要构造适合计算机作为计算工具的数值方法,这种数值方法是指求解数值问题的按确定顺序可以在计算机上依次进行的计算公式,也就是通常所说的数值计算方法.求解同一个数值问题可以构造多种数值方法.数值方法的好坏与原数学问题的性态有关,还要考虑用计算机进行计算的特点等问题.以计算机作为计算工具用数值方法求解数学问题时要设计计算机上的算法,即数值算法.数值算法有不同的种类,这里讨论的数值算法是指确定性的串行算法.在选用好的数值方法(Numerical Method)基础上,数值算法(Numerical Algorithm)是专门为在计算机上可进行确定计算而设计的算法.根据计算机的特点,将数值算法定义为:从给定的已知量出发,经过有限次四则运算及规定的运算顺序,最后求出未知量的数值解,这样构成的完整计算步骤.数值算法不同于数值方法之处是它不是一系列的计算公式,而是一个完整的按规定顺序可执行的具体计算步骤.这个算法还要具备输入和输出数据及算法步骤的确定性,算法每一步在计算机上的可执行性以及通过有限次计算步骤能得到确定的数值结果.另外,还要考虑算法的复杂性使计算速度尽量快,占用计算机存储空间尽量少.通过数值算法可以编制出数值计算软件,使得科学计算更加方便.因此,数值方法不同于数值算法,而数值算法也不同于程序设计.设计好的数值算法进而编制实用的数值软件要涉及计算机科学与软件工程等其他学科.同一个数学问题可能有多种数值算法,但不是每一种算法都有效.例如,用克莱姆法则求解n阶线性方程Ax=b需要计算n+1个n阶行列式,而每一个n阶行列式要做(n-1)(n!)次乘法.当n=2020时,求解方程组大约要做10×10次的乘法,用每秒可进行一千万次计算的计算机也需要300万年才能得到计算结果,这是无法接受的.在有效的数值算法中,必须作出选择,选择这个而非那个算法时存在种种理由,但有两个主要的标准:计算结果的精度和算法的计算速度.自然应该选择计算速度高又能满足精度要求的算法.算法的计算速度是由它的计算工作量体现的.一般地,将计算机完成一次浮点加(减)法或乘(除)法运算称为一次浮点运算,记作flop.将一个算法所需四则浮点运算的总次数定义为它的计算量,单位是flop.通常,算法的计算量越小,它的计算速度就越高.下面考虑计算矩阵乘积的计算量.m×ss×nm×n设A=(a)∈R,B=(b)∈R,则C=AB=(c)∈R,其中,显然计ijijij算AB的计算量为m×s×(2n-1).设A,B,C,D分别是10×20、20×50、50×1、1×100的矩阵,按不同的算法求矩阵乘积H=ABCD,由矩阵乘法的结合律,可有如下算法:(1)H=((AB)C)D.(2)H=A(B(CD)).(3)H=(A(BC))D.它们的计算量分别为:N=21490flop,N=242000flop,N=3080flop.显然算法(3)计算量最123少,计算速度应最快.另外,在程序设计时还要考虑存储量,在保证算法可读性的前提下,尽量减少存储单元.下面介绍几个例题,并用Matlab语言描述算法.255例1-1 给出x,计算x.算法A的计算量为254flop,存储量为2.算法B的计算量为14flop,存储量为3.比较计算量,显然算法B的计算速度快.nn-1例1-2 给出x,计算多项式P(x)=ax+ax+…+ax+a的值.nn+1n21输入原始数据x和系数a(i)(i=1,…,n+1),若按多项式的结构直接对各项分别作乘法再相加就是一个数值算法.但是,这种算法的计算量是3n次,存储单元为n+4个,见算法A.算法A:输入x,a(i)(i=1,…,n+1),输出y.这个计算方法不是最好的数值方法,可以改变计算的结构和顺序,构造另外一个更好的数值方法.将P(x)的计算式改写为nP(x)=x(…x(x(ax+a)+a)+…+a)+ann+1nn-121按这个公式计算P(x)的计算量只有2n次,存储量只要n+3个.这个算法是我国南宋时期的著n名数学家秦九韶于1247年首先提出的,称为秦九韶算法.在这个数值方法的基础上设计一个适用于计算机计算的递推公式,这是一个必要的步骤,非常便于程序设计.递推公式为其中s即为P(x)的值.按照上面递推公式可以设计出算法B.1n算法B:输入x,a(i)(i=1,…,n+1),输出y.算法B比算法A节省计算量,是目前计算多项式值的数值算法.程序设计中考虑到要尽量节省存储单元,所以不能完全按照递推公式编程.应很好地学习算法B的编程思想,这是程序设计的基本技巧,必须掌握.例1-3 给出矩阵—向量乘法的几个基本算法.m×nnm设A∈R,x∈R,y∈R,计算Ax+y,存放在y中.此计算的常规方式是每次修正一个分量,即第三节 数值计算的误差分析一、误差的来源与分类从实际问题到最终得到计算结果,这中间经过的每一个环节都有可能产生误差.由实际问题数学模型化所产生的误差称为模型误差,在此不加以讨论.把一个数学问题做数值计算时可能产生的误差大致分为如下三类.1.原始数据误差原始数据误差也称观测误差.数学模型中的一些物理量和原始数据都要通过观察和测量得到,而在观察和测量中要受到方法和仪器测量精度的限制,必然会引进误差.这些误差会影响以这些数据为基础的任何计算解的精度,在数值分析中一般也不直接讨论这种误差,而是用分析舍入误差的方法来分析这些误差在计算中的传播和影响.2.截断误差截断误差又称方法误差,它是指用数值方法求解某个数学问题的逼近误差,其中包括截取的有限项近似无穷级数所产生的误差,也包括用容易计算的化简问题代替不方便计算的复杂问题所带来的误差等.3.舍入误差舍入误差又称计算误差,是由于机器字长的限制使得任一个实数在机器中要被舍入而被近似地表示成机器浮点数而引起的误差.所以,原始数据表示成机器数有误差,而每一次运算又可能产生新的误差.这种舍入误差在数值计算的每一步计算中都会产生,并且逐步传播和扩散从而影响计算解的精度.二、截断误差分析截断误差是由一种近似的数值方法来求解数学问题而产生的误差.例如,函数f(x)用泰勒(Taylor)多项式近似代替,则用P(x)近似f(x)的截断误差是nξ在0与x之间,由于ξ值是未知的,这个截断误差的真正大小不可能知道.因此,截断误差的余项表达式R(x)只有理论上的意义了.那么,如何来估计截断误差呢?这里只举两个例子,在后面各章中n还会讨论截断误差.-1例1-4 已知+…,求e的近似值,并估计误差.解:利用Taylor展开式的前三项,取n=2,有-1e的近似值为0.5,近似值0.5的截断误差为0.17.例1-5 当h→0时,有如下Taylor展开式hh试确定e+sin(h)和esin(h)的截断误差.三、舍入误差分析为分析数值运算的误差,首先要了解计算机数系和误差基本概念,然后才能对误差做定量分析和定性分析.1.计算机数系科学计算中的数x∈R,一般用浮点数表示bx=α·βb式中α是尾数,用小数表示.β是定位部分,其中β为基数,可以是2,8,10,16等,b是阶码,用整数表示.计算机中用二进制的数,β=2.因此x∈R有bx=±0.aa…a×212n其中a,b是二进制的数,a≠0.n只是a的下标,是用十进制的正整数表示二进制数的有效位数.如i1i二进制数101x=0.11101×2这里a=1≠0,b=101(相当于十进制数的5),有效位数n=5.1b用这种表示方法,n和b没有限制,因此x=±0.aa…a×2包括了全体实数,是一个稠密的数集.12n一个实数按二进制的形式放入计算机时,要受到机器精度和容量的限制.机器的精度用机器字长t来表示,t是可以装入一个数的尾数的机器内的地址单元数,也是机器能放入一个二进制数的最大有效位数.如t=24,表示能放入二进制数的最大有效位数是二进制的24(相当于十进制的7位有效位数).如果二进制数的有效位数大于t,则要在t位舍入.这样,原来的实数就要变成一个在t位舍入的机器数,记为bfl(x)=±0.aa…a×212tb这个数与x=±0.aa…a×2不同的是t要受到机器精度的限制,是固定不能改变的位数.另外,12n阶码b也要受到机器的上溢限U和下溢限L的限制,U≤b≤L.因此,fl(x)∈F(β,t,U,L),用F(β,t,U,L)表示计算机数系,F(β,t,U,L)是一个离散的有限数集.一个数x=±0.aa…12bbaa×2放入机器变成机器数fl(x)=±0.aa…a×2以后,必然存在误差.tt+112t在计算机数系F(10,4,-33,33)中采用截断式表示fl(π)得fl(π)=0.3141×10,采用四舍五入式得fl(π)=0.3142×10,采用四舍五入式得到的fl(π)误差较小.若浮点数的阶码不在[L,U]内,则出现上溢或下溢.例如,在4位机器数系F(10,4,-33,-343533)中输入0.28×10,则出现下溢;输入0.35×10,则出现上溢.机器浮点数在计算机中进行运算后不一定再是机器浮点数.因此,在计算机中有一个双精度储存器,即在计算时先按双精度2t位保留计算结果,然后再在t位舍入变成机器浮点数.机器浮点数的误差和机器浮点数运算的误差是不可避免的,在计算中这两种误差还会积累和传播.2.数的误差和有效数字定义1-1 设数a是准确值,x是a的一个近似值,记称e为近似值x的绝对误差,称e为近似值x的相对误差.r由于准确值a总是无法知道的,所以数a的绝对误差e的准确值也不可能知道.但是,根据测量工具的精确度或测量计算的具体情况,可以事先估计出误差的绝对值不会超过某一个正数δx,即e=丨a-x丨≤δx称δx为数a的近似值x的绝对误差上界,或绝对误差限(简称误差限).另外,由于准确值a未知,按定义1-1的相对误差e也无法知道.在实际计算时可改用r作为近似值x的相对误差.于是,当近似值与δx确定后,便得到相对误差的一个上界称δx为近似值x的相对误差限,显然有.r对一个数的近似值,在计算中要关心的是哪几位数字是准确可靠的.而数的近似值可以看成是对准确值截取前面若干位得到的一个数,当截取的位数限定后,还要通过四舍五入才能得到绝对误差最小的近似值.例1-6 已知准确值a=π=3.14159265…是一个无限不循环小数,求截取不同位数后的近似值及误差界.解:截取一位x=3,将a向右数第二位舍去,1截取三位x=3.14,将a向右数第四位舍去,2截取五位x=3.1416,将a向右数第六位舍去进一位,3以上这三个π的近似值的绝对误差都不超过本身末位数的半个单位,是截取相应位数后所得到的近似数中绝对误差的最小值.因为采用截断式,截取五位得显然,x的误差比x的误差大.采用四舍五入式得到的近似数是截取相应位数后所得到的近似43数中绝对误差的最小值.对近似数的有效数字就是由此而定义的.工程上,数的规范化形式是用小数形式表示,如px=±0.aa…a×1012n其中,p∈Z,n∈N,a(i=1,2,…,n)是0,1,2,…,9中任一数,但a≠0(注:Z表示整数集,i1N表示正整数集).p定义1-2 设规范化近似数x=±0.aa…a…a×10的绝对误差限是第n位的半个单位,则数x有n12nm位有效数字.按定义1-2,经四舍五入得到的近似数从末位到第一位非零数的所有位都是有效数字.一个数的末位或末几位是0,作为有效数字是有意义的.例1-7 以下近似数是经四舍五入得到的,问它们分别有几位有效数字?3x=0.12,x=0.120,x=1.73,x=0.00073,x=73000,x=0.73×10123456解:x=0.12有2位有效数字;x=0.120,有3位有效数字;12x=1.73有3位有效数字;x=0.00073有2位有效数字;343x=73000有5位有效数字;x=0.73×10有2位有效数字.56若x有n位有效数字,则由,得绝对误差限.由-n,得相对误差限δx=5×10(这是偏于保r守的估计式).但是,按定义1-2无法确定一个数的有效数字.因为任何数都只能是近似数,无法知道精确值,也就是无法确定其绝对误差是小于哪一位上的半个单位.实际计算中遵循两条原则:(1)已知精确值的一些常数,如π,e,,…,用四舍五入确定有效位数.(2)计算中的原始数据,认为其给出的位数都是有效数字.此原则只限于原始数据,不包括用原始数据计算后得到的计算结果.一个近似数的有效位数越多,则其相对误差越小,近似数也越精确.所以,在数值计算中要尽量设法多保留几位有效数字.3.数值运算中的误差估计若干近似数进行运算之后的结果也是近似数.这个计算结果的精确程度和参与运算的数的误差有关,也和运算过程有关.对运算结果进行误差分析是很复杂而困难的问题,简单的情况可以通过微分法则做出估计.设有n个近似数x,x,…,x其精确值虽未知但可设为a,a,…,a,把这n个近似数之间的12n12n运算当作是一个多元函数的关系,即令u=f(x,x,…,x)(f:表示某一种确定的运算)12n用近似数作运算就是用f(x,x,…,x)代替u=f(a,a,…,a).可用Taylor展开来估计它们12n12n之间的误差.(1)绝对误差于是,得到绝对误差限的估计式(2)相对误差得到相对误差限的估计式由式(1-1)、式(1-2)容易得到两数和、差、积、商的绝对误差限和相对误差限如下例1-8 已知四个数x=-3.15,x=0.001,x=0.100,x=253.4.1234(1)试估计各近似数的有效位数和误差限;(2)估计运算u=(xx+x)和u=(xx+x)的相对误差限.11232143

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载