当前位置:文档之家› 实现对数计算的简便方法

实现对数计算的简便方法


x + a,
1 4
≤x
<
5 8
;
x
+
k2x +
b,
5 8
≤x
≤1.
经过多次计算误差, 修订直线斜率, 最后确定
x+
5 16
x
,
0 ≤x
<
1 4
,
误差û$û<
0.
006 3;
log 2( 1+ x ) =
x+
5 64
,
1 4
≤x
<
5 8
,
误差û$û<
0.
006 2;
2352x +
372,
5 8
Key word ladder shapped; inclination; pure decimal; shift
( 上接第16页)
参考 文 献
1 T ikhono v A N , A rsenin V Y . Solutio ns o f ill-po sed pr oblems. 1977 2 L udwig D . T he Radon tr ansfor m on euclidean space. Co mm P ur e and A ppl M at h, 1966, ⅩⅠⅩ
Key words Radon t ransfo rm; regularizat io n met ho d; numerical inv ersion
取1/ 4, 5/ 8两点作直线的转折点, 是因为从计算机绘出的函数图象可以看出, 曲线左
半部曲率半径较小, 右半部曲率半径较大, 当 x > 2/ 3时几乎为一直线. 用 f T ( x ) 代替原来的 f ( x ) , 即可得出如下方程:
x + k1x ,
0≤x <
1 4
;
lo g2 ( 1+ x ) =
Abstract T he numerical inversion of Radon t ransfo rm f or spherical sy mmet ric funct ion has been st udied. We f irst anylysed its ill pro pert y and t han given the st able numerical inverse com put ational method by using regularizat ion met hod.
= ( 101. 00111111) 2 = ( 5. 24609) 10. 而精确到小数点后4位 log 238·5. 2479, 误差û$ û·0. 0018.
3 计算机实现
上面计算中的乘法运算都可以用移位来实现, 这样整个运算就只有移位和加法了, 用
硬件实现移位和加法又是速度最快的操作. 程序如下:
Abstract T he aut hor provide a simple m et hod quickly t o calculate log 2x . Use line replace log curv e t hen calculating by shif t and addit ion only.
放结果的小数部分.
A Simple Method of Calculating log2x
Ren Erm in Zhao Zhenhu L iu Hong x ia
( D epart ment of Comput er S cien ce, H ebei N orm al U n iversi ty, 050016, Sh ijiazhuang, PRC )
关键词 梯形; 斜率; 纯小数; 移位 分类号 T P 301. 6
1 问题的提出
信号处理中, 需要进行数学变换, 遇到求解 loy 2x 的问题, 用于杂波分析. 信号处理机 要求系统响应时间短, 本处理机用于飞行动目标监测, 速度要求是第一位的, 其次是要满 足一定精度, 本课题的杂波分析, 处理字长为8位, 二进制数, 故要求精度为8位二进制有效 数字.
实现对数计算的简便方法
任二民 赵振虎 刘虹霞
( 河北师范大学计算机系, 050016, 石家庄; 第一作者46岁, 男, 讲师)
摘 要 介绍用直线近似代 替曲线, 从 而将对数函数变成直 线函数, 只用移位 和加减运 算, 完成了对数的近似计算, 并将此对数函数计算过程 用汇编语言程序模拟实现, 在专用机上 由硬件完成计算.
mov ax , stack seg push ax
push bx
loo pl: inc dh
mov ss, ax
mov ax , datar ea
push cx
sal al, 1
push ds
mov ds, ax
push dx
jnc lo op1
sub ax , ax
push ax
这时误差不超过1/ 128, 再加上 n 的位数, 精度完全可以满足二进制8位有效数字. 例 计算 l og2 10.
( log 210) 10 = ( log 2( 1. 010×1011) ) 2= ( 11+ log1 0( 1+ 0. 010) ) 2
= ( 11+ 0. 010+ 0. 000101) 2= ( 11. 01010100) 2= ( 3. 3281) 10 .
The Numerical Inversion of Radon Transform for Spherical Symmetric Function
Jin Jinw an T ian Yi
( D epart ment of Comput er S cien ce, H ebei N orm al U n iversi ty, 050016, Sh ijiazhuang, PRC )
mov dh, o oh
mov dl, al
mo v al, 08h
mo v bl, al
a rea2: mo v al, cl
jmp dow n
sub a l, dh
shr al
add al, bh
ar ea2: add al, 14h
mo v dh, al
mo v ch, al
add al, ch
2 算法设计
先考查函数 f ( x ) = log 2( 1+ x ) - x .
该函数图象在〔0, 1〕区间刚好与 x 轴在两端点处相交, 交点分别为 A ( 0, 0) , B ( 1, 0) ,
并且凸向上, 见图1.
任一曲线函数都可用台劳级数展开, 若
取前两项, 则为一直线函数 f ( xຫໍສະໝຸດ ) = kx + b. 据
≤x
≤1,
误差û$û<
0.
006 6.
并将误差分析结果也列在公式后面.
再回到原来的问题上来, 求解 log 2x , 先将 x 变换成( 1+ 纯小数) ×2n 的形式, 这样只 要求出了 l og2( 1+ x ) 的值, 就能解出任意 x 的值, 方法如下:
log2 ( x ) = log 2( ( 1+ 纯小数) ×2n) = n+ lo g2 ( 1+ 纯小数) . 从误差分析的结果可以得出结论, 当处理的数据为8位二进制数时, 最低位为参考值,
而精确到小数点后4位 log 210= 3. 3219, 误差û$ û·0. 0062. 再如: ( lo g2 38) 10 = ( lo g10 100110) 2= ( log 10( 1. 00110×10101) ) 2
= ( 101+ log 10( 1+ 0. 00110) ) 2= ( 101+ 0. 00110+ 0. 0011×10/ 10000) 2
此, 将此特殊的对数函数分成两段, 用直线逼
近, 则为一三角形, 但误差太大, 不能满足课
题的要求. 故将曲线函数分成3段, 用梯形来
逼近.
这个梯形函数可用下面直线方程描述:
k1x ,
0≤x < 1/ 4;
图1
f S( x ) = a,
1/ 4≤x < 5/ 8;
k2x + b, 5/ 8≤x ≤1.
shr a l, 1
test al, 40h
jnz ar ea2
pop bx
mo v bh, al
jnz ar ea3
add al, bh
pop ax
shr a l, 1
test al, 20h
add al, bl
r et
shr a l, 1
jz ar ea2
程序运行结束后, ANSW ER 单元中存放结果的整数部分, ( ANSWER+ 1) 单元中存
dow n: mo v dl, al
mo v al, dl
mo v al, dl
add al, 38h
mo v answ er, dx
shr a l, 1
add al, o oh
jmp dow n
pop dx
mo v cl, al
jp ar ea1
a rea1: test al, 40h
pop cx
相关主题