1、1kkkkfxxxfx 数值分析数值分析 Numerical Analysis 科学计算的桥梁科学计算的桥梁!数学的一种分类数学的一种分类 1、基础数学、基础数学 2、计算数学、计算数学 3、随机数学、随机数学(理想的)理想的)(实用的)(实用的)(圆滑的)(圆滑的)数值分析学习方法数值分析学习方法1、注意掌握各种方法的基本原理、注意掌握各种方法的基本原理;3、重视各种方法的误差分析、重视各种方法的误差分析4、做一定量的习题、做一定量的习题2、3是重点是重点5、注意与实际问题相联系、注意与实际问题相联系6、了解各种方法的算法与程序实现、了解各种方法的算法与程序实现2、注意各种方法的构造手法、注
2、意各种方法的构造手法 教材与参考书教材与参考书1、数值分析简明教程数值分析简明教程,王兵团等,清华大学出,王兵团等,清华大学出版社版社,20122、Numerical Analysis,(7th ed),Burden R.L,Faires J.D影印版,机械工业出版社影印版,机械工业出版社,20013、数学实验基础数学实验基础,王兵团,清华大学出版社,王兵团,清华大学出版社,2008 科学计算?数值分析?讲授科学计算的特点、基本知识。讲授科学计算的特点、基本知识。第一章第一章 绪论绪论 1.1 学习数值分析的重要性学习数值分析的重要性 第一章第一章 绪论绪论思考:思考:用一种计算机语言正确编程
3、,计用一种计算机语言正确编程,计算机就一定能给出正确的结果,问题算机就一定能给出正确的结果,问题是这样简单吗?是这样简单吗?例例 1 1 将数列将数列105nnxIdxx写成递推公式形式,并计算数列写成递推公式形式,并计算数列:12,I I 解:111011111005551555nnnnnnnxxxIdxxxxdxdxIxn1151,2,1.1nnIInn10016ln1.155Idxx12由和式可以依次算出I,I,但科学计算中要具体数值!若把但科学计算中要具体数值!若把06ln5I 取为取为准确到小数点后准确到小数点后8位的近似值作并在字位的近似值作并在字长为长为8的计算机上编程计算,可出
4、现的计算机上编程计算,可出现2120.32902110 10I 105nnxdxx这显然是错误的!I 用计算机解决实际问题的用计算机解决实际问题的四个步骤四个步骤1、建立数学模型;、建立数学模型;3、编写程序;、编写程序;4、上机计算。、上机计算。第第2步很重要!步很重要!2、选择数值方法;选择数值方法;1.2 计算机中的数系与运算特点计算机中的数系与运算特点 第一章第一章 绪论绪论机器数系?机器数系?计算机怎样做计算的?计算机怎样做计算的?1.1.计算机的数系计算机的数系123100.cxa a a 1230.,0,1,2,1ctixa a aaa ,c 为整数。为整数。x 称为十进制浮点数
5、称为十进制浮点数。数学中的实数(数学中的实数(10进制进制)0,1,2,9ia 其中 进制的浮点数进制的浮点数 1230.ctxa a aa 比较比较计算机中的实数计算机中的实数0,1,1ia其中1230.,ctxa a aa t:字长字长,正整数;,正整数;:进制进制,一般取为一般取为2,8,10和和16;c:阶码阶码,整数,满足,整数,满足LcU,L和和U为固定整数;为固定整数;机器数系机器数系1 2 3(,)0.0,1,1,ctkFt L Uaa aa aLcU 机器数系的特点机器数系的特点1、是有限的离散集、是有限的离散集;3、数绝对值大于、数绝对值大于M,计算机产生,计算机产生上溢错
6、误上溢错误,绝对值小于绝对值小于m,则计算机产生,则计算机产生下溢错误下溢错误;4、上溢时,计算机中断程序处理上溢时,计算机中断程序处理;下溢时,下溢时,用零表示该数并继续执行程序用零表示该数并继续执行程序;无论是上溢,还是下溢,都称为无论是上溢,还是下溢,都称为溢出错误溢出错误。2、有绝对值最大非零数、有绝对值最大非零数(M)和最小非零数和最小非零数(m);5、计算机把尾数为、计算机把尾数为0且阶数最小的数表示且阶数最小的数表示数零数零.2.2.计算机对数的接收与处理计算机对数的接收与处理(,)xFt L U1)若,原样接收原样接收 x;计算机对数计算机对数 x 的接收的接收(,),xFt
7、L UmxM2)若但 则用则用 (,)Ft L U 中最属于靠近中最属于靠近 x 的数的数 fl(x)表示并记录表示并记录x。计算机对数的运算处理计算机对数的运算处理1)加减法加减法:先对阶,后运算,再舍入;先对阶,后运算,再舍入;2)乘除法乘除法:先运算,再舍入。先运算,再舍入。例,某计算机数系例,某计算机数系F(10,4,99,99)的两个数的两个数 -12120.2337 10 ,0.3364 10 xx1212()(0.2337 100.3364 10)fl xxfl则运算过程如下:则运算过程如下:22(0.0002337 100.3364 10)fl对阶2(0.3366337 10)
8、fl运算20.3366 10舍入 1.3 1.3 误差误差 第一章第一章 绪论绪论误差?误差?绝对误差?绝对误差?相对误差?相对误差?准确值与近似值的差异就是误差!准确值与近似值的差异就是误差!1)1)模型误差(也称描述误差)模型误差(也称描述误差);1 1、误差的来源、误差的来源 2)2)观测误差(也称数据误差);观测误差(也称数据误差);3)3)截断误差(也称方法误差);截断误差(也称方法误差);4)4)舍入误差(也称计算误差)。舍入误差(也称计算误差)。2 2、误差的定义(数学定义)、误差的定义(数学定义)定义定义1 设设x是准确值,是准确值,x*是是 x 的一个近似值,的一个近似值,称
9、差称差 x*x为为x*的的绝对误差绝对误差,简称,简称误差误差,记为,记为e*或或e(x*),即,即:e(x*)=x*x定义定义2 称满足称满足*exx的正数的正数 *为近似值为近似值x*的误差限的误差限。*xxxxx简记 定义定义3 设设 x 是准确值,是准确值,x*是是x的近似值,称的近似值,称*exxxx为近似值为近似值x*的相对误差,记为的相对误差,记为*rexxexxx重要结论!重要结论!相对误差绝对值越小,近似程度越高。相对误差绝对值越小,近似程度越高。定义定义4 满足满足*rrxxex的正数的正数*r称为称为x*的相对误差限。的相对误差限。*rx实用中,3 3、数值计算的误差、数
10、值计算的误差 *1()e xye xe y定理定理1 假设假设x*和和y*分别是准确值分别是准确值x和和y的一个的一个近似值,则有四则运算的绝对误差估计:近似值,则有四则运算的绝对误差估计:*2()e xyy e xx e y*2*3()y e xx e yxeyy 证明证明(2 2)*()e x yx yxy*x yxyxyxy*y xxx yy *y e xxe y *()y e xxe yxx 微分与误差的对应微分与误差的对应*exxxdx*lnrxxdxexdxxx 绝对误差和相对误差与微分的关系绝对误差和相对误差与微分的关系*1dxe x*2lnrdxex 例例2 求函数求函数nyx
11、与自变量与自变量x的相对误差关系。的相对误差关系。lnlnynx解:取对数有lnlndyndx取微分有*nrrexnex 1.4 有效数字有效数字 第一章第一章 绪论绪论 科学计算中常用有效数字来估科学计算中常用有效数字来估计和处理误差,有效数字易算且与计和处理误差,有效数字易算且与误差有密切关系。误差有密切关系。有效数字是误差的定量化。有效数字是误差的定量化。1 1、有效数字的定义、有效数字的定义 定义定义5:若近似数若近似数 x*的误差限是其某一位上数字的半的误差限是其某一位上数字的半个单位,就说近似数个单位,就说近似数x*准确到该位;由该位自右向左准确到该位;由该位自右向左数到数到x*的
12、第一个非零数字若有的第一个非零数字若有n位,就称近似数位,就称近似数x*有有n位有效数字。位有效数字。*210123216.5032 101 106 105 100 103 10 x 210123216593101010101010*311062e xn *111022e xn 2、有效数字的数学描述、有效数字的数学描述设设*120.10mkxa aa 10,0,1,2,9,laakn mZ*0.5 10m ne xxx如果成立如果成立则称近似数则称近似数x*有有n位有效数字,此时可写位有效数字,此时可写*120.10mnxa aa 有效数字越多,绝对误差和相对误差有效数字越多,绝对误差和相对
13、误差就越小,因此近似数就越准确!就越小,因此近似数就越准确!例例3 求圆周率求圆周率 的两个近似值的两个近似值123.14,3.141xx的有效数字。的有效数字。113.1415926,0.314 10,1xm解:1220.015926100.159260.5 10 x有有m-n=-2,得,得n=3,x1有有3位有效数字;位有效数字;122320.00059260.3141 10,1100.59260.5 10 xxm有有m-n=-2,得,得n=3,x2有有3位有效数字;位有效数字;可以证明:可以证明:果十进制果十进制 x 经过四舍五入得到近似数经过四舍五入得到近似数 x*,则则x*的有效数字
14、位为的有效数字位为将将 x*写为规格化浮点数写为规格化浮点数后的尾数的位数后的尾数的位数。例例 0.00345四舍五入得四舍五入得 0.0035=0.35 10-2可可知近似数有知近似数有2位有效数字。位有效数字。的近似数的近似数3.14(四舍五入数)有(四舍五入数)有3位有效位有效数字;数字;3.142(四舍五入数)有(四舍五入数)有4位有效数字位有效数字.而而近似数近似数3.141(不是四舍五入数)有(不是四舍五入数)有3位有位有效数字,虽然它有效数字,虽然它有4位数。位数。例例4 已知近似数已知近似数x*有有5位有效数字,试求其相位有效数字,试求其相对误差限。对误差限。解:解:因为因为
15、x*有有5位有效数字,可以设位有效数字,可以设*1 2510.10,1mxaaaa由题意,有由题意,有n=5和和*50.5 10mxx*55*125144*410.5 105 100.10111101010222mmrxxa aaaxa 3、有效数字与相对误差的关系、有效数字与相对误差的关系定理定理3 设设10进制近似数进制近似数*1210.10,0,mkxa aaakn 1)若若x*有有n位有效数字,则有位有效数字,则有*1*11102nrxxexax2)若若x*的相对误差的相对误差*1*111021nrxxexax则则x*有有n位有效数字。位有效数字。(证明见书)(证明见书)例例5 为保证
16、某算式的计算精度,要求其中的为保证某算式的计算精度,要求其中的323的近似值的近似值x*的相对误差小于的相对误差小于0.1%,请确定,请确定x*至至少要取几位有效数字才能达到要求。少要取几位有效数字才能达到要求。313232312233232.0.2102a aa aa解:假设假设x*至少要取至少要取n位有效数字才能保证相对位有效数字才能保证相对误差小于误差小于0.1%,由定理,由定理3,选择,选择1111110100.1%4222nnna*1*11102nrxxexax 1.5 数值分析研究内容数值分析研究内容第一章第一章 绪论绪论 1、连续系统的离散化;、连续系统的离散化;2、离散型方程的
17、数值求解、离散型方程的数值求解 1()(),nbiiaif x dxA f xfxC a b 1.6 数值分析中常用的一些概念数值分析中常用的一些概念第一章第一章 绪论绪论数值解?算法数值解?算法?计算量计算量?1.1.数值问题数值问题 由一组由一组已知数据已知数据(输入数据)求出一组(输入数据)求出一组结结果数据果数据(输出数据),使得这两组数据之间满(输出数据),使得这两组数据之间满足预先指定的某种关系的问题,称为数值问题。足预先指定的某种关系的问题,称为数值问题。2.2.数值解数值解 由近似公式计算出的解称为数值解。由近似公式计算出的解称为数值解。数值解是数值解是近似解近似解。3.算法算
18、法 由由给定的已知量,给定的已知量,经过经过有限次四则运算及有限次四则运算及规定的运算顺序,规定的运算顺序,求出求出所关心未知量的数值解,所关心未知量的数值解,这样所构成的整个计算步骤,称为算法。这样所构成的整个计算步骤,称为算法。数值分析本质上是研究和构造算法。数值分析本质上是研究和构造算法。4.4.计算量计算量 一个算法所需要的乘法和除法总次数一个算法所需要的乘法和除法总次数称为计算量,常用称为计算量,常用N表示。表示。计算量的单位为计算量的单位为flop,表示完成一次浮点,表示完成一次浮点数乘法或除法所需要的时间。数乘法或除法所需要的时间。算法的计算量可以衡量算法的优劣,因为算法的计算量
19、可以衡量算法的优劣,因为它体现着算法的计算效率。它体现着算法的计算效率。算法的计算量越小,则算法的计算效率算法的计算量越小,则算法的计算效率越高,因而该算法也就越好。越高,因而该算法也就越好。例例6.假设假设A,B,C 分别为分别为1020,2050,501的矩阵,试给出计算的矩阵,试给出计算DABC的两者算的两者算法及对应的计算量。法及对应的计算量。算法算法1 D(AB)C计算量计算量 N10500 flop算法算法2 DA(BC)计算量计算量 N1200 flop算法算法2比算法比算法1好!好!1,m tijt nijm ss nm nijsijikkjkm ss nAaBbABCcca
20、bABm tn 矩阵乘法计算量:的计算量为 5.5.病态问题和良态问题病态问题和良态问题 初始数据的微小变化,导致计算结果的初始数据的微小变化,导致计算结果的剧剧烈变化烈变化的问题称为的问题称为病态问题病态问题。例例如如123123123111123611113234121114734560 xxxxxxxxx1231231230.500.331.80.500.330.251.10.330.250.200.78xxxxxxxxx 扰动12312316.2,38,34xxxxxx 初始数据的微小变化只引起计算结果的初始数据的微小变化只引起计算结果的微微小变化小变化的计算问题称为的计算问题称为良态
21、问题良态问题。12122622xxxx 12122622.005xxxx 扰动12122,21.999,2.002xxxx 病态问题的计算或求解应使用专门的方法病态问题的计算或求解应使用专门的方法或将其转化为非病态问题来解决。或将其转化为非病态问题来解决。数值分析主要研究良态问题数值解法。数值分析主要研究良态问题数值解法。6.6.数值稳定算法数值稳定算法 如果一个算法进行计算的初始数据有误差,如果一个算法进行计算的初始数据有误差,而在计算过程中产生的误差不增长,则称该算而在计算过程中产生的误差不增长,则称该算法为数值稳定算法,否则称为数值不稳定算法。法为数值稳定算法,否则称为数值不稳定算法。例
22、例8 选用一个数值稳定方法计算数列选用一个数值稳定方法计算数列10,1,2,1005nnxIdx nx解:直接推导有递推公式解:直接推导有递推公式115nnIIn*115nnIIn对应的误差算式对应的误差算式*11155nnnnkkknnIIIIIIeee,记误差增大误差增大5倍!倍!不稳定算法!下面采用逆序计算方式给出一个数值稳定下面采用逆序计算方式给出一个数值稳定的计算公式的计算公式11115,55nnnnIIInInnn同理*1115nnnnIIII1*155nnIIn115nnee误差减少误差减少5倍倍11,100,99,155nnIInn稳定算法!稳定算法的初值稳定算法的初值*100
23、I的选取:的选取:100111001000011116 1015510155 101xIdxx dxx100116 1015 101I取均值取均值*1001111110.0018152101 566060I*31001001110.000330.331 10101 56II最大误差最大误差 1.7 科学计算要注意的地方科学计算要注意的地方第一章第一章 绪论绪论避免两个相近的数相减;避免两个相近的数相减;避免用接近零的数做除数;避免用接近零的数做除数;控制舍入误差的积累和传播;控制舍入误差的积累和传播;简化计算过程简化计算过程。例例 7 怎样计算下列算式更好?怎样计算下列算式更好?11,11yxxx、212,1xxeyxx、解解:1、x 1表示表示x很大,分母接近于零,且有相很大,分母接近于零,且有相近数相减情况,要避免:近数相减情况,要避免:方法:用公式变形方法:用公式变形111111xxyxxxxxxxx 1yxx 选 用 解解:2、x1表示表示 x 接近于零,分母出现接近接近于零,分母出现接近于零的数,因此不能直接计算,要避免之。于零的数,因此不能直接计算,要避免之。方法:方法:因无对应的变形公式,用因无对应的变形公式,用Taylor公式做之。公式做之。23221123!4!5!12624xxexxeyxxxx 231,26245!xxeye yx 再再 见见