绘制 sqrt(x^3+x^2)*sin(pi/x) 得到水平线

绘制 sqrt(x^3+x^2)*sin(pi/x) 得到水平线

我不知道这个网站是如何运作的,所以我会尽力而为。

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis x line=center,
axis y line=center,
minor tick num=1,
xlabel={$x$},
xmin=-5, xmax=5,
ylabel={$y$},
ymin=-5, ymax=5,
]
\addplot[blue, samples=200, domain=-1:5]{-sqrt(x^3+x^2)}
node[pos=0.3, pin=135:{\color{blue}$-\sqrt{x^3+x^2}$}]{};
\addplot[red, samples=500, domain=-1:5]{sqrt(x^3+x^2)*sin(pi/deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

当我运行代码时(我没有包含其他 200 行代码)我得到一条水平线...只是想知道是否有人知道这个问题的解决方案。

谢谢

答案1

经过一番思考:sin以度为输入,这就是您使用的原因deg(x)。但是,您正在将其与pi用于弧度的进行比较。这就是您得到错误图表的原因。下面我展示了三种正确的方法。

\documentclass[12pt]{article}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
    \begin{axis}[
    axis x line=center,
    axis y line=center,
    minor tick num=1,
    xlabel={$x$},
    xmin=-1, xmax=1,
    ylabel={$y$},
    ymin=-1, ymax=1,
    ]
    \addplot[red, samples=1000, domain=-5:5]{sqrt(x^3+x^2)*sin(deg(pi/x))};
    \addplot[cyan,dashed, samples=1000, domain=-5:5]{sqrt(x^3+x^2)*sin(180/x)};
    \addplot[blue,densely dotted, samples=1000, domain=-5:5, trig format=rad]{sqrt(x^3+x^2)*sin(pi/x)};
    \addplot[blue, samples=200, domain=-5:5]{-sqrt(x^3+x^2)} node[pos=0.3, pin=135:{\color{blue}$-\sqrt{x^3+x^2}$}]{};
    \end{axis}
    \end{tikzpicture}
\end{document} 

在此处输入图片描述

答案2

它看起来像一条线,因为在我看来你不应该使用“deg(x)”。尝试只使用“sin(deg(pi/x))”,看看它是否更符合你的需要。

相关内容