普朗克黑体定律

普朗克黑体定律

我正在尝试绘制黑体辐射的普朗克定律,其中温度值不同。该定律如下

    \begin{equation*}
    \rho(\omega, T)
    =
    \cfrac{\hbar \omega^3}{\pi^2 c^3}
    \frac{1}{\exp\bigBracket{\frac{\hbar \omega}{k_BT}} - 1},
    \end{equation*}

其中 $\rho(\omega, T)$ 是脉动位于区间 [$\omega$, $\omega+d\omega$ 内的波的单位体积密度能量。

下面,您将找到绘制所需图形的代码:

    \def\hPLANCK{6.62e-34}
    \def\PI{3.14}
    \def\hPLANCKbar{\hPLANCK/(2*\PI)}
    \def\kb{1.38e-23}
    \def\c{3e8}
    \begin{tikzpicture}[samples=100, scale=1.15]
    \begin{axis}[
        xmin=0,
        xmax=8e15,
        xlabel={$\omega$ [\si{\hertz}]},
        ymin=0,
        ymax=10,
        ylabel={$\rho (\omega; T)$ [\si{\joule\per\cubic\meter}]},
        no markers,
        grid=both,
        style={ultra thick}]
    \foreach \T in {3000, 4000, 5000}
    {
        \addplot+ {(\hPLANCKbar*x^3)/(\PI^2*\c^3)*(exp(\hPLANCKbar*x/(\kb*\T))-1)};
        \addlegendentryexpanded{T = \T [\si{\kelvin}]}
    }
    \end{axis}
    \end{tikzpicture}

感谢您的时间和帮助,祝您有愉快的一天

答案1

欢迎来到 TeX.SE!您可能想要使用\pgfplotsinvokeforeachfor 循环以避免使用扩展技巧。也许更重要的是,什么决定了常数的数值选择?单位!而您的选择使这些数字变得非常大。因此我建议使用自然单位,其中\hbar=c=k_\mathrm{B}=1。那么剧情就好办了。

\documentclass[border=3.14mm,tikz]{standalone}
\usepackage{siunitx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
    \begin{tikzpicture}[samples=100, scale=1.15]
    \begin{axis}[
        xmin=0,
        xlabel={$\omega$ [\si{\hertz}]},
        ymin=0,
        ymax=pi,
        ylabel={$\rho (\omega; T)$ [\si{\joule\per\cubic\meter}]},
        ytick=\empty,
        no markers,
        grid=both,domain=0.1:40,
        style={ultra thick}]
    \pgfplotsinvokeforeach{3000, 4000, 5000}
    {
        \addplot+
        {(x^3)/((pi^2)*(exp(2000*x/(#1))-1))};
        \addlegendentryexpanded{$T = #1 [\si{\kelvin}]$}
    }
    \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容