《怎样避免计算误差》PPT课件.pptx

上传人:san****019 文档编号:20886206 上传时间:2021-04-20 格式:PPTX 页数:19 大小:289.76KB
返回 下载 相关 举报
《怎样避免计算误差》PPT课件.pptx_第1页
第1页 / 共19页
《怎样避免计算误差》PPT课件.pptx_第2页
第2页 / 共19页
《怎样避免计算误差》PPT课件.pptx_第3页
第3页 / 共19页
点击查看更多>>
资源描述
数值分析方法实际问题物理模型数学模型数值分析方法计算机求结果 数 值 分 析 实 际 上 就 是 介 绍 在 计 算 机 上 解决 数 学 问 题 的 数 值 计 算 方 法 及 其 理 论 。 这 门课 程 又 称 为 数 值 计 算 方 法 . Fortran C+Matlab 误差和相对误差( 定义1.1) 设x*是某量的准确值,x是x*的近似值称x = x*-x 为x的误差或绝对误差。 | x*-x |, 称为x的(绝对)误差限或精度, rx = (x*-x)/x*称为x的相对误差 |(x*- x)/ x *| r, 称 r为x的相对误差限。当 r 很小时, r /| x |。 准确位数和有效数字( 定义1.2)设x =0.a 1 a 2an10m (m为整数) (1.1)其中a 1an为09中一个数字且a 10。如果 | x*-x|0.510k (1.2)即x的误差不超过10-k位的单位则称近似数x准确到第k位小数,并说x有k位有效数字。 计算规则1 . 加减法以小数点后位数最少的数据为基准,其他数据比它多保留一位,再进行加减计算,最终计算结果保留最少的位数。 例:计算5 0 .1 +1 .4 5 +0 .5 8 1 2 =? 修约为:5 0 .1 +1 .4 5 +0 .5 8 =5 2 .1 3 =5 2 .1 2 . 乘除法以有效数字最少的数据为基准,其他数据多保留一位有效数字,再进行乘除运算,计算结果仍保留最少的有效数字。 例:计算0 .0 1 2 12 5 .6 41 .0 5 7 2 8 =? 修约为:0 .0 1 2 12 5 .6 41 .0 5 7 =? 计算后结果为:0 .3 2 7 9 2 7 9 0 8,结果仍保留为三位有效数字。 记录为:0 .0 1 2 12 5 .6 41 .0 5 6 =0 .3 2 8 例:计算2 .5 0 4 62 .0 0 51 .5 2 =? 修约为:2 .5 0 52 .0 0 51 .5 2 =? 当把1 .1 3 5 3 21 0保留3个有效数字时,结果为1 .1 41 0 运算中若有、e等常数,以及2 .1 /2等系数,其有效数字可视为无限,不影响结果有效数字的确定。 (ab)=ab, r(ab)= a/(ab)ra+b/(ab)rb(近似数相减不稳定) (ab) ba+ab r(ab) ra+rb (a/b) (1/b)a(a/b2)b (b 0不稳定) r(a/b) rarb 一 避免两个大数相减例1 :计算 1 2 3 4 5 .0 0 0 8 1 2 3 4 5 .0 0 0 2结果为 0 .0 0 0 9 7 6 5 6 write(*,*) 1 2 3 4 5 .0 0 0 8 - 1 2 3 4 5 .0 0 0 2pauseend减少计算误差的措施 100000000100000001例2 :计算 直接计算100000000100000001 1计算 结果为 0 .0 0 0 0 4 9 9 9write(*,*) sqrt(1 0 0 0 0 0 0 0 1 .0 ) - 1 0 0 0 0 .0利用公式xxxx 111write(*,*)1 .0 /(sqrt(1 0 0 0 0 0 0 0 1 .0 )+1 0 0 0 0 .0 )211x xx 很小时:当-4100.5100000000100000001 结果为 0 二 避免绝对值接近于零的数做分母100000010000011000 :3 y计算例)10000001000001(1000100000010000011000 直接计算write(*,*)1 0 0 0 .0 /(sqrt(1 0 0 0 0 0 1 .0 )-1 0 0 0 )结果为 2 0 4 8 0 0 0 .0利用write(*,*)1 0 0 0 .0 *(sqrt(1 0 0 0 0 0 1 .0 )+1 0 0 0 )结果为 2 0 0 0 0 0 0 .0 可见,直接计算的误差很大. 例4: 计算0003.0,sincos1 xx x当x很小时,分子出现相近数相减,分母趋于零. 00015.02cos1 sin)cos1(sin cos1)cos1(sin )cos1)(cos1( 2 xxxxx xxx xx结果为 0 .0 0 0 1 9 8 6 8write(*,*)(1 .0 -cos(0 .0 0 0 3 )/sin(0 .0 0 0 3 )将以上算式变形直接计算1cos,sin xxx其中利用了write(*,*)sin(0 .0 0 0 3 )/(1 .0 +cos(0 .0 0 0 3 )结果为 0 .0 0 0 1 5 0 0 0 三 防止大数吃小数。当两个绝对值相差很大的数进行加法或减法运算时,绝对值小的数有可能被绝对值大的数吃掉. t=1 2 3 4 5 6 7 .0do i=1 ,1 0 0t=t+0 .0 1enddowrite(*,*)t结果为 1 2 3 4 5 6 7 .0t=0 .0do i=1 ,1 0 0t=t+0 .0 1enddot=t+1 2 3 4 5 6 7 .0 write(*,*)t结果为 1 2 3 4 5 6 8 .0例5 : 计算 1 2 3 4 5 6 7加上1 0 0个0 .0 11 .把 0 .0 1 一个一个直接加到 1 2 3 4 5 6 7 .0上2 . 先把 1 0 0 个 0 .0 1 加在一起,然后再加到 1 2 3 4 5 6 7 .0上 四 好的运算方案能控制误差的传播放大,减少计算步骤.例6 : 计算dcxbxax 23不良运算方案Write(*,*)a*x*3 +b*x*2 +c*x+d一共6次乘法,3次加法.良好运算方案 ,)( dxcxbax dcxbxax 23Write(*,*)(a*x+b)*x+c)*x+d一共3次乘法,3次加法. 0111)( axaxaxaxP nnnnn (b)秦九韶算法 1 2 1 0( ) ( ( ( ( ) )n n n nP x x x x x a x a a a a 对于一般多项式(a) 直接计算每一项再求和:;2 )1(12)1()( nnnnxpn的值需作乘法次数:计算.n加法次数: ).(,;)( 1,2,1,11nnkkkk nnn axSS aSxp的递推公式:计算),(0 xpS n则次加法。次乘法的值只需作计算nnxpn )( 例7 : 控制误差被恶性放大的例子. 10,2,1,0 5 10 ndxxxI nn,其中计算积分dxx xxxI nnnn 10 115 55 110 110 1 5155 nnn Indxxxdxx 182.05ln6ln511 00 dxxI来计算利用 51 )( 1 nn InIa 9101201 5101,;521; 511 IIIIII t=0 .1 8 2do i=1 ,1 0t=1 .0 /i-5 .0 *tenddowrite(*,*)t真实值约为0 .0 1 6 7 , 计算结果却为 -3 1 4 0 .2 2 4 Why ?10I 倍的误差被放大时求5, 01 II倍的误差被放大时求202 5,II倍的误差被放大时求10010 5,II这个算法显然不具有数值稳定性正确的算法在哪?,利用,先求出 98109 n1-n10 I-9151I I-10151I I-n151I I51, 019的误差被减小到时求II倍的误差被减小到时求2018 51, II倍的误差被减小到时求10010 51, II dxxdxxxdxx 10 1010 1010 10 556 551661 10 I01667.055166121 10 I取 n1-n I-n151I 利用t=0 .0 1 6 6 7do i=1 0 ,1 ,-1t=0 .2 *(1 .0 /i-t)enddowrite(*,*)t 182.0 0 I结果为这个算法具有数值稳定性 据 说 , 美 军 1910 年 的 一 次 部 队 的 命 令 传 递 是 这 样 的 : 营 长 对 值 班 军 官 : 明 晚 大 约 8点 钟 左 右 , 哈 雷 彗 星 将 可 能 在 这 个 地 区看 到 , 这 种 彗 星 每 隔 76年 才 能 看 见 一 次 。 命 令 所 有 士 兵 着 野 战 服 在 操场 上 集 合 , 我 将 向 他 们 解 释 这 一 罕 见 的 现 象 。 如 果 下 雨 的 话 , 就 在 礼堂 集 合 , 我 为 他 们 放 一 部 有 关 彗 星 的 影 片 。值 班 军 官 对 连 长 : 根 据 营 长 的 命 令 , 明 晚 8点 哈 雷 彗 星 将 在 操 场 上 空 出现 。 如 果 下 雨 的 话 , 就 让 士 兵 穿 着 野 战 服 列 队 前 往 礼 堂 , 这 一 罕 见 的现 象 将 在 那 里 出 现 。连 长 对 排 长 : 根 据 营 长 的 命 令 , 明 晚 8点 , 非 凡 的 哈 雷 彗 星 将 身 穿 野 战服 在 礼 堂 中 出 现 。 如 果 操 场 上 下 雨 , 营 长 将 下 达 另 一 个 命 令 , 这 种 命令 每 隔 76年 才 会 出 现 一 次 。排 长 对 班 长 : 明 晚 8点 , 营 长 将 带 着 哈 雷 彗 星 在 礼 堂 中 出 现 , 这 是 每 隔 76年 才 有 的 事 。 如 果 下 雨 的 话 , 营 长 将 命 令 彗 星 穿 上 野 战 服 到 操 场 上去 。 班 长 对 士 兵 : 在 明 晚 8点 下 雨 的 时 候 , 著 名 的 76岁 哈 雷 将 军 将 在 营 长 的陪 同 下 身 着 野 战 服 , 开 着 他 那 “ 彗 星 ” 牌 汽 车 , 经 过 操 场 前 往 礼 堂 。 思考题:用正确方法编程计算00000010ln01010000ln 0000100.1ln00000100 00010100ln00001000ln01010000ln 解:xxx )1ln( 0时,当0000001.00000001.1ln write(*,*)log(1 .0 0 0 0 0 0 1 )结果为 0 .0 0 0 0 0 0 1 2若用write(*,*)log(1 0 0 0 0 0 0 1 .0 )-log(1 0 0 0 0 0 0 0 .0 )结果为 0 .0 0 0 0 0 0 0
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!