gpt4 book ai didi

python - Python 中的数值结果超出范围

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:30 31 4
gpt4 key购买 nike

我是Python初学者。我编写了一个函数来计算 10^-15 量级的数字。

生成代码输出时,出现错误“数值结果超出范围”。出现此错误的可能原因有哪些?

这是我的代码。

import numpy as np
import matplotlib.pyplot as plt
T=4.32*10**19
i=input("Number of iterations ")
h=T/i
a=[0.01]*6000
t=[0.0]*6000
data = np.loadtxt('/home/user/t.txt')
t=data[:]
def f (a):
if a!=0:
c=((0.75/a + 0.044/(a**2) + 0.74*(a**2))**0.5)
return c
else :
return 0

for n in range(0,5998):
k1=f ( a[n] );
k2=f ( a[n]+(h/2)*k1 );
k3=f ( a[n]+(h/2)*k2 );
k4=f ( a[n]+h*k3 );
a[n+1]=(a[n]+(h/6)*(k1 + 2*k2 + 2*k3 + k4))

fo=open("a_of_t.txt", "w")
for item in a:
fo.write("%e\n" % item)
fo.close()

plt.plot(t,a, 'k')
plt.show()

错误内容为

line 23, in <module>
k3=f ( a[n]+(h/2)*k2 );
line 15, in f
c=((0.75/a + 0.044/(a**2) + 0.74*(a**2))**0.5)
OverflowError: (34, 'Numerical result out of range')

最佳答案

Python 小数存储为 64 位 float ,因此具有有限精度。 10^-15 不能用 float 表示。考虑使用decimal模块。

关于python - Python 中的数值结果超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149352/

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