指数函数e^x的快速计算方法.pdf
文本预览下载声明
维普资讯
第 17卷 第2期 长 春 大 学 学 报 V01.17 No.2
2007年4月 J0URNALOF CHANGCHUN UNⅣERSrIY Apr.2007
文章编号:1009—3907(2007)02-0038一o4
指数函数 ex的快速计算方法
张莹雪 ,王华军 ·
(1.福建泉州华侨大学 信息学院,福建 泉州 362021;2.浙江大学 理学院地理科学系,浙江 杭州 310000)
摘 要:基于双精度数在计算机中是按阶码和尾码分别存储的原理,提出了一种新的计算指数函数
Y=e的方法,它能直接计算出Y的指数部分 (阶码)和有效数位 (尾码),并直接存储到变量Y中。
通过与MatT,ah中的库函数exp相比较,表明这种新算法计算精度更可靠,速度更快。
关键词:指数函数;数值计算;双精度;Matlab
中图分类号:0213.2 文献标识码:A
0 引 言
指数函数作为工程计算中的一个常用函数,广泛使用于科学研究、工程设计等许多领域。传统的计算方
法是利用指数函数的幂级数展开
2 3 4
e=1+青++++L+,
取其前 7/,项进行近似计算 1【],其优点是当 较小时( 1)计算速度快,但当 比较大时,展开项较多,
运算量较大,计算速度变慢,特别是当遇到海量的指数运算时,需要较长的时间…。因此非常有必要发展一
种快速、简洁的算法,提高指数函数的计算精度和效率。本文利用双精度浮点数在计算机中的存储形式与泰
勒级数展开相结合对算法进行改进,达到节省运算时间,提高运算速度的目的。
1 算法原理
指数函数运算可表示为
Y=e, (1)
已知 ,求Y的问题。
1.1 双精度浮点数在计算机中的存储方式[2—
双精度浮点数在计算机中占8个字节,64位,其中最高位(63)为符号位,见图1,1代表负,0代表正。相邻
l1位(62~52)表示指数部分(阶码),利用指数部分可快速地反映出双精度数的大小。在比较两个双精度数的
大小时,要在指数部分加移码,双精度数的 “移码”为 1023。剩余52位(51—0)用来表示有效数位(尾码),有效
数位反映出双精度数的精度,存储的有效数位为实际有效数位的小数部分,实际有效数位默认整数部分为 1。
符号位 指数部分 有效数位
图1 浮点数在计算机中的存储方式
例如将一0.625转化为计算机中的二进制数双精度浮点数时:一0.625=一5/8=一5/2’=一(101) ×
收稿 日期:2007-03-20
基金项目:国家自然科学基金资助项 目
作者简介:张莹雪(1978.),女,吉林省长春市人,福建泉州华侨大学信息学院助教,主要从事计算机仿真及计算科学方面研究。
维普资讯
第2期 张莹雪,等 :指数函数e‘的快速计算方法 39
2一:一1.O1×2~,符号位为 1,指数位为一1+1023=1022(1023为 “移码”),有效数位为 1.O1(在机器
中省略默认位)。这样 -0.625就可以如下形式存储成二进制序列,如图2所示。
j, 有效数位
符号位
图2 以一o.625为例存储二进制序列
同样,对 (1)式中的),,也只需分别计算其指数部分和有效数位并直接存放到相应的存储位置
显示全部