编辑第一篇

编辑第一篇

我正在用 LaTeX 记下光子学讲座的笔记。这样我既能理解笔记,又能学习一些 LaTeX。坦率地说,用 LaTeX 记笔记是完成这些笔记的一大动力!

问题是,我需要绘制一个如下所示的量子谐波振荡器:

在此处输入图片描述

这是我目前所拥有的:

在此处输入图片描述

我希望更好地控制抛物线所以我最终可以把它放大,并改变我通过猜测得到的纵横比。还有我想绘制波函数并把它们放在带有箭头的抛物线外面(即大头针)但我不确定绘制波函数的最佳方法是什么。我该如何绘制它们?它们只需要是正弦/余弦函数。

以下是我目前所掌握的信息:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \draw[->] (-0.5,-2) -- (-0.5,0.5);
    \draw (-2.69,-0.5) -- (2.5,-0.5) node[right] {E2};
    \draw (-2.25,-1) -- (2.5,-1) node[right] {E1};
        \draw (-1.75,-1.5) -- (2.5,-1.5) node[right] {E0};
    \draw (-3,0) parabola[parabola height=-2cm] (2,0);
\end{tikzpicture}
\end{document}

我要警告你,我曾尝试过从函数中绘图(通过 gnuplot 引入),但它似乎从来没有起作用,所以如果这是你的答案,请准备好接受彻底的解释!


编辑第一篇

我现在有这个代码

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[->] (0,0) -- (0,4.5);

\def\lzero{(3,0.4) cos (4,0.6) sin (5,0.8) cos (6,0.6) sin (7,0.4)};
\fill[blue,opacity=0.2] \lzero;
\draw[blue!75!black] \lzero node[right,black] {$\Psi_0(x)$ \textendash ~Even};
\draw (-0.632,0.4) -- (2,0.4) node[right] {$E_0$};

\def\lone{(3,1.5) cos (3.66,1.4) sin (4.33,1.3) cos (5,1.5) sin (5.66,1.7) cos (6.33,1.6) sin (7,1.5)};
\fill[red,opacity=0.2] \lone;
\draw[red!75!black] \lone node[right,black] {$\Psi_1(x)$ \textendash ~Odd};
\draw (-1.224,1.5) -- (2,1.5) node[right] {$E_1$};

\def\ltwo{(3,2.6) cos (3.5,2.7) sin (4,2.8) cos (4.5,2.6) sin (5,2.4) cos (5.5,2.6) sin (6,2.8) cos (6.5,2.7) sin (7,2.6)};
\fill[green,opacity=0.2] \ltwo;
\draw[green!75!black] \ltwo node[right,black] {$\Psi_2(x)$ \textendash ~Even};
\draw (-1.61,2.6) -- (2,2.6) node[right] {$E_2$};


\draw (0,0) parabola (2,4);
\draw (0,0) parabola (-2,4);
\end{tikzpicture}
\end{document}

由此产生了如下结果:

在此处输入图片描述

现在我了解了如何更好地绘制抛物线,以及如何制作波函数,我高兴多了。

答案1

您可以将波函数近似为sincos部分:

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.pathreplacing}

\begin{document}

\begin{tikzpicture}
    \def\lzero{(-5,1) cos (-2.5,1.5) sin (0,2) cos (2.5,1.5) sin (5,1)};
  \fill[blue,opacity=0.2] \lzero;
  \draw[blue!75!black] \lzero node[right,black] {$\Psi_0(x)$};

  \def\lone{(-5,2.5) cos (-3.33,2.25) sin (-1.66,2) cos (0,2.5) sin (1.66,3) cos (3.33,2.75) sin (5,2.5)}
  \fill[red,opacity=0.2] \lone;
  \draw[red!75!black] \lone node[right,black] {$\Psi_1(x)$};

  \def\ltwo{(-5,4) cos (-3.75,4.25) sin (-2.5,4.5) cos (-1.25,4) sin (0,3.5) cos (1.25,4) sin (2.5,4.5) cos (3.75,4.25) sin (5,4)}
  \fill[green,opacity=0.2] \ltwo;
  \draw[green!75!black] \ltwo node[right,black] {$\Psi_2(x)$};

  \draw (0,0) parabola (5,10);
  \draw (0,0) parabola (-5,10);

  \begin{scope}[decoration={border, segment length=1cm, amplitude=1mm, angle=90}]
    \draw[postaction={decorate,draw}] (-5,0) -- (5.1,0);
    \draw[postaction={decorate,draw}] (0,0) -- (0,10.1); 
  \end{scope}

\end{tikzpicture}

\end{document}

