PGFPlots:如何绘制波包?

PGFPlots:如何绘制波包?

给定方程2\cos(kx - wt)\cos(.5\Delta k(x - \frac{\Delta w}{\Delta k}t))。我该如何绘制它pgfplots

  • k是波数
  • w是频率
  • \Delta k并且\Delta w\ll 1
  • 我们也有这种关系w = -k^3

如果我在 Python 中绘制这个图表,我会定义我需要t = linspace(-10, 10, 500000)的任何范围t,但我不知道如何处理t中的参数pgfplots

    \documentclass[tikz]{standalone}
    \usepackage{pgfplots}
    \pgfplotsset{compat = 1.8}
    \begin{document}
    \begin{tikzpicture}
    \begin{axis}[
      x min = -10,
      x max = 10,
      y min = -2,
      y max = 2,
      axis x line = middle,
      axis y line = middle, 
      samples = 1000
      ]
     \addplot[red] {2 * cos(deg()) * cos(deg())};
    \end{axis}
    \end{tikzpicture}
    \end{document}

它看上去会像这样:

在此处输入图片描述

答案1

你只需要某种调制函数,例如像这样的基本高斯曲线exp(-0.25*x^2)。看看这个基本方法。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
      xmin=-5,
      xmax=5,
      ymin=-2,
      ymax=2,
      axis x line=middle,
      axis y line=middle, 
      samples = 1000
    ]
      \addplot[red] {2*exp(-0.25*x^2)*cos(deg(10*x))};
    \end{axis}
  \end{tikzpicture}
\end{document}

在此处输入图片描述


更新

与所展示图片更相似的图可能看起来像这样。请注意,它用于sin(deg(0.5*x))^2调制。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\usetikzlibrary{plotmarks}
%\usepackage{textcomp}

\pgfplotsset{compat=newest}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
      xmin=-10,
      xmax=10,
      ymin=-2,
      ymax=2,
      axis x line=middle,
      axis y line=middle,
      samples = 1000
    ]
%       \addplot[red] {2*exp(-0.25*x^2)*cos(deg(10*x))*cos(deg(x))};
       \addplot[blue,domain=-10:10] {2*sin(deg(0.5*x))^2*cos(deg(10*x))*cos(deg(x))};
    \end{axis}
  \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容