问题1:你看。。。因为我的函数是一个ν的函数,所以我必须计算域中每个ν的积分。我的问题是:最好的方法是什么
我曾考虑过使用scipy进行积分,并使用for循环对每个ν进行多次计算,但这似乎是解决我的问题的一种非常不雅观的方法。有人知道更好的选择吗?有人有不同的想法吗
问题2:当我编写代码时,会出现一些错误,主要是因为我认为指数的指数非常小。你有没有什么想法,我应该如何改变它,这样我就可以用Python绘制这个图了
哦,如果你尝试另一种方法,它应该看起来like this
这是我正在编写的代码。我现在回到Python,所以可能有一些错误。我现在看到的情节和我们想象的很不一样
from scipy.integrate import quad
from scipy.constants import c, Planck, k, pi
import numpy as np
import matplotlib.pyplot as plt
def luminosity_integral(r, x):
T_est = 4000
R_est = 2.5 * (696.34*1e6)
Temp = ((2/(3*pi))**(1/4)) * T_est * ((R_est/r)**(3/4))
termo1 = ((4 * (pi**2) * Planck * (x**4) ) / (c**2))
termo2 = ((Planck * x) / (k*Temp))
return ((termo1 * r ) / (np.exp(termo2) - 1))
freqs = np.linspace(1e10, 1e16)
y = np.array([])
for i in freqs:
I = quad(luminosity_integral, (6 * 2.5 * (696.34*1e6)), (7e4 * 2.5 * (696.34*1e6)), args = (i))
temp = np.array([I[0]])
y = np.concatenate((y, temp))
plt.loglog(freqs, y)
plt.show()
pi**2
乘以整数(不影响形状)T
的值作为T_*
,您确定吗李>请尝试此版本的代码
相关问题 更多 >
编程相关推荐