gpt4 book ai didi

javascript - 如何计算给定数字的ln?

转载 作者:行者123 更新时间:2023-11-30 07:39:10 24 4
gpt4 key购买 nike

大家好。

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

例子:

ln(1) = 0

ln(2) = 0.69314718056

我一直在试图找出它用来得出答案的方程式。欢迎任何线索。

如您所知,我的数学很差。 :(

最佳答案

如果您想自己验证值,作为某种编程练习,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)

直到达到某种收敛。由于 float 的限制,这在某些时候会崩溃,重复的平方根非常快地收敛到 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

再次直到达到某种收敛。

关于javascript - 如何计算给定数字的ln?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21769888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com