Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何计算给定数字的ln?_Javascript_Math - Fatal编程技术网

Javascript 如何计算给定数字的ln?

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

示例:

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
为真)

结果将是:

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()函数,或者计算一个数字的自然对数的算法是什么?