如何计算给定数字的ln?

时间:2014-02-14 02:45:27

标签: javascript math

美好的一天。

谷歌科学计算器可让您计算给定数字的ln。

示例:

  

ln(1)= 0

     

ln(2)= 0.69314718056

我一直试图找出它用来得出答案的等式。任何线索都会受到欢迎。

你可以说,我的数学很糟糕。 :(

2 个答案:

答案 0 :(得分:4)

如果你想验证自己的价值,作为某种编程练习,natural or Neperian (Napier's) logarithm的经典公式是

ln(a)=limit(n -> inf) n*(root(n,a)-1),

开始
n=1, a=2 

和循环

n=n*2, a=sqrt(a),
output n*(a-1)

直到达到某种收敛。由于浮点数的限制,这会在某些时候发生故障,重复的平方根会向1收敛很快。


不使用指数函数的传统定义是通过积分

ln(a) = integral( 1/x, x=1..a)

您可以使用梯形或Simpson数值积分方法来获得越来越准确的结果。


从积分公式中,通过几何级数获得对数的幂级数。基于系列的公式将比直接幂级数快一点收敛,以身份

开始
ln(2)=ln(4/3)-ln(2/3)=ln(1+1/3)-ln(1-1/3)

a = (1+x)/(1-x)  <==>  x = (a-1)/(a+1).

使用

ln(1+x)=x-x^2/2+x^3/3-x^4/4+x^5/5-+...

上述差异中的偶数幂取消,

ln(1+x)-ln(1-x)=2*x*(1+x^2/3+x^4/5+...),

因此计算ln(2)初始化

x=1/3, xx=x*x, n=1, xpow=1, sum=0

和循环

sum+=xpow/n, xpow *= xx, n+=2
output 2*x*sum

再次达到某种趋同。

答案 1 :(得分:3)

ln x为您提供x的自然对数(或y的值,使等式e^y = x为真,其中e为{{3} }})

Math.log(2);

结果将是:

0.6931471805599453

log()方法返回数字的自然对数(基数E)。

注意:如果参数x为负数,则返回NaN。

注意:如果参数x为0,则返回-Infinity。