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 的sincos假设弧度作为输入,而pgfsincos假设度数。pgfplots您可以添加trig format=rad\addplot选项中以获得与 Matlab 相同的行为,然后就domain=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}

相关内容