![PGFPlots:如何绘制波包?](https://linux22.com/image/274360/PGFPlots%EF%BC%9A%E5%A6%82%E4%BD%95%E7%BB%98%E5%88%B6%E6%B3%A2%E5%8C%85%EF%BC%9F.png)
给定方程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}