1、数值分析,李小林 重庆师范大学数学学院,Numerical Analysis,计算的目的不在于数据,而在于洞察事物。理查德哈明,The purpose of computing is insight,not numbers.Richard Wesley Hamming,3,一、数值分析的概念、地位和特点,1.1 数值分析的对象、作用与特点,第1章 数值分析与科学计算引论,这门课程又称为(数值)计算方法、科学与工程计算等。,4,研究对象:数值问题有限个输入数据(问题的自变量、原始数据)与有限个输出数据(待求解数据)之间函数关系的一个明确无歧义的描述。,如一阶微分方程初值问题,5,重点讨论,数值问
2、题的来源:,6,科学计算的核心内容是以现代化的计算机及数学软件(Matlab, Mathematica, Maple, MathCAD etc. )为工具,以数学模型为基础进行模拟研究。,现代科学的三个组成部分: 科学实验, 科学理论, 科学计算,2. 数值分析的地位,促使一些边缘学科的相继出现:计算数学,计算物理学,计算力学,计算化学,计算生物学,计算地质学,计算经济学,等等,7,总的来看,数值分析这门课具有以下几个特点:,(1) 是一门与计算机应用密切结合的实用性很强的学科;,(2) 既要讨论连续变量问题又要讨论离散变量问题,关心的是数值结果;,(3) 已成为近代数学的一个重要分支,专门研
3、究数学问题的数值解法。,3. 数值分析的特点,8,二、数值分析的研究内容和研究方法,研究内容,数值逼近,数值代数,9,研究方法:,数值方法的特点(支撑理论),递推性(迭代), 近似代替, 离散化, 外推法,10,11,本课程的基本目的,使大家通过学习和实验,初步建立并理解数值计算,特别是科学与工程计算的基本概念,为进一步深入的学习打下坚实基础。,12,1.2 数值计算的误差,2.1 误差的来源与分类,用计算机解决科学计算问题时,需要经历以下几个环节:,数值结果是指在选择某种数值方法之后,编制程序正确,输入初始数据正确的情形下所获得的结果。,实际问题的精确解与用计算机计算出来的数值结果之间就有差
4、异,这种差异在数学上称为误差。,13,模型误差 /* Modeling Error */ 从实际问题中抽象出数学模型时产生的误差,观测误差 /* Measurement Error */ 通过测量得到模型中参数的值导致输入数据的 误差,方法误差 (截断误差 ) /* Truncation Error */计算方法近似求解时产生的误差,舍入误差 /* Roundoff Error */由于计算机字长有限而在数值运算的每一步所产生的误差,14,解法之一:将 作Taylor展开后再积分,| 舍入误差 /* Roundoff Error */ |,= 0.747 ,由截去部分 /* excluded
5、terms */ 引起,由留下部分 /* included terms */ 引起,15,注:,误差可正可负,常常是无限位的,绝对误差限/* accuracy */ 绝对值的上界,如:,绝对误差还不能完全表示近似值的好坏,(绝对误差/* absolute error */),2.2 误差与有效数字,设 为真值(精确值), 为 的一个近似值称 为近似值 的绝对误差,简称误差。,16,近似值 的误差 与准确值 的比值:,称为近似值 的相对误差,记作,注:,实际计算时,相对误差通常取,因为,(相对误差/* relative error */ ),17,相对误差也可正可负,(有效数字/*Signifi
6、cant Digits*/ ),如:,3位,6位,18,有效数字(另外一种定义形式),注:0.2300有4位有效数字,而00023只有2位有效数字。12300如果写成0.123105,则表示只有3位有效数字。数字末尾的0不可随意省去!,规格化形式,用科学计数法,记 其中 , 若 (即 的截取按四舍五入规则),则称 为有 位有效数字,精确到 。,19, 有效数字 相对误差限,已知 x* 有 n 位有效数字,则其相对误差限为,注:,若 的每一位都是有效数字,则 称为有效数,20, 相对误差限 有效数字,例2:为使 的相对误差小于0.001%,至少应取几位有效数字?,解:,假设 * 取到 n 位有效
7、数字,则其相对误差上限为,21,要保证其相对误差小于0.001%,只要保证其上限满足,已知 a1 = 3,则从以上不等式可解得 n 6 log6,即 n 6,应取 * = 3.14159。,22,3.1 误差分析的方法,1、向前误差分析法:利用误差限,随着计算过程 逐步向前进行分析,直至估计出最后的结果。,注:,1.3 误差定性分析、避免误差危害,23,(2)对于函数 y = f (x),若用 x* 取代 x,将对y 产生什 么影响?,分析:e*(y) = f (x*) f (x) e*(x) = x* x,Mean Value Theorem,x* 与 x 非常接近时,可认为 ,则有:,即:
8、 产生的误差经过 作用后被放大/缩小了 倍。故称 为放大/缩小因子 /* amplification factor */ 或 绝对条件数 /* absolute condition number */.,24,相对误差条件数/* relative condition number*/,f 的条件数在某一点是小大,则称 f 在该点是好条件的 /* well-conditioned */ 坏条件的 /* ill-conditioned */。,25,初始数据引起计算函数值的误差,函数值 A*的绝对误差,略去高阶项:,26,解:,由题设知:近似值为 ,绝对误差限为,27,3、区间分析法:把参加运算的
9、数都看成区间量,根据区间运算规则求得最后结果的近似值和误差限。,4、概率分析法:利用概率统计方法,将数据和运算中 的舍入误差视为适合某种分布的随机变量,然后确定计算结果的误差分布。,28,例:计算, 公式一:,注意此公式精确成立,?,?,? !,! !,What happened?!,3.2 算法的数值稳定性,29,考察第n步的误差, 公式,注意此公式与公式一 在理论上等价。,方法:先估计一个IN ,再反推要求的In ( n N )。,可取,30,取,31,考察反推一步的误差:,以此类推,对 n N 有:,误差逐步递减, 这样的算法称为稳定的算法 /* stable algorithm */,
10、在我们今后的讨论中,误差将不可回避,算法的稳定性会是一个非常重要的话题。,定义:一个算法如果输入数据有扰动(即有误差),而计算过程中舍入误差不增长,则称此算法是数值稳定的,否则称此算法为不稳定的。,32,问题:对于 y = f (x),若用 x* 取代 x,将对y 产生什么影响?,3.3 病态问题与条件数,条件数 /* condition number*/:,对数学问题而言,如果输入数据有微小扰动,引起输出数据(即数学问题的解)有很大扰动,则称数学问题是病态问题,否则称为良态问题。,33,34,例:蝴蝶效应 纽约的一只蝴蝶翅膀一拍,风和日 丽的香港就刮起台风来了?!,纽约,香港,这是一个病态问
11、题,关于蝴蝶效应,35,返回,36,1、 防止两接近的数相减,例: 求下列方程的根,解:,用 8 位浮点数 (有效数字)计算,用 4 位浮数点(有效数字)计算,只有两位有效数字,两接近数相减 损失了有效数字,仍用4 位浮点数计算,数值稳定 的方法,减法本身完全正确,误差传播的研究十分重要,是因为求 的误差(并不大), 进行减法后导致不应忽视的后果,准确,3.4 避免误差危害,a1 = 0.12345, a2 = 0.12346, 5位有效数字 而 a2 a1 = 0.00001只有1位有效数字。,37, 几种经验性避免方法:,当 | x | 1 时:,0.4+0.3+0.2+0.1+1234=
12、1235,1234+0.4+0.3+0.2+0.1=1234,2、 避免出现“大数吃小数”,38,3 减少运算次数,例:,利用秦九韶算法 (1247),(a) 直接计算每一项再求和:,解:,39,例 计算 ln2 的近似值,要求误差小于10.,解:,计算量太大各项的舍入误差会损失和的有效数字,(b) 用级数 计算,用前 9 项(即取 m = 8)计算就能达到精度要求:,舍入误差,(a) 用级数 计算,40,一、几种常用的数学软件,目前流行的数学软件主要有以下几种: 符号运算软件: Mathematica, Maple 矩阵处理软件: Matlab 统计处理软件: SAS, Spss, Orig
13、in 数学CAD软件: MathCAD,1.4 数学软件,41,1、 符号运算软件:Mathematica, Maple,一提起计算机求解,人们就会想到数值计算。但 随着符号运算及计算机代数理论的日益成熟,人们又 利用计算机来进行符号计算。70年代人们开发了几个 较为成功的通用的计算机代数系统,如Reduce系统和 MACSYMA系统。但由于速度慢,开发不方便,因此 没有流行起来。在1988年推出的Mathematica软件才使 得符号运算系统的使用普及起来。在这方面代表性的 软件就是Mathematica和Maple。虽然在Matlab里也有 符号计算系统,但它采用的是Maple内核。,42
14、,1、 符号运算软件:Mathematica, Maple,Mathematica: 美国Wolfram公司出品。1988 年推 出第一版版本,刚推出时受到极大好评,New York 时 代周刊这样评论:“the importance of the program cannot be overlooked”,Business Week 把Mathematica 列为当年十大最重要的新产品之一。Mathematica在技 术界也被作为智力和应用的革命性产品受到极大欢迎。 人们常说Mathematica的出现标志着现代技术计算的开 始。,43,1、 符号运算软件:Mathematica, Mapl
15、e,Maple :加拿大Mathsoft公司出品。1980年,加拿大 Waterloo大学开始研究符号运算系统。取这个名字是为 了表明这个软件是加拿大生产的。,Maple功能基本和Mathematica一致。由于这两个 软件功能相似,因此统一介绍这两个软件的功能和特 点。,44,功能: 数值计算:初等计算、线性代数计算、数值方法等 符号运算:多项式因式分解与展开、微分、积分、级数、数列等。 绘图功能:方便、强大、直观的二、三维绘图。,特点: 简单易用的交互式操作方式:两种软件都使用英文单词来命名函数,非常直观、易用。对每一个命令都能给出显示结果,非常方便。 2)功能强大:强大的数值计算功能和威
16、力无比的符号运算功能。 3)结构化的程序设计语言 4)Tex(Latex)输出格式:Tex是科技文章的一种格式,科技界应用十分广泛。,45,2、 矩阵处理软件: Matlab,简介:MATLAB的含义是矩阵实验室,是Matrix Laboratory 的缩写。它的前身是LINPACK(解线性方程)和 EISPACK(解特征值问题)的FORTRAN子程序库。 由于它把矩阵当成一个对象,因此编写程序更加直观、 方便。1984年正式推出。MATLAB具有非常强大和直观的计算功能,并且 由于其有非常好的扩展性能,现在已经成为世界上应用 最广泛的工程计算软件之一 。,46,特点: (1)强大的数值运算功
17、能在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的命名表示自然,使得问题和解答像数学公式一般简单明了,让用户可全力发挥在解题方面,而非浪费在电脑操作上。,(2)数据分析和可视化功能、文字处理功能MATLAB可以绘制二、三维图形,与Mathematic和Maple相比,它还能处理光照模型,制作出高品质的图形。功能十分强大。MATLAB Notebook为用户提供了强大的文字处理功能,并允许WORD访问MATLAB的数值计算和可视化结果,制作科学性或工程性图文并茂的文章.,47,(3)高级、简单、高效的程序环境 做为一种解释型的程序语言,MATLAB允许使用 者在
18、短时间内写完程序,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译 (compile) 及 连 接 (link) 即能执行,同时包含了更多及更容易使用的内建 功能。 (4)开放及可延伸的架构MATLAB允许使用者接触它的大多数的数学源代 码,检查运算法,更改现有函数,甚至加入自己的函数 使 MATLAB成为使用者所需要的环境。,48,(5)丰富的工具箱MATLAB的工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需的许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行)、图像处理、统计分析、信号处理、通信、
19、线性矩阵不等式、偏微分方程、高阶谱分析、财政金融、神经网络、模拟分析、控制系统、实时控制、小波分析、最优化、模糊逻辑、分析及合成等30多种。,49,3、数学CAD软件: MathCAD,Mathcad是由MathSoft公司推出的一种交互式 数值系统。在输入一个数学公式、方程组、矩阵之后, 计算机能直接给出结果,而无须去考虑中间计算过程。 最令人激动的是在加入软件包自带的Maple插件后能直 接支持符号运算。你可以在计算机上输入数学公式、符 号和等式等,很容易地算出代数、积分、三角以及很 多科技领域中的复杂表达式的值,并可显示数学表格 和图形,通过对图形结果的分析,使我们对问题的理解 更加形象
20、。,50,特点:公式编辑功能强大、直观性强。 功能: 公式编辑:MathCAD的最吸引人的地方在于编辑公式非常方便、实用,几乎没有不能表示的数学公式。 矩阵功能定义的矩阵或矢量矩阵操作:矩阵转置、求逆矩阵、求矩阵的行列式的值。,Mathcad的用户主要针对具备应用数学知识但并不要求具有较多的计算机知识的用户,如工程研究人员、学生等。最新版本为MATHCAD 11,51,数学计算功能 解方程:一般方程、线性方程组、不定方程、常微分方程、偏微分方程等 数理统计与数据处理:统计函数、统计分布函数、插值预测、曲线拟合(回归)等。积分变换:Fourier变换、Laplace变换、Z变换、小波变换等。 符号处理:借用的是Maple内核。 图形功能:包括绘制二维和三维图形。,