python3.5中的LambertW函数为arg<1E162的分支1提供NAN

2024-09-28 05:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在处理一个关于分支-1的LambertW函数的问题,它的有效范围是从LambertW(-1/e,-1)=-1到LambertW(-0,-1)=-inf。参数太小了:我想要LambertW(-1,-2E-278)的答案。使用Mathematica或WolframAlpha可以给出一个合理的答案。但是,在Python(conda.0)中尝试使用Python(Spyder)3.0时,它给出了NAN。我试着用不同的参数来解释lambertw(x,-1)和答案的极限!=NAN似乎是-1E-162。我猜使用的数字库在这里有局限性。有人能证实吗?在

关于“荒谬”论点背后的背景:我试图计算大气冯卡曼极限,这涉及到求解以下方程:

(R+x)*exp(-x/H)=y代表x,其中y~3000-7000和H~11000,R=6371000,答案是

h=-h*兰伯特W(-exp(R/h)*y/h,-1)-R

谢谢你

舍伦


Tags: 函数答案参数分支数字naninfspyder
1条回答
网友
1楼 · 发布于 2024-09-28 05:29:00

mpmath库很容易处理LambertW的参数。在

from mpmath import mp

x = mp.mpf('-2E-278')
y = mp.lambertw(x, k=-1)
print(x, y, y * mp.exp(y))

输出

^{pr2}$

如果您想要更高的精度,只需设置mp.dps。例如,对于mp.dps = 50,我们得到

-2.0e-278 -645.89614740010513774585665162486252955835623920946 -1.9999999999999999999999999999999999999999999999998e-278

mpmath可用于python3和python2,并且可以使用pip轻松地安装在Linux系统上。但请参阅上面的mpmath链接,以获取更详细的安装信息。在

相关问题 更多 >

    热门问题