Python Exponential Integration: Overflow encountered in exp(Python指数集成:在EXP中遇到溢出)
本文介绍了Python指数集成:在EXP中遇到溢出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这个问题可能已经被问了一百万次;但我想不出我的具体问题的解决方案。以下是我的代码:
import numpy as np
import matplotlib.pyplot as plt
from sympy import Symbol, integrate, exp, pprint
from scipy import integrate
我正在尝试对某个函数进行积分,该函数的上界包含某个频率范围(nu=1e2,1e3/3),因此我应该从这个积分中得到一个点列表,但我一直遇到这个溢出错误,我不确定为什么。
M = 2e42
M_dot = 4e33
d = 3.1e26
G = 6.67e-8
c = 3e10
h = 6.636e-27
k = 1.38e-16
sigma = 5.67e-5
R_S = (2*G*M/c**2)
nu = np.linspace(1e2,1e3/3)
T_star = (3*G*M*M_dot/(8*np.pi*sigma*((R_S)**3)))
T_d1 = (T_star)*((2*R_S/R_S)**(-3/4))
T_d2 = (T_star)*((1000*R_S/R_S)**(-3/4))
x_in = (h*nu/k*(T_d1))
x_out = (h*nu/k*(T_d2))
my_list = ([])
a = lambda x: (x**(5/3))*(np.exp(x)-1)**(-1)
for x1,x2 in zip(x_out,x_in):
my_list.append(integrate.quad(a,x1,x2))
这给了我:运行警告:在EXP中遇到溢出
我如何修复此问题?
推荐答案
,尽管数字非常大。回答您的问题。
您可以使用关系(exp(X)-1)-1-1=1/(exp(X)-1)=exp(-x)/(1-exp(-x))重写a = lambda x: (x**(5/3))*np.exp(-x) / (np.exp(-x)-1),这将为您提供零。
这篇关于Python指数集成:在EXP中遇到溢出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:Python指数集成:在EXP中遇到溢出
基础教程推荐
猜你喜欢
- 尝试制作WhatsApp机器人 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
