liny 发表于 2004-11-8 10:47

如何计算对数值

<P>我需要计算一个数的对数值,精确到0.001,如何计算?</P>
<P>我有一个整数,我需要计算它的对数做为其他计算的系数,开始我要求精度0.01,比较简单,我采用查表的方式,表格很小,我事先计算好,计算很快,</P>
<P>后来要求精度提高了,表格会很大,如我采用对数函数计算,精度很高,但是速度太慢,现在我想在程序中计算,不知要采用如何算法?才能达到我要求得精度,又不太慢?</P>
<P>取对数以后X 1000 ?得到一个整数即可,也就是说不用浮点计算,怎样实现?</P>

ilikenba 发表于 2004-11-8 19:23

<P>这个你就把lnX展成级数的形式,然后根据你要的精度估计出需要计算级数的多少项的和,求和编成应该不难,但是ln级数的收敛速度通常很慢,一般你如果不太追求速度的的话,可以随便找一个求就行了,如果要求速度就要筛选级数了!</P>

liny 发表于 2004-11-30 11:49

<P>谢谢!</P><P>我用了ln(1-x)展开,x要求-1~1,我把整数转换成小数,计算,速度比查表慢,但精度高,采用5级就能达到精度,比对数函数快5~10倍。</P>
页: [1]
查看完整版本: 如何计算对数值