ValueError:超出了允许的最大大小,变量的范围为0到3e33

2024-04-25 07:08:17 发布

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

我有个奇怪的问题np.arange公司. 我想画一个简单的方程,它基本上看起来像y=Ax^{-1/3}(1-Bx^{4/3})^{1/2}

然而,我可以从WolframMathematica获得一个几乎可以工作的质量图,但是我正在努力在python中生成相同的绘图!在

import numpy as np
import matplotlib.pyplot as plt
import math

# evenly sampled time at 200ms intervals
x = np.arange(0., 10**33, 10**8.)

plt.plot(x**(-1/3)*(1.102*10**20)*(1-(x**(4/3)*2.424*10**(-45)))**(1/2))

plt.xlim(math.pow(10,31), 3*math.pow(10,33))
plt.ylim(5*math.pow(10,8), 2.5*math.pow(10,9))

plt.xlabel("M(g)", fontsize =13)
plt.ylabel("R(cm)", fontsize=13)
plt.show()

我的变量x应该从0到3e33,我想在线性图和loglog图中都看到曲线图,但是我的x范围内存有问题,如果我设置一个较小的范围,基本上就没有绘图了。我肯定我做错了什么,我只是没看到。感谢你的帮助。在


Tags: import绘图asnp质量公司pltmath
1条回答
网友
1楼 · 发布于 2024-04-25 07:08:17

代码中有几个问题:

  1. x的点数太多。减少点数,例如1000分。在
  2. x不应该从0开始,因为0**(-1/3)是未定义的(不能除以0)。因此x的合理定义可以是

    x = np.linspace(1e30, 1e33, 1001)
    
  3. x值实际上并不出现在绘图中,因为您只绘制yplt.plot(y)而不是{}与x:plt.plot(x,y)

总共

^{pr2}$

将提供

enter image description here

相关问题 更多 >