问题在于左侧和右侧的“淡入”和“淡出”部分。我尝试通过将宽度分成相等的部分来模仿这一点,但让振幅在边缘上升得更慢。如果您可以提供一个计算波函数值的公式,那么可能会更好,然后可以使用更多点来使其看起来更好。此外,cossin部分的数量随着每个级别而增加,因此给出一个计算公式将大大增强将其扩展到更高级别的能力。

在此处输入图片描述

答案2

对于绘制函数,我发现 pgfplots 比使用“原始”TikZ 绘图功能更舒服。这是前四个波函数的图,如中所述http://galileo.phys.virginia.edu/classes/751.mf1i.fall02/SimpleHarmonicOscillator.htm

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
\begin{axis}[domain=-3.5:3.5, samples=50,no markers, hide axis,y=1cm,thick]
\addplot [gray] {1/2*x^2};
\addplot {1/(2*sqrt(1*1!))*exp(-x^2/2)+1};
\addplot {1/(2*sqrt(2*1!))*2*x*exp(-x^2/2)+2};
\addplot {1/(2*sqrt(4*2!))*(4*x^2-2)*exp(-x^2/2)+3};
\addplot {1/(2*sqrt(8*3!))*(8*x^3-12*x)*exp(-x^2/2)+4};
\end{axis}
\end{tikzpicture}

\end{document}

答案3

我不知道你为 Alpha 使用了什么值,这就是我将其设置为 0.5 的原因。你可以修改它。波函数应该是不言自明的。

xelatex使用或序列运行示例latex->dvips->psp2df

\documentclass{article}
\parindent=0pt
\usepackage{pst-plot}
\begin{document}

\begin{pspicture}(-6,-1)(6,7)\psset{plotpoints=200}
\pstVerb{/Alpha 0.5 def } %the value for Alpha 
\psplot[algebraic,fillstyle=solid,fillcolor=blue!15,linecolor=blue]{-6}{6}%
  {(Alpha/Pi)^0.25*2.728^(-(Alpha*x^2)/2)}
\rput(0,1.5){%
  \psplot[algebraic,fillstyle=solid,fillcolor=red!15,linecolor=red]{-6}{6}%
    {(Alpha/Pi)^0.25*sqrt(2*Alpha)*x*2.728^(-(Alpha*x^2)/2)}}
\rput(0,3){%
  \psplot[algebraic,fillstyle=solid,fillcolor=green!15,linecolor=green]{-6}{6}%
    {(Alpha/Pi)^0.25*(2*Alpha*x^2-1)/sqrt(2)*2.728^(-(Alpha*x^2)/2)}}
\rput(0,4.5){%
  \psplot[algebraic,fillstyle=solid,fillcolor=cyan!15,linecolor=cyan]{-6}{6}%
    {(Alpha/Pi)^0.25*(2*(sqrt(Alpha)*x)^3-3*sqrt(Alpha)*x)/sqrt(3)*2.728^(-(Alpha*x^2)/2)}}
\psaxes[labels=none,ticksize=-4pt 0,
  linecolor=black!40]{->}(0,0)(-5,-1)(5,7)[$x$,0][$\Psi$,0]
\end{pspicture}

\end{document}

在此处输入图片描述

答案4

使用 tkz-fct 和 gnuplot。一些备注:我需要添加一些内容以避免重复域,然后当使用多个函数时,您可以通过字母 a、b、c 等引用它们。但这是主要的。也许我需要创建类似的东西\tkzDrawAreagf

\documentclass{article}
\usepackage{tkz-fct}
\begin{document}
\begin{tikzpicture}[xscale=.75,yscale=1.25]
\tkzInit[xmin=-8,xmax=8,ymin=0,ymax=70,ystep=10] 
\tkzDrawXY

  \tkzFct[domain = -8:8]{10}      
  \tkzFct[domain = -8:8]{10+5*sin(x)}
  \tkzDrawAreafg[between=a and b,color  = purple!20,domain = -8:8]
  \tkzDrawAreafg[between=b and a,color  = purple!20,domain = -8:8]

  \tkzFct[domain = -8:8]{30}
  \tkzFct[domain = -8:8]{30+5*sin(1.5*x)}
  \tkzDrawAreafg[between=c and d,color  = orange!20,domain = -8:8]
  \tkzDrawAreafg[between=d and c,color  = orange!20,domain = -8:8]

  \tkzFct[domain = -8:8]{50}
  \tkzFct[domain = -8:8]{50+5*sin(2*x)}
  \tkzDrawAreafg[between=e and f,color  = blue!20,domain = -8:8]
  \tkzDrawAreafg[between=f and e,color  = blue!20,domain = -8:8]

  \tkzFct[domain = -8:8]{x*x} 
\end{tikzpicture}
\end{document} 

在此处输入图片描述

相关内容