플롯에 기능점을 추가할 수 없음(gif)

플롯에 기능점을 추가할 수 없음(gif)

나는 오른쪽으로 슬라이드하고 항상 검은 점으로 지정된 플롯의 두 지점을 갖는 함수를 만들기 위해 이 스크립트를 작성했습니다.

\documentclass[tikz]{standalone}
 \usepackage{tikz,pgfplots}
 \pgfplotsset{compat=1.16}
 \pgfplotsset{ticks=none}
 \begin{document}
 \tikzset{declare function={bellshape(\x,\mu,\sigma)=exp(-(\x-\mu)^2/(2*\sigma^2));}}
 \usetikzlibrary{intersections}
 \foreach \center in {-5,-4.9,...,5}
 {
   \begin{tikzpicture}
       \begin{axis}[scale=3,
                   width=4cm,
                   xmin=-3, xmax=3, 
                   ymin=-.05, ymax=1.4,
                   axis line style={draw=none},
                   ]
           \addplot [only marks, samples at={-3,3}]
             {bellshape(x,\center,.5)};
           \addplot [domain=-5:5, samples=300,color=blue, name path=A]
             {bellshape(x,\center,.5)};
       \end{axis}
   \end{tikzpicture}
 }
 \end{document}

정확히 내가 의도한 것은 다음과 같습니다.

여기에 이미지 설명을 입력하세요 하지만 아래 웨이브 패킷에 대해서도 하나 만들려고 노력 중입니다.

\documentclass[tikz]{standalone}
  \usepackage{tikz,pgfplots}
  \pgfplotsset{compat=1.16}
  \pgfplotsset{ticks=none}
  \begin{document}
  \tikzset{declare function={bellshape(\x,\mu,\sigma)=exp(-(\x-\mu)^2/(2*\sigma^2));}}
  \usetikzlibrary{intersections}
  \foreach \center in {-350,-320,...,350}
  {
    \begin{tikzpicture}
        \begin{axis}[scale=3,
                    width=4cm,
                    xmin=-250, xmax=250, 
                    ymin=-1, ymax=1,
                    axis line style={draw=none},
                    ]
            \addplot [only marks, samples at={-250,250}]
            {.1*(bellshape(x,\center-100,25)+bellshape(x,\center-50,25)+bellshape(x,\     center,25)+bellshape(x,\center+50,25)+bellshape(x,\center+100,25))*sin(     deg(20*pi*x))};
            \addplot [domain=-600:600,samples=400,color=blue]
            {.1*(bellshape(x,\center-100,25)+bellshape(x,\center-50,25)+bellshape(x,\     center,25)+bellshape(x,\center+50,25)+bellshape(x,\center+100,25))*sin(     deg(20*pi*x))};
        \end{axis}
    \end{tikzpicture}
  }
  \end{document}

나는 같은 아이디어를 따랐지만(파란색 선의 동일한 기능을 두 개의 검은 점에 대한 함수에 넣음) 두 개의 검은 점에서 움직임이 없습니다. "sin" 함수를 제거하려고 했을 때 검은 점이 "bellshape" 함수로 이동했는데, 오류가 sin 함수에 있는 것이 틀림없다고 생각합니까? 누구든지 이 문제를 해결할 수 있는 아이디어가 있습니까?

여기에 이미지 설명을 입력하세요

답변1

귀하의 코드에서 제가 이해하지 못하는 몇 가지 사항이 있습니다. 가장 중요한 것은 웨이브 패킷의 매개변수화입니다. 귀하의 경우에는 각각 동일한 속도로 움직이는 가우스의 합에 전체를 곱한 것입니다.변화 없는단계. 왜? 어쨌든 이것이 당신이 관찰한 효과를 갖는 이유입니다. 플롯 samples at에는 가 곱해지며 *sin(deg(20*pi*x)), 이는 x=-250및 에서 0입니다 x=250.

나는 틀림없이 더 물리적인 웨이브 패킷을 사용하겠습니다.

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\pgfplotsset{ticks=none}
\begin{document}
\tikzset{declare function={bellshape(\x,\mu,\sigma)=exp(-(\x-\mu)^2/(2*\sigma^2));
wavepacket(\x,\mu,\sigma,\k)=bellshape(\x,\mu,\sigma)*sin(\k*(\x-\mu));}}
\foreach \X in {-350,-320,...,350}
  {
    \begin{tikzpicture}
        \begin{axis}[%scale=3,
                    width=4cm,
                    xmin=-250, xmax=250, 
                    ymin=-1, ymax=1,
                    axis line style={draw=none},
                    ]
  \addplot [only marks, samples at={-250,250}]
            {0.1*(wavepacket(x,\X-100,25,4)+
                wavepacket(x,\X-50,25,4)+
                wavepacket(x,\X-25,25,4)+
                wavepacket(x,\X+25,25,4)+
                wavepacket(x,\X+50,25,4)+
                wavepacket(x,\X+100,25,4))};
  \addplot [domain=-250:250,samples=251,color=blue,smooth]
            {0.1*(wavepacket(x,\X-100,25,4)+
                wavepacket(x,\X-50,25,4)+
                wavepacket(x,\X-25,25,4)+
                wavepacket(x,\X+25,25,4)+
                wavepacket(x,\X+50,25,4)+
                wavepacket(x,\X+100,25,4))};
        \end{axis}
    \end{tikzpicture}
  }
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보