电源中遇到无效值

2024-06-26 14:57:04 发布

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

Python 3。以下代码表示:

25: RuntimeWarning: invalid value encountered in power
  L[i] = (((volume*(10**6))*4*(F**2))/(C*pi))**(1/3)         #ft

在L[1,22]到L[1,30]和L[2,15]到L[2,30]时遇到错误

这是循环的一部分吗?我可以复制并粘贴volume=22和F=5,它得出的数字很好

lo     = 0.06521                                              # lbm/ft^3
volume = np.arange(0,31)                                      # M ft^3
lift   = volume*10**6*lo                                      # lbm
lift   = lift/2000                                            # ton


C = 0.6                                                       # Cylindrical Coefficient
pi = np.pi

L  = np.zeros((3,len(volume)))                         
for F in range(4,7):
   i   = F - 4
   L[i] = (((volume*(10**6))*4*(F**2))/(C*pi))**(1/3)         #ft

Tags: 代码inlovalue错误nppipower
2条回答

您有一个标量溢出问题。将卷指定为int64可以解决此问题

volume=np.arange(31,dtype=np.int64)

如果我这样重写问题:

L  = np.zeros((3,len(volume)))                         
for F in range(4,7):
    i   = F - 4
    D = (((volume*(10**6))*4*(F**2))/(C*pi))
    L[i] =  D ** (1 / 3)

我可以看到,在F=5时,D的某些部分得到负值

这些数字变得复杂,增加了误差

相关问题 更多 >