数值分析NumericalAnalysis主讲教师:邹昌文Tel:66611866E-mail:zoucw@sina.com绪论及误差在数学发展中,理论和计算是紧密联系的。现代计算机的出现为大规模的数值计算创造了条件,集中而系统的研究适用于计算机的数值方法变得十分迫切和必要。数值计算方法正是在大量的数值计算实践和理论分析工作的基础上发展起来的,它不仅仅是一些数值方法的简单积累,而且揭示了包含在多种多样的数值方法之间的相同的结构和统一的原理。数值算法是进行科学计算必不可缺少的起码常识;更为重要的是通过对它们的讨论,能够使人们掌握设计数值算法的基本方法和一般原理,为在计算机上解决科学计算问题打下基础。1.认识所建立算法和对每个算法进行理论分析是基本任务,主动适应“公式多”的特点;2.注重各章建立算法的问题的提法,搞清问题的基本提法,逐步深入;3.理解每个算法建立的数学背景,数学原理和基本线索,对最基本的算法要非常熟悉;4.认真进行数值计算的训练,学习各章算法完全是为用于实际计算,必须真会算。•记好课堂笔记•保证课堂纪律•按时完成作业•按时上课,不迟到早退几点要求–如何把数学模型归结为数值问题–如何制定快速的算法–如何估计一个给定算法的精度–分析误差在计算过程中的积累和传播–如何构造精度更高的算法–如何使算法较少的占用存储量–如何分析算法的优缺点数值分析讲述的基本内容数值分析研究对象与特点•对象–实际问题–数学化–数字化–程序化•特点–面向计算机–可靠性分析–好的计算复杂性–有数值实验数值分析的研究方法---构造法•数值分析课程主要讨论如何构造求数学模型近似解的算法,讨论算法的数学原理、误差和复杂性,配合程序设计进行计算试验并分析试验结果。•与纯数学的理论方法不同,用数值计算方法所求出的结果一般不是解的精确值或者准确的解析表达式,而是所求真解的某些近似值或近似曲线。数值分析例如方程x2=2sinx,在区间(1,2)内有唯一根,但找不出求根的解析式,只能用数值计算方法求其近似解。有些数学问题虽有理论上的准确的公式解,但不一定实用,例如行列式解法的Cramer法则原则上可用来求解线性方程组,用这种方法解一个n元方程组,要算n+1个n阶行列式的值,总共需要n!(n-1)(n+1)次乘法,当n=20时,其乘除法运算次数约需1021次方,即使用每秒千亿次的计算机也得需要上百年,而用高斯(Guass)消去法约需2660次乘除法运算,并且愈大,相差就愈大。可见研究和选择好的算法是非常重要的。算法(数值算法):是指有步骤地完成解数值问题的过程。数值算法的特点•目的性,条件和结论、输入和输出数据均要有明确的规定与要求。•确定性,精确地给出每一步的操作(不一定都是运算)定义,不容许有歧义。•可执行性,算法中的每个操作都是可执行的•有穷性,在有限步内能够结束解题过程总之:必须是构造性的数值方法构造算法的途径•迭代法•离散法•离散问题解析化法•外推法误差/Error/•误差来源与分类/Source&Classification/从实际问题中抽象出数学模型——模型误差/ModelingError/通过测量得到模型中参数的值——观测误差/MeasurementError/求近似解——方法误差(截断误差/TruncationError/)机器字长有限——舍入误差/RoundoffError/•用数学方法解决一个具体的实际问题,首先要建立数学模型,这就要对实际问题进行抽象、简化,因而数学模型本身总含有误差,这种误差叫做模型误差,例自由落体•数学模型是指那些利用数学语言模拟现实而建立起来的有关量的描述,数学模型的准确解与实际问题的真解不同实际问题的真解数学模型的真解为减化模型忽略次要因素定理在特定条件下建立与实际条件有别模型误差212sgt忽略了空气阻力•在数学模型中通常包含各种各样的参变量,如温度、长度、电压等,这些参数往往是通过观测得到的,因此也带来了误差,这种误差叫观测误差,例重力加速度•数学模型中的参数和原始数据,是由观测和试验得到的•由于测量工具的精度、观测方法或客观条件的限制,使数据含有测量误差,这类误差叫做观测误差或数据误差•数值方法中需要了解观测误差,以便选择合理的数值方法与之适应观测误差29.8/gms•精确公式用近似公式代替时,所产生的误差叫截断误差例如,函数f(x)用泰勒(Taylor)多项式nnnxnfxfxffxp!)0(!2)0(!1)0()0()()(21)1()!1()()()()(nnnnxnfxpxfxR(介于0与x之间)近似代替,则数值方法的截断误差是截断误差的大小直接影响计算结果的精度和计算工作量,是数值计算中必须考虑的一类误差截断误差•在数值计算中只能对有限位字长的数值进行运算•需要对参数、中间结果、最终结果作有限位字长的处理工作,这种处理工作称作舍入处理•用有限位数字代替精确数,这种误差叫做舍入误差,是数值计算中必须考虑的一类误差舍入误差例如用3.14159近似代替上述种种误差都会影响计算结果的准确性,因此需要了解与研究误差,在数值计算中将着重研究截断误差、舍入误差,并对它们的传播与积累作出分析小结误差与有效数字•定义:设x为准确值,x*为x的一个近似值,称e*=x*-x为近似值的绝对误差•绝对误差限•即•比较精度**xx**xx1000010,101xy•相对误差•相对误差限****reeexx***rx注:从的定义可见,实际上被偷换成了,而后才考察其上限。那么这样的偷换是否合法?严格的说法是,与是否反映了同一数量级的误差?关于此问题的详细讨论可见教材第5页。*r*re**xexe***xe有效数字的定义•设x*为准确值x的一个近似值,且x*的左边第一个非零数字到末位数字共有n位,即x*可表示为*12(1)12312310(101010).10mnnmnxaaaaaaaa*(1)1102mnxx其中m为整数,a1取1-9中某整数,a2,a3,…an取0-9中某整数.若x*的绝对误差限不超过其末位数的半个单位即则称x*的这n位数字都是有效数字,并称x*具有n位有效数字例•求pi的三位、五位、八位有效数字8979321415926535.3)(1301021005.08979320015926535.014.38979321415926535.3)(150102100005.0641020680.000007341416.38979321415926535.3)(180102100000005.0641020680.000000041415927.38979321415926535.3三位3.14五位3.1416八位3.1415927①用四舍五入取准确值的前n位x*作为近似值,则x*必有n位有效数字。如3.142作为的近似值有4位有效数字,而3.141为3位有效数字②有效数字相同的两个近似数,绝对误差不一定相同。例如,设x1*=12345,设x2*=12.345,两者均有5位有效数字但绝对误差不一样x-x1*=x-12345≤0.5=1/2100x-x2*=x-12.345≤0.0005=1/210-3③把任何数乘以10p(p=0,1,…)不影响有效位数④准确值具有无穷多位有效数字,如三角形面积S=1/2ah=0.5ah因为0.5是真值,没有误差*=0,因此n,准确值具有无穷位有效数字关于有效数字说明有效数字与误差的关系•绝对误差限与有效数字的关系)1(*1021nm有效数字与相对误差限的关系•定理1:有n位有效数字的近似值x*,则其相对误差满足不等式•反之若)1(1*1021nra11*10)1(21nra则x*至少有n位有效数字例1已知近似数x*的相对误差限为0.3%,问x*有几位有效数字?)1(1*10)1(21nra)1(110)1(2110003na得ⅰ)当a1=1时,310-3=1/410-(n-1)1210-3=10-(n-1)上式两边取以10为底的对数得lg22+lg3+(-3)=-n+1∵lg2=0.3010lg3=0.477120.3010+0.4771-4=-n∴n=2.9209ⅱ)当a1=9时,310-3=1/2010-(n-1)610-3=10-n上式两边取以10为底的对数得lg2+lg3+(-3)=-n∴n=2.2219∴x*至少有3位有效数字解:由例2为使的近似数的相对误差小于0.1%,问查开方表时,要取几位有效数字?∴-(n-1)lg2+2lg3+(-3)-n1.2552-4-n-2.7448∴n2.7448取n=3即查平方表时8.37取三位有效数字70703)1()1(110101811000110)1(21nna70∴解:∵89∴a1=8注意:已知有效数字,求相对误差用公式)1(1*10)1(21nra)1(1*1021nra已知相对误差,求具有几位有效数字公式