私はプランク法を統合してステファンボルツマン法をプロットしようとしています。 1つの温度、例えばT = 3000を設定すると、コードはその統合をうまく作ります。しかし、Tをnp.array([310,3000,5800,15000])のような配列にすると、コードがエラーになります。添付されたイメージは私が再現しようとしているプロットです。この問題を解決するための洞察力を持っている人なら誰でも、それは非常に認められるでしょう。前もって感謝します。あなたが個別に各温度のための統合を行う必要があるだろうアレイとの再帰的統合 - Stefan Boltzmann法
import matplotlib.pyplot as plt
import numpy as np
h = 6.626e-34
c = 2.9979e+8
k = 1.38e-23
T=np.array([310,3000,5800,15000])
from scipy.integrate import quad
def integrand(wav):
return (2.0*3.14*h*c**2)/ (((wav*1e3*1e-9)**5) * (np.exp(h*c/(wav*1e3*1e-9*k*T)) - 1.0))*1e-6
power, err = quad(integrand, 0.01, 100)
print(power)
あなたは、一度に複数の温度のための方程式を統合しようとしていますか?これが意味をなさないかどうかわかりませんが、むしろ各温度ごとに別々に行ってください。 – ImportanceOfBeingErnest
はい、私はすぐに計算をしようとしています。長いコードを避けようとしています。すなわち、繰り返す...私はPythonの新しい学習者です。より洗練された方法でコードを書くことができれば、教えてください。あなたのコメントをありがとうございました。 – mocs
私の初期の計画は、いったん統合の数を得た後、補間してSB法プロットを作成することでした。 – mocs