TikZ中的伪周期函数

TikZ中的伪周期函数

我目前不知道如何绘制以下表达式 f(x) = cos(11x) - cos(12x)

该图应如下所示:

在此处输入图片描述

但是当我添加以下代码时:

\begin{tikzpicture}
    \begin{axis}[
        clip=false,
        xmin=0,xmax=6.5*pi,
        xlabel= $t$,
        ylabel=$f(t)$,
        ymin=-2.5,ymax=2.5,
        axis lines=middle,
        %axis x line=middle,
        %axis y line=left,
        %     axis x line=middle,
        xtick={},
        %
        xticklabels={,,},
        xtick style={draw=none}
        ]
        %\addplot[domain=0:2*pi,samples=200,red]{sin(deg(x))}
        %node[right,pos=0.9,font=\footnotesize]{$f(x)=\sin x$};
        \addplot[domain=0:6*pi,samples=200,LightSeaGreen]{cos(deg(11*x)) - cos(deg(12*x))}
        node[below right,pos=1,font=\footnotesize]{$f(t)=\cos(11t) - \cos(12t)$};
    \end{axis}
\end{tikzpicture}

这就是我得到的结果(带有锯齿状边缘),看起来不太好。

在此处输入图片描述

有没有什么好办法可以解决这个问题?如果 TikZ 看起来更好,我也很愿意接受其他建议,比如用 Asymptote 之类的软件来代替它(我试过但看起来更糟,我不得不承认我只是从 Asymptote 开始,我通常会得到不错的结果,但像这样更复杂的东西目前超出了我的有限知识范围)。

在此先感谢您提供的任何帮助。

答案1

这是该图的渐近线版本。

在此处输入图片描述

import graph;
unitsize(6mm,1.5cm);
real f(real t){return cos(11*t)-cos(12*t);}
real h(real t){return -2*sin(.5*t);}
int smooth=500;
real a=0, b=19;
path grf=graph(f,a,b, smooth);
path grh=graph(h,a,b, smooth);

draw(grh,lightblue);
draw(yscale(-1)*grh,lightblue);
draw(grf,magenta);

label("$f(t)=\cos(11t) - \cos(12t)$",(10,2.5),magenta);
label("$h(t)=\pm 2\sin(t/2)$",(6,-2.5),lightblue);
real[] y={-2,-1,1,2};
xaxis("$t$",0,20,Arrow(TeXHead));
yaxis(Label("$y$",align=E),-2.4,2.4,LeftTicks(y),Arrow(TeXHead));

add(bbox(5mm,invisible));

更新:由于 h(t) 是周期性的,而 f(t) 不是周期性的,我们可以使用Hermite(标准三次样条插值),如渐近线手册。范围应该是06*pi。说实话,我看不出有什么区别^^

int smooth=500;
path grf=graph(f,0,6*pi, smooth,Hermite);
path grh=graph(h,0,6*pi, Hermite(periodic));

补充说明:该图显示节拍现象在音乐中,当混合(叠加、添加)两个频率不同但接近的声音时,请参见例如

在此处输入图片描述

相关内容