《第一章有效数字和误差分析.ppt》由会员分享,可在线阅读,更多相关《第一章有效数字和误差分析.ppt(54页珍藏版)》请在三一办公上搜索。
1、随着科学技术的飞速发展,科学计算愈来愈显示出其重要性。科学计算的应用之广已遍及各行各业;例如:气象、地震资料的分析图像,飞机、汽车及轮船的外形设计,油藏的数值模拟,高科技研究等都离不开科学计算。因此,作为科学计算的数学工具的数值计算方法已成为各高等院校数学、物理和计算机应用专业等理工科本科生的专业基础课,也是工科硕士研究生的学位必修课。,为什么要开设这个课呢?,1.绪论,1.认识建立算法和对每个算法进行理论分析是基本 任务,主动适应“公式多”的特点;2.注重各章建立算法的问题的提法,搞清问题的基 本提法,逐步深入;3.理解每个算法建立的数学背景,数学原理和基本 线索,对最基本的算法要非常熟悉;
2、4.认真进行数值计算的训练,学习各章算法完全是,为用于实际计算,必须真会算。,如何进行学习?,数值分析又称计算方法或数值计算方法,是一门与计算机应用密切结合的实用性很强的数学课程,它研究的是各种数学问题的一类近似解法数值方法,即从一组原始数据(如模型中的某些参数)出发,按照确定的运算规则进行有限步运算,最终获得数学问题数值形式的满足精度要求的近似解。,1.1 研究对象,数值分析方法课程主要讨论如何构造求数学模型近似解的算法,讨论算法的数学原理、误差和复杂性,配合程序设计进行计算试验并分析试验结果。,与纯数学的理论方法不同,用数值分析所求出的结果一般不是解的精确值或者准确的解析表达式,而是所求真
3、解的某些近似值或近似曲线。,根据数学模型提出求解的数值计算方法直到编出程序上机算出结果,这一过程便是数值分析研究的对象,数值计算方法的任务,数值计算方法的主要特点,借助计算机提供切实可行的数学算法.,通过数值实验证明算法行之有效.,采用“近似替代”方法逼近采用“构造性”方法采用“离散化”方法 把求连续变量的问题转化为求离散变量的问题采用“递推化”方法 复杂的计算归结为简单过程的多次重复,易于用循环结构来实现(迭代法)。采用各种搜索方法,构造数值算法主要手段,1、数值逼近 插值与拟合、数值积分与微分2、数值代数 线性代数方程组的解法、非线性代数方程(组)的解法3、微分方程数值解 ODE PDE,
4、1.2 研究内容,1.3.1 误差的来源与分类,从实际问题中抽象出数学模型 模型误差,例:质量为m的物体,在重力作用下,自由下落,其下落距离s 与时间t 的关系是:,其中 g 为重力加速度。,1.3 误差,通过测量得到模型中参数的值 观测误差,求近似解 方法误差(截断误差),例如,当函数,用 maclaurin 多项式,近似代替时,数值方法的截断误差是,机器字长有限 舍入误差,用计算机、计算器和笔算,都只能用有限位,=3.1415926,小数来代替无穷小数或用位数较少的小数来,代替位数较多的有限小数,如:,四舍五入后,在数值计算方法中,主要研究截断误差和舍入误差(包括初始数据的误差)对计算结果
5、的影响!,1.3.2 误差与有效数字,1、绝对误差与绝对误差限,例:若用以厘米为最小刻度的尺去量桌子的长,大约为1.45米,求1.45米的绝对误差。,1.45米的绝对误差=?,不知道!,定义:设 是准确值,为 的一个近似值,称,是近似值 的绝对误差,简称为误差。,但实际问题往往可以估计出 不超过某个正数,,即 则称 为绝对误差限,有了绝对误差限,就可以知道 的范围为,即 落在 内。,在应用上,常常采用下列写法来刻划 的精度。,例1 设x=3.1415926 近似值x*=3.14,它的绝 对误差是 0.0015926,有,x-x*=0.0015926 0.002=0.210-2例2 又近似值x*
6、=3.1416,它的绝对误差是 0.0000074,有 x-x*=0.0000074 0.000008=0.810-5例3 而近似值x*=3.1415,它的绝对误差是 0.0000926,有 x-x*=0.0000926 0.0001=0.110-3可见,绝对误差限*不是唯一的,但*越小越好,2、相对误差与相对误差限,定义:设 是准确值,是近似值,是近似值的误差,,通常取,为近似值 的相对误差,记作,,称,一般情况下是不知道 的,怎么办?,事实上,当 较小时,是 的二次方项级,故可忽略不计.,相应地,若正数,满足,则称 为 的相对误差限。,例4.甲打字每100个错一个,乙打字每1000个 错一
7、个,求其相对误差限解:根椐定义:甲打字时的相对误差限 乙打字时的相对误差限,3、有效数字,定义:如果,则说 近似表示 准确到小数后第 位,并从这,由上述定义,第 位起直到最左边的非零数字之间的一切数字都,称为有效数字,并把有效数字的位数称为有效位数。,定义:,若近似值 的误差限是某一位的半个单位,也即,若,其中,是1到9中的一个数字;是0到9中一个数字;为整数,且,该位到 的左边第一位非零数字共有 位,就说 有 位有效数字。,取 作 的近似值,就有三位有效数字;,取 作 的近似值,就有五位有效数字。,例如:,x-x*=0.0015926 0.002=0.210-20.510-2,前面例1,前面
8、例2,x-x*=0.0000074 0.000008=0.810-5 0.510-4,关于有效数字说明 用四舍五入取准确值的前n位x*作为近似值,则 x*必有n位有效数字。如3.142作为 的近似值 有4位有效数字,而3.141为3位有效数字 有效数字相同的两个近似数,绝对误差不一定 相同。例如,设x1*=12345,设x2*=12.345,两者 均有5位有效数字但绝对误差不一样 x-x1*=x-12345 0.5=1/2 100 x-x2*=x-12.3450.0005=1/210-3 把任何数乘以10p(p=0,1,)不影响有效位数 准确值具有无穷多位有效数字,如三角形面积 S=1/2ah
9、=0.5ah 因为0.5是真值,没有误差*=0,因此n,准确值具有无穷位有效数字,4、误差限与有效数字的关系,则 至少具有 位有效数字。,Th1:,对于用 式表示的近似数,若 具有 位有效,数字,则其相对误差限为,反之,若 的相对误差限为,例5 已知近似数x*有两位有效数字,试求其相 对误差限解:已知 n=2 代入公式 r*=1/2x1 10-(n-1)得 r*=1/2x1 10-1 x*的第一位有效数字x1没有给出,可进行如下讨论:当 x1=1 r*=1/2x1 10-1=1/2*1 10-1=5%x1=9 r*=1/2x1 10-1=1/2*9 10-1=0.56%取 x1=1 时相对误差
10、为最大,即 5%,例6 已知近似数x*的相对误差限为0.3%,问x*有几位有效数字?解:由,得,当x1=1时,310-3=1/410-(n-1)1210-3=10-(n-1)上式两边取以10为底的对数得 lg22+lg3+(-3)=-n+1 lg2=0.3010 lg3=0.4771 20.3010+0.4771-4=-n n=2.9209 当x1=9时,310-3=1/2010-(n-1)610-3=10-n 上式两边取以10为底的对数得 lg2+lg3+(-3)=-n n=2.2219 x*至少有3位有效数字,例7 为使 的近似数的相对误差小于0.1%,问查开方表时,要取几位有效数字?解:
11、8 9 x1=8,-(n-1)2.7448 取 n=3即查平方表时 8.37取三位有效数字,1.3.3 数值运算的误差估计,1、四则运算的误差估计,两个近似数 与,其误差限分别为 及,它们进行加减乘除运算得到的误差限分别为,从而有,的相对误差,对于近似值,,函数,在,舍去右边第二项得到,即,的绝对误差,可以得到,附近按泰勒展式展开得到,2、函数误差估计,当自变量有误差时,计算函数值也会产生误差,其误差限可利用函数的Taylor展开式进行估计。,对绝对误差式两边取绝对值得,故,的相对误差限,的误差限,而,解释:,当 为多元函数时计算,如果,的近似值为,则 的近似为,于是函数值 的误差 由Tayl
12、or展开,得:,多元函数的情况,于是误差限为,而 的相对误差限为,式(1),例8:已测得某场地长 的值为,宽 的值为,已知,.试求面积 的绝对误差限与相对误差限.,解:因,其中,由式(1)得,而,于是绝对误差限为,相对误差限为,3、算法的数值稳定性,数值计算在设计算法时首先关心的是由它产生的计算结果的稳定性,而算法的稳定性与舍入误差是否增长密切相关。一个算法如果输入数据有微小扰动(即误差),而在计算过程中舍入误差不增长,则称此算法是数值稳定的,否则称其为数值不稳定。,例9:求定积分,的值.,解:直接积分可产生递推公式,若取初值,可得递推公式,按公式就可以逐步算出,What happened?!
13、,不稳定的算法!,这就是误差传播所引起的危害!,注意此公式精确成立,且,由题设中的递推公式(1)可看出,的误差扩大了,5倍后传给,因而初值 的误差对以后各步,这就造成 的计算结果严重失真。,计算结果的影响,随着 的增大愈来愈严重。,要怎么做才能解决这个问题呢?,可求得I9 0.017,按改写后的公式可逐次求得,不妨设I9 I10,于是由,(2),I8 0.019 I7 0.021I6 0.024 I5 0.028I4 0.034 I3 0.043I2 0.058 I1 0.088I0 0.182,稳定的算法!,在我们今后的讨论中,误差将不可回避,算法的稳定性会是一个非常重要的话题。,注:递推公
14、式(1)的舍入误差以5的幂次增长进行传播,因此是数值不稳定的,而递推公式(2)的舍入误差在一定范围内以0.2的幂次进行传播,随着n的增大,误差逐步减少,因此该算法是数值稳定的。,因此,可以看出数值不稳定的算法是不能使用的,实际计算中对任何输入数据都是数值稳定的算法,称为无条件稳定。而对某些数据数值稳定,对其它数据数值不稳定的算法,称为条件稳定。,病态问题和条件数,如果问题的输入数据有微小扰动,就会引起输出结果数据(即解)的很大扰动,称这样的问题为病态问题。相反的情形称为良态问题。对于病态的数学问题,用通常的算法求数值解都是不稳定的。,病态和良态是相对的,没有严格的界限,通常用条件数大小来衡量问
15、题的病态程度,条件数越大病态可能越严重。,条件数c(x)越大,f(x)的相对误差越大,通常认为,时,问题是病态的。,1.3.4 数值计算中应该注意的一些原则,1.要选择数值稳定的计算公式,定义 一种数值方法,若原始数据有误差,而在计算的过程中,由于舍入误差的传播,使得近似计算结果与准确值相差很大,则称这种数值方法是不稳定的。否则,在计算的过程中,若舍入误差得到控制,近似计算结果能逼近准确值,则称这种数值方法是稳定的。,从而有,对上式两边求绝对值得,2.要避免两个相近的数相减,在数值计算中,两个相近的数作减法时有效数字会损失。,例11:求,当x=1000,y 的准确值为0.01580,类似地,(
16、2)若将原式改写为,则 y=0.01581,(1)直接相减,有3位有效数字!,只有1位有效数字,3.尽量避免绝对值太小的数作分母,例12:,如分母变为0.0011,也即分母只有0.0001的变化时,结果相差这么大!,4.避免大数吃小数,精确解为,算法1:利用求根公式,例13:用单精度计算 的根。,在计算机内,109存为0.11010,1存为0.1101。做加法时,两加数的指数先向大指数对齐,再将浮点部分相加。即1 的指数部分须变为1010,则:1=0.0000000001 1010,取单精度时就成为:109+1=0.100000001010+0.00000000 1010=0.10000000
17、 1010,算法2:先解出,再利用,注:求和时从小到大相加,可使和的误差减小。,例14:试按从小到大、以及从大到小的顺序分别计算,1+2+3+40+109,5.简化计算步骤,避免误差积累。,一般来说,计算机处理下列运算的速度为,例15:多项式求值:给定的x 求下列n 次多项式的值。,解:1.用一般算法,即直接求和法;,2.逐项求和法;,3.秦九韶方法(即Hornor算法);,先计算x2,x3,xn,再作线性组合,需做2n-1次乘法和n次加法。,解法一:直接求和法,解法二:逐项求和法,按顺序依次计算每一项的值再求和,需做n(n+1)/2次乘法和n次加法。,解法三:秦九韶算法(即Horner算法),只需做n次乘法和n次加法。且可以递推实现。,