- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主讲:彭叶辉 pengyehui@hnust.edu.cn 湖南科技大学数学与计算科学学院 2013年10月 超级计算使科学变得更直观 特点: 1、方法是近似的; 2、与计算机不能分离:上机实习 (掌握一门语言:C语言或Fortran语言, 会用一种数学软件:Matlab 或Mathematica ,Maple) 1.2 数值算法的基本概念 1.3.1、误差的来源 1.3.1、误差的来源 舍入误差分析 计算机数系 计算机中数的运算 首先将两个数表示为浮点数,然后对两个浮点数作加减乘除运算,按以下规则: 例1.1 设有两个实数x=1.623,y=0.189,假设机器浮点数中阶码是3位,尾数也是3位,试用机器计算z1=4/3(x+y),z2=4[(x+y)/3]. 矩阵处理软件: Matlab 相对误差和相对误差限 定义2:设x是准确值,x*是近似值,称 为近似值x*的相对误差,相应地,若正数εr ,使得 则称εr为x*的相对误差限。 由于x未知,实际使用时总是将x*的相对误差取为 例1:设x*=1.24是由精确值x经过四舍五入得到的近似值, 求x*的绝对误差限和相对误差限。 解 由已知可得: 1.235≤x1.245 所以 有,ε =0.005, εr= 0.005÷1.24≈0.4% -0.005 ≤x-x*0.005 一般地,凡是由精确值经过四舍五入得到的近似值,其绝对误差限等于该近似值末位的半个单位。为了能给一种数的表示法,使之既能表示其大小,又能表示其精确程度,于是需要引进有效数字的概念. 定义1 设数x*是数x的近似值,如果x*的绝对误差限 是它的某一数位的半个单位,且从该位直到x*的最左边的第一个非零数字共有n位,则称这n个数字为x*的有效数字,也称用x*近似x时具有n位有效数字。 例2 已知下列近似值的绝对误差限都是0.005,问它们 具有几位有效数字? a=12.175, b =-0.10,c=0.1, d=0.0032 解 由于0.005是小数点后第2数位的半个单位, 所以 a有4位有效数字1、2、1、7, b有2位有效数字1、0, c有1位有效数字1, d没有有效数字。 数x经过四舍五入后得到的近似值总可以写成如下形式 x*=±0.a1a2…ak×10m 其中m是整数,ai是0到9中的一个数字, a1≠0(规格化) x*作为x的近似值,具有n位(n≤k)有效数字当且仅当 由此可见,近似值的有效数字越多,其绝对误差越小。 为了使x= 例3 问应取几位有效数字? 解 由于 x*=±0.a1a2…ak×10 ,a1=1≠0 故取n=6,即取6位有效数字。此时x*=1.41421。 的近似值的绝对误差小于10-5, =1.4…,则近似值x*可写为 设似值x*有n位有效数字, 有效数字与相对误差的关系 ? 有效数字 ? 相对误差限 则其绝大误差限和相对误差限分别为 ? 相对误差限 ? 有效数字 已知 x* 的相对误差限满足 则 x* 至少有 n 位有效数字。 例:为使?*的相对误差小于0.001%,至少应取几位有效数字? 解:假设 ?* 取到 n 位有效数字,则其相对误差上限为 要保证其相对误差小于0.001%,只要保证其上限满足 已知 a1 = 3,则从以上不等式可解得 n 6 ? lg6,即 n ? 6,应取 ?* = 3.14159。 1.5 数值算法设计的若干原则 为了减少舍入误差的影响,设计算法时应遵循如下的一些原则。 1.避免两个相近的数相减 如果x* ,y* 分别为x,y的近似值,则z* =x* -y*是z=x-y的近似值。 此时,相对误差满足估计式 可见,当x*与y*很接近时,z的相对误差有可能很大。 在数值计算中,如果遇到两个相近的数相减运算,可 考虑改变一下算法以避免两数相减。 例如: ? 几种经验性避免方法: 当 | x | 1 时: 2. 绝对值太小的数不宜作除数 由于除数很小,将导致商很大,有可能出现“溢出”现象. 设x ,y 的近似值分别为x*,y*,则z*=x*÷y*是z=x÷y的近似值. 此时,z*的绝对误差满足估计式 例 如分母变为0.0011,也即分母只有0.0001的变化时 2.7182/0.001=2718.2 3. 避免大数吃小数 解方程 精确解为 ? 算法1:利用求根公式 在计算机内,109存为0.1?1010,1存为0.1?101。做加法时,两加数的指数先向大指数对齐,再将浮点部分相加。即1 的指数部分须变为101
文档评论(0)