收藏 分享(赏)

1 数值分析(计算方法)介绍.ppt

上传人:myw993772 文档编号:6922741 上传时间:2019-04-27 格式:PPT 页数:30 大小:715KB
下载 相关 举报
1 数值分析(计算方法)介绍.ppt_第1页
第1页 / 共30页
1 数值分析(计算方法)介绍.ppt_第2页
第2页 / 共30页
1 数值分析(计算方法)介绍.ppt_第3页
第3页 / 共30页
1 数值分析(计算方法)介绍.ppt_第4页
第4页 / 共30页
1 数值分析(计算方法)介绍.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、2019/4/27,1,数 值 分 析 插值、拟合与数值微积分,2019/4/27,2,数值分析(计算方法)简介,考虑如下线性方程组,或者:,其中 ,由克莱姆法则可知 (1)有唯一的解,而且解为:,(1),引例,2019/4/27,3,若行列式用按行(列)展开的方法计算 ,,用克莱姆法则求解(1)需做乘除法的次数:,当方程组阶数较高时,计算量很大,因此克莱姆法则通常仅有理论上的价值,计算线性方程组的解还要考虑数值解法 = 算法 + 计算机。,首先看一个简单的例子:,(若是更高阶的方程组呢?),人类的计算能力是计算工具和计算方法效率的乘积,提高计算方法的效率与提高计算机硬件的效率同样重要。科学计

2、算已用到科学技术和社会生活的各个领域中,成为继实验和理论研究之后的第三种研究方法。,2019/4/27,4,研究对象和主要内容,2019/4/27,5,数值分析(数值计算方法)的计算对象是线性代数,微积分,常微分方程中的数学问题。内容包括:求解线性方程组的数值解法、计算矩阵特征值和特征向量、非线性方程和非线性方程组的迭代解法、插值与拟合、数值微积分和常微分方程数值解等问题。,直接解法 若计算过程没有舍入误差,经过有限次算术运算就能求出问题精确解的数值方法。,迭代解法 若计算过程没有舍入误差,也不能经过有限次算术运算求得问题的精确解,而只能是逐步逼近的数值方法。,数值分析(数值计算方法),是一种

3、研究如何求解数学问题数值近似解的方法,是在计算机上使用的解数学问题的方法,简称计算方法。包括直接方法和迭代方法!,2019/4/27,6,特点,2019/4/27,7,学习过程中应该注意以下几个方面: 认清算法的计算对象; 掌握基本的计算方法及其原理; 用C+语言编制程序,在计算机上对算法进行验证; 对于算法要勤思考多比较!,数值分析(数值计算方法)既有数学类课程中理论上的抽象性和严谨性,又有实用性和实验性等技术特征,它是一门理论性和实践性都很强的课程。在70年代,大多数学校仅在数学系的计算数学专业和计算机系开设计算方法这门课程。随着计算机技术的迅速发展和普及,现在计算方法课程几乎已成为所有理

4、工科大学生的一门必修课程。,2019/4/27,8,参考书目:,1 钟尔杰. 数值分析. 高等教育出版社,2004. 2 颜庆津. 数值分析. 修订版. 北京航空航天大学出版社, 2000. 3 李庆扬. 数值分析. 清华大学出版社,2001. 4 白峰杉. 数值计算引论. 高等教育出版社, 2004. 5 王能超. 计算方法. 北京: 高等教育出版社, 2005,2019/4/27,9,数值分析的基本概念,算法设计技术 误差 数值计算中需要注意的一些问题 算法的稳定性 病态问题,内容:,2019/4/27,10,算法设计技术,古希腊哲学家Zeno在两千多年前提出过一个骇人听闻的命题:一个人不

5、管跑得多快,也追不上爬在他前面的一只乌龟。这就是著名的Zeno悖论。 Zeno在论证这个命题时采取了如下形式的逻辑推理:设人与龟同时同向起跑,如果龟不动,那么人经过某段时间便能追上它;但实际上在这段时间内龟又爬了一段路程,从而人又得重新追赶,如下图所示,这样每追赶一次所归结的是同样类型的追赶问题,因而这种追赶过程“永远”不会终结。,引例,2019/4/27,11,耐人寻味的是,尽管Zeno悖论的论断极其荒谬,但从算法设计思想的角度来看它却是极为精辟的。Zeno悖论将人龟追赶问题表达为一连串追赶步的逐步逼近过程。设人与龟的速度分别为V与v,记Sk表示逼近过程的第k步人与龟的间距,另以tk表示相应

