- 6
- 0
- 约1.48千字
- 约 19页
- 2018-10-04 发布于浙江
- 举报
01怎样避计算误差
数值分析方法;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. 加减法
以小数点后位数最少的数据为基准,其他数据比它多保留一位,再进行加减计算,最终计算结果保留最少的位数。
例:计算50.1+1.45+0.5812=?
修约为:50.1+1.45+0.58=52.13=52.1; 2. 乘除法
以有效数字最少的数据为基准,其他数据多保留一位有效数字,再进行乘除运算,计算结果仍保留最少的有效数字。
例:计算0.0121×25.64×1.05728=?
修约为:0.0121×25.64×1.057=?
计算后结果为:0.327927908,结果仍保留为三位有效数字。
记录为:0.0121×25.64×1.056=0.328
例:计算2.5046×2.005×1.52=?
修约为:2.505×2.005×1.52=?
当把1.13532×10⒑保留3个有效数字时,结果为1.14×10⒑
运算中若有π、e等常数,以及√2.1/2等系数,其有效数字可视为无限,不影响结果有效数字的确定。 ;?(a?b)=?a??b,
?r(a?b)= [a/(a?b)]?ra+[b/(a?b)]?rb(近似数相减不稳定)
?(ab) ? b?a+a?b
?r(ab) ? ?ra+?rb
?(a/b) ? (1/b)?a?(a/b2)?b (b ?0不稳定)
?r(a/b) ? ?ra??rb;一 避免两个大数相减; ;二 避免绝对值接近于零的数做分母;例4: 计算;三 防止大数吃小数。当两个绝对值相差很大的数进行加法或减法运算时,绝对值小的数有可能被绝对值大的数吃掉.;四 好的运算方案能控制误差的传播放大,减少计算步骤.;(b)秦九韶算法;例7: 控制误差被恶性放大的例子.;这个算法显然不具有数值稳定性;t=0.01667
do i=10,1,-1
t=0.2*(1.0/i-t)
enddo
write(*,*)t;据说,美军 1910 年的一次部队的命令传递是这样的:
营长对值班军官: 明晚大约 8点钟左右,哈雷彗星将可能在这个地区看到,这种彗星每隔 76年才能看见一次。命令所有士兵着野战服在操场上集合,我将向他们解释这一罕见的现象。如果下雨的话,就在礼堂集合,我为他们放一部有关彗星的影片。
值班军官对连长: 根据营长的命令,明晚8点哈雷彗星将在操场上空出现。如果下雨的话,就让士兵穿着野战服列队前往礼堂,这一罕见的现象将在那里出现。
连长对排长: 根据营长的命令,明晚8点,非凡的哈雷彗星将身穿野战服在礼堂中出现。如果操场上下雨,营长将下达另一个命令,这种命令每隔76年才会出现一次。
排长对班长: 明晚8点,营长将带着哈雷彗星在礼堂中出现,这是每隔 76年才有的事。如果下雨的话,营长将命令彗星穿上野战服到操场上去。
班长对士兵: 在明晚8点下雨的时候,著名的76岁哈雷将军将在营长的陪同下身着野战服,开着他那“彗星”牌汽车,经过操场前往礼堂。;思考题:
用正确方法编程计算
原创力文档

文档评论(0)