Javascript 如何计算给定数字的ln?
大家好 谷歌科学计算器可以让你计算一个给定数字的ln 示例: ln(1)=0 ln(2)=0.69314718056 我一直在试图找出它用来得出答案的方程式。欢迎任何线索Javascript 如何计算给定数字的ln?,javascript,math,Javascript,Math,大家好 谷歌科学计算器可以让你计算一个给定数字的ln 示例: ln(1)=0 ln(2)=0.69314718056 我一直在试图找出它用来得出答案的方程式。欢迎任何线索 你可以看出我数学不好(ln x给出了x的自然对数(或y的值,使方程e^y=x为真,其中e为真) 结果将是: 0.6931471805599453 log()方法返回数字的自然对数(以E为底) 注意:如果参数x为负,则返回NaN 注意:如果参数x为0,则返回无穷大。lnx给出x的自然对数(或使方程e^y=x为真的y的值,其中e
你可以看出我数学不好(
ln x
给出了x
的自然对数(或y
的值,使方程e^y=x
为真,其中e
为真)
结果将是:
0.6931471805599453
log()方法返回数字的自然对数(以E为底)
注意:如果参数x为负,则返回NaN
注意:如果参数x为0,则返回无穷大。
lnx
给出x
的自然对数(或使方程e^y=x
为真的y
的值,其中e
为真)
结果将是:
0.6931471805599453
log()方法返回数字的自然对数(以E为底)
注意:如果参数x为负,则返回NaN
注意:如果参数x为0,则返回无穷大。如果您想自己验证该值,作为某种编程练习,则 所以从
n=1, a=2
和循环
n=n*2, a=sqrt(a),
output n*(a-1)
sum+=xpow/n, xpow *= xx, n+=2
output 2*x*sum
直到达到某种收敛。由于浮点数的限制,这将在某一点上崩溃,重复的平方根非常快地收敛到1
传统的不使用指数函数的定义是通过积分
ln(a) = integral( 1/x, x=1..a)
您可以使用梯形或辛普森数值积分方法来获得越来越精确的结果
从积分公式中,我们可以通过几何级数得到对数的幂级数。基于级数的公式收敛速度比直接幂级数快一点,从恒等式开始
ln(2)=ln(4/3)-ln(2/3)=ln(1+1/3)-ln(1-1/3)
从
上述差值中的偶数次幂相消,且
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
和循环
n=n*2, a=sqrt(a),
output n*(a-1)
sum+=xpow/n, xpow *= xx, n+=2
output 2*x*sum
再次进行,直到达到某种收敛。如果您想自己验证该值,作为某种编程练习,函数的经典公式是 所以从
n=1, a=2
和循环
n=n*2, a=sqrt(a),
output n*(a-1)
sum+=xpow/n, xpow *= xx, n+=2
output 2*x*sum
直到达到某种收敛。由于浮点数的限制,这将在某一点上崩溃,重复的平方根非常快地收敛到1
传统的不使用指数函数的定义是通过积分
ln(a) = integral( 1/x, x=1..a)
您可以使用梯形或辛普森数值积分方法来获得越来越精确的结果
从积分公式中,我们可以通过几何级数得到对数的幂级数。基于级数的公式收敛速度比直接幂级数快一点,从恒等式开始
ln(2)=ln(4/3)-ln(2/3)=ln(1+1/3)-ln(1-1/3)
从
上述差值中的偶数次幂相消,且
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
和循环
n=n*2, a=sqrt(a),
output n*(a-1)
sum+=xpow/n, xpow *= xx, n+=2
output 2*x*sum
直到达到某种收敛。OP真的在问这么简单的问题,还是他在问计算自然对数的算法?我把这个问题解释为OP不知道ln代表什么,或者它的用途。根据他的javascript标记,我给出了一个javascript答案。OMG!我通过了Math.log a已经有一百万次了:(.我永远不应该相信数学方面的东西。OP真的在问这么简单的问题,还是他在问计算自然对数的算法?我把这个问题解释为OP不知道ln代表什么,或者它的用途。基于他的javascript标记,我给出了一个javascript答案。天哪!我通过了math.log一百万个times已经:(.我永远不应该相信数学的东西。那是一个“对数”,它是你必须提高一些数字(称为基数)才能得到原始数字的幂。8的以2为底的对数是3,因为2^3=8。“ln”指的是“自然数”对数,以欧拉数e为基数,这是一个无理数,在自然界中的各种指数增长中都会出现。分数对数是为不是基数的精确幂的数定义的,但没有简单的方程来计算它们;你只能通过将无穷级数中的若干项求和来近似它们@卡玛,我很困惑。你是在问“ln”代表什么,或者如何使用Math.log()函数,或者计算一个数字的自然对数的算法是什么?这是一个“对数”,即你必须提高某个数字(称为基数)才能得到原始数的幂。8的以2为底的对数是3,因为2^3=8。“ln”指的是“自然”对数,以欧拉数e为基数,这是一个无理数,在自然界中的各种指数增长中都会出现。分数对数是为不是基数的精确幂的数定义的,但没有简单的方程来计算它们;你只能通过将无穷级数中的若干项求和来近似它们@卡玛,我很困惑。你是在问“ln”代表什么,或者如何使用Math.log()函数,或者计算一个数字的自然对数的算法是什么?