【问题标题】:Calculate variable value inside integral计算积分内的变量值
【发布时间】:2021-04-14 16:59:14
【问题描述】:

我正在尝试使用普朗克函数计算黑体光谱辐射:

import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate, integrate


# Physical constants:
h = 6.6260693e-34                
c = 299792485.0                
k = 1.380658e-23               
T = 6500

wl_min = 0.1
wl_max = 8.0
wl = np.linspace(wl_min, wl_max, 1000)

f = ((((2.0*h*c**2)/(wl*1e-6)**5)*(1.0/(np.exp(((h*c)/(k*T*wl*1e-6)))-1)))*1e-6)

plt.figure()
plt.plot(wl, f)
plt.show()

plot

然后我整合了波长范围(从 0.1 到 8.0),我得到了 3.22e7 [W] 的功率

Power = integrate.trapz(f,wl)

现在,我的问题!

我想做相反的事情:知道功率值,找到温度值。 我可以在 Matlab 中完成,但我不知道如何在 python 中完成:

matlab code

你能帮帮我吗?

【问题讨论】:

    标签: python scipy integral


    【解决方案1】:

    这是一个解决方案,如果它对其他人有用:

    from scipy.optimize import newton_krylov
    
    fun = lambda T2: - Power + integrate.trapz(((((2.0*h*c**2)/(wl*1e-6)**5)*(1.0/(np.exp(((h*c)/(k*T2*wl*1e-6)))-1)))*1e-6),wl)
    
    res = scipy.optimize.newton_krylov(fun, 6000)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 2021-01-27
      相关资源
      最近更新 更多