RuntimeWarning:双_标量中遇到溢出

2024-09-28 03:14:01 发布

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

我得到了错误RuntimeWarning:在双_标量中遇到溢出,我不确定这意味着什么(互联网研究没有帮助)以及什么是双_标量

我没有被零除,所以可能是因为我有太多的小数点或者因为数字太大而出现警告/错误? 我确实得到了很多信息

有没有办法避免这个错误

这部分只是导入和定义变量:


## IMPORT PACKAGES
import numpy as np
import math
import matplotlib.pyplot as plt


## DEFINITION AND VALUE OF PARAMETERS
A = 10**-16       
rho = 910                              
g = 9.81                                           
a = 1                               
n = 3
fact = A * ((rho * g)**n) 
t_end = 10 
dt = 1 
dx = 100 
L = 300000
b = 0
H_0 = 1000 

这部分应该可以


## Solve equation numerically

# initialization
xint = np.arange(-L, L+dx, dx) 
H_old = []

for xind in range(len(xint)):
    x = xint[xind]
    H_old.append(H_0 * (1 - abs(x)/L))
H_new = H_old   
result = [H_old]
print(len(xint),len(H_old))

我认为这部分会引起麻烦

# Loops through the time-span
for t in range(0, t_end+dt, dt):
    print(t,min(H_old),max(H_old)) 

    # Loops through the x-range
    for xind in range(1,len(xint)):
        x = xint[xind]
        if x < L and x > -L:
            dH1 = (H_old[xind]-H_old[xind-1])/dx
            H1 = H_old[xind]
            dH2 = (H_old[xind+1]-H_old[xind])/dx
            H2 = H_old[xind+1]

            v1 = - (2/4)/(n+1) * fact * ((abs(dH1))**(n-1)) * dH1 * H1**4 
            v2 = - (2/4)/(n+1) * fact * ((abs(dH2))**(n-1)) * dH2 * H2**4
            dH_dt = - (H2*v2-H1*v1)/dx + a 
            H_new[xind] = H_old[xind] + dt * dH_dt 

        else:                           
            H_new[xind] = 0.0

    H_old = H_new   
    result.append(H_old)




Thanks

Tags: inimportnewforlen错误dtrange

热门问题