![atan2() 函数与 pgfplots 的意外行为](https://linux22.com/image/458263/atan2()%20%E5%87%BD%E6%95%B0%E4%B8%8E%20pgfplots%20%E7%9A%84%E6%84%8F%E5%A4%96%E8%A1%8C%E4%B8%BA.png)
嗨,我想绘制一些类似 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) 编译并可在其他系统上重现。