atan2() 函数与 pgfplots 的意外行为

atan2() 函数与 pgfplots 的意外行为

嗨,我想绘制一些类似 Bode 的图,atan2() 函数似乎在某些值组合下无法正常工作。我设法重新创建了最小工作代码来显示问题:

我正在使用 atan2() 函数,该函数对 x 和一些定义为 declared 的参数具有非平凡依赖性function=

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
    \begin{tikzpicture}[
        declare function={
            d=0.9;
            Rl=100e3;
            L=200e-6;
            C=400e-9;
            wo= (1-d)/sqrt(L*C);
            Q=wo*Rl*C;
        }
    ]
        \begin{axis}[xmode=log]
            \addplot[domain=1e1:1e7, samples=1000] {-atan2(x/wo/Q,(1 - x*x/wo/wo))};
            \addplot[red, domain=1e1:1e10, samples=1000] {-atan2(x/wo,(1 - x*x/wo/wo))};
        \end{axis}
    \end{tikzpicture}

\end{document}
  • \addplot[red, domain=1e1:1e10, samples=1000] {-atan2(x/wo,(1 - x*x/wo/wo))};给出某个点的预期行为(红色曲线);
  • \addplot[domain=1e1:1e7, samples=1000] {-atan2(x/wo/Q,(1 - x*x/wo/wo))};看起来不可靠(黑色);

以下图表提供了丰富的信息:

在此处输入图片描述

看起来某些组合(y,x)给出了错误的 atan2 行为,即踩在右侧。使用 pdflatex (overleaf) 编译并可在其他系统上重现。

相关内容