6、的时间,相邻两步的时间差为tk 。Zeno悖论将人龟追赶问题分解为一追一赶两个过程:,追的过程:先令龟不动,计算人追上龟所费的时间,赶的过程:再令人不动,计算龟在这段时间内爬行的路程,2019/4/27,12,若以人和龟之间的距离 定义问题的规模大小,则上述过程将问题规模 压缩了 倍:,由于龟的速度远远小于人的速度,故 很小,因此按上述步骤很快 问题的规模 就可以忽略不计,从而得到人追上龟所花时间 ,Zeno的解释可用如下过程表示:,Zeno算法,可见,Zeno算法的设计思想是,将人龟追赶计算化归为简单的行程计算的重复,它的设计方法是逐步压缩计算模型的规模,这种“化大为小”的设计策略称为规模缩

7、减技术,简称缩减技术。,算法的设计精髓:“简单”的重复生成复杂!,2019/4/27,13,数列求和问题:(1) 是最简单的计算模型。若记表示前n项的部分和,则有(2)则计算结果即为所求的和值:(3),这样,如果定义和式的项数为数列求和问题的规模,则所求和值为(1)的退化情形。因之,只要令和式的规模逐次减1,最终当规模为1时即可直接得出所求的和值,而这样设计出来的算法就是累加求和算法(2)。,直接法的缩减技术,可见,上述累加求和算法的设计思想是将多项求和(1)化归为两项求和(2)的重复,最终加工成一项和式(3)((1)的退化情形),从而得出和值。,2019/4/27,14,考虑,利用缩减技术可

8、得如下算法:,算法流程图,问题1:编程实现任意阶多项式的计算!,2019/4/27,15,迭代法的校正技术,易得人追上龟所花的时间是,注意到 v是个小量,设t也是个小量,则可从上式中略去vt ,即令校正量t满足如下方程(近似),有些问题的“大事化小”过程似乎无法了结。Zeno悖论强调人“永远”赶不上龟正是为了突出这层含义。这是一类无限逼近的过程,适于用所谓预报校正技术来处理。,设人龟起初相距 ,两者的速度分别为 和 ,,则有方程,(1),设解t*有某个预报值t0,希望提供校正量t,使校正值t1= t0+ t 能更好的满足所给方程(1),即使得,2019/4/27,16,进一步视 t1为新的预报

9、值,重复实施上述手续,求出新的校正值 t2,再由 t2定 t3 ,如此反复可生成一系列近似值 t1,t2,t3,这就规定了一个迭代过程,,求解上述方程即可定出校正值,(2),Zeno悖论所描述的逼近过程正是这种迭代过程,当k时,tk t* (问题2: 证明该结论!)。大家知道,任何形式的重复都可看成是“时间”的量度。Zeno在刻画人龟追赶问题中设置了两个“时钟”:一个是日常的钟,另外Zeno又将迭代次数视为另一种时钟,不妨称之为Zeno钟。Zeno公式(2)表明,当Zeno钟趋于时人才能追上龟,Zeno正是据此断言人永远追不上龟。,2019/4/27,17,给定 ,求开方值 的问题就是要求解方

10、程,设给定某个预报值 ,希望借助于某种简单方法确定校正量 ,使校正值,能够比较准确地满足方程(1),即使 成立,,设校正量 是个小量,舍去上式中的高阶小量 ,令 ,从中定出 ,继而可得校正值:,(1),反复实施这种预报校正手续,即可导出开方公式 :,从某个初值 出发,利用上式反复迭代,即可获得满足精度要求的开方值 。,利用校正技术,设计求解 ( )的算法。,校正技术的基本思想:删繁就简,逐步求精 !,近似,问题3:编程实现!要求:画出流程图,初始值由键盘输入。,2019/4/27,18,算法优化的松弛技术,对于给定的预报值 ,校正值为,据此有 ,两端同除以 ,有,由于 为人龟追赶问题的精确解,

11、,再考察Zeno算法:,由此可见,精确解等于任给预报值同它的校正值的加权平均:,其中 ,,可以看到,这里任意一对迭代值经过上述手续松弛即可得到问题的精确解。这种加工效果是奇妙的。,2019/4/27,19,在实际计算中常常可以获得目标值 F * 的两个相伴的近似值 F0 与 F1 ,将它们加工成更高精度的结果的方法之一就是取两者的某种加权平均作为改进值:,即通过适当选取权系数 来调整校正量 ,以加工得到更高精度的 ,这种基于校正量的调整与松动的方法通常称为松弛技术。,有一种情况特别引人注目:若所提供的一对近似值 与 有优劣之分,譬如 优而 劣,这时就采用如下松弛方式:,即在松弛过程中张扬 的优

12、势而抑制 的劣势,这种设计策略称作外推松弛技术,简称超松弛。,总之,超松弛的设计机理是优劣互补,化粗为精。松弛技术的关键在于松弛因子的选取,而这往往是相当困难的。,返回,2019/4/27,20,误差,误差的分类,2019/4/27,21,误差和有效数字,(1) 误差,定义 设 是准确值, 是 的一个近似值,记 ,称 为近似值 的绝对误差,简称误差。,若已知 的一个上界为 ,即 ,则称 为近似值 的绝对误差界,简称误差界(越小表示近似程度越高)。,注: 用绝对误差来刻画近似数的精确程度不能反映它在原数中所占的比例。,例 ,可是 与真值 相差一个数量级。,记 ,称 为近似值 的相对误差,也可以记

13、为,的一个上界 ,称为近似值 的相对误界,上例中 ,易见近似程度并不高!,2019/4/27,22,(2) 有效数字,例 设近似值 ,其绝对误差限都是0.005, 求各个近似值各有几位有效数字?,解 绝对误差限是0.01的半个单位,且 ,有三位有效数字,分别是1,3,8; 有一位有效数字,为3;没有有效数字。,同一真值的不同近似值,有效数字越多,它的绝对误差和相对误差都越小。, 用单精度浮点型变量进行计算的结果有七位有效数字,双精度浮点型变量有16位有效数字,注:,定义 设 是数 的近似值,如果 的绝对误差限是它的某一位的半个单位,且从该位到 的第一位非零数字共有 位,则称 作为 的近似有 位

14、有效数字。,2019/4/27,23,浮点数,(1)浮点数,“数”在计算机中是以二进制表示的,一个非零二进制数的一般描述形式为:,其中di(i=1,2,t)为0或1,称为尾数,且d10;2为基数,s称为阶码且满足L s U,,这说明计算机只能表示有限个数且是有限精度,这个实数的子集称为浮点数,记作F。不难验证对于F中任意不为零的数 f,有,其中m=2L-1,M=2U(1-2-t),,因此计算机上的计算会有溢出现象:上溢和下溢!,浮点数在接近其下界m处比较稠密,而在接近其上界M处比较稀疏!,因此,在计算中通常都是使用相对误差来控制精度!,由于计算机的有限精度而造成的误差称为舍入误差!,2019/

15、4/27,24,(2) 截断误差和舍入误差,考虑计算一元可微函数f(x)在x0处导数的近似方法:,因此近似方法(1)的误差为,考虑方法(1):由泰勒展开,可得,从而有,截断误差,问题4:计算近似方法(2)的截断误差!,2019/4/27,25,通过实验发现,随着h减小,通过(1)计算的导数近似值与真值的误差是先减小后增大,这种现象是什么原因造成的呢?,其原因就在于计算机是有限精度的,随着h的减小,舍入误差逐渐被放大,并且最终成为引起误差的主导因素!,要学好数值分析课程一定要真正理解舍入误差,特别是舍入误差在算法中的传播和对最终结果的影响!,同理可以讨论近似方法(2)的截断误差,以及随着h的减小

16、,其误差的变化情况!,返回,那么是不是h越小,计算误差就越小呢?,2019/4/27,26,数值计算中需要注意的问题,浮点数的加法,设,两个浮点数相加:首先比较它们的阶码,若阶码相同则尾数相加,相加后若尾数大于1则阶码进位;若阶码不等,则以相对大的阶码为标准,将阶码小的浮点数进行移位,直到阶码一致,再按阶码相同时的规则进行相加!,例1 假设计算机只能存放三位十进制数字,设 ,在该计算机上进行如下运算,(1)计算 与十个 之和,即 ,采用以下两种计算方法,2) (正确),2019/4/27,27,(2) (错),(3) (错),(正确),例2 计算,-只需要做12次乘法,2019/4/27,28

17、,数值计算的一些基本原则,(1)由于计算机字长的限制 防止小数加到大数上; 防止除数过小; 防止相近的数相减(会损失有效数字);,(2)由于计算机的计算原理 要尽量减少乘除法的运算次数,返回,2019/4/27,29,算法的稳定性,首先来看一个例子,考虑积分序列:,(1),显然 ,且计算可得 ,对 进行分部积分得,并且,为了估计积分序列 ,我们构造如下方法:,方法1(直接应用(2)),(2),(3),方法2(考虑到结果(3),考虑舍入误差, 方法1不可取!,若在计算过程中误差被无限制放大,则称该算法不稳定, 否则称之为稳定算法。,返回,2019/4/27,30,病态问题,例子,其中a分别取0.99和0.991,算得结果分别为,可见系数的微小变化,引起了结果比较大的改变!我们称该问题是病态问题!,求解方程组 ,,和,一般的,我们称对误差敏感的问题为病态问题,否则称为良态的!,返回,常规的算法对于病态问题的求解通常是无效的,因此在求解时要特别引起注意!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报