Pgfplots와 MATLAB은 서로 다른 결과를 제공합니다.

Pgfplots와 MATLAB은 서로 다른 결과를 제공합니다.

pgfplots를 사용하여 함수를 플롯해야 하는데 결과가 예상과 다릅니다. 도메인은 이어야 합니다 0:1.

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
    \begin{axis}[enlargelimits=false]
        \addplot[domain=0:55, samples=1001]{((sqrt((1 -cos(2*pi*x))^2+sin(2*pi*x)^2))^4)^2};
    \end{axis}
\end{tikzpicture}

\end{document}

전체 기능을 표시하려면 도메인을 55로 설정해야 했습니다. MATLAB 코드는 다음과 같습니다.

x=0:0.01:1;
plot(x,((sqrt((1-cos(2*pi*x)).^2+sin(2*pi*x).^2)).^4).^2)

내가 읽고이 답변하지만 이 경우에는 도움이 되지 않았습니다.

답변1

Matlab에서는 sin라디안 cos을 입력으로 가정하고 pgf' sincos각도는 가정합니다. Matlab과 동일한 동작을 얻기 위해 옵션을 추가 pgfplots하면 작동 합니다.trig format=rad\addplotdomain=0:1

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

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
    \begin{axis}[enlargelimits=false]
        \addplot[domain=0:1, samples=1001, trig format=rad]{((sqrt((1 -cos(2*pi*x))^2+sin(2*pi*x)^2))^4)^2};
    \end{axis}
\end{tikzpicture}
\end{document}

관련 정보