Pgfplots:无法绘制一些常见的数学函数

Pgfplots:无法绘制一些常见的数学函数

我刚开始学习 pgfplots,我想绘制一些函数:立方根、反函数和一些三角函数。

问题在于,对于 y=1/x 函数,它连接了定义域的负部分和正部分之间的点:我们看不到渐近线。

\documentclass{minimal}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[]
\addplot [domain=-10:10, samples=100]{x^(-1)};
\end{axis}
\end{tikzpicture}
\end{document}

使用函数 y=x^{1/3} 时,它不会显示域的负部分。使用三角函数时,它根本做不到任何正确的事情……

\addplot[domain=-27:27]{x^(1/3)};
\addplot[domain=-2*pi:2*pi]{cos(rad(x))};

如果你能帮助我一点的话我将非常感谢。


非常感谢您的回答,这真的很有帮助。最后一件事:三次根函数的定义域中有一个负数部分无法显示。您知道为什么吗?

\begin{tikzpicture} 
\begin{axis}[
    width=8cm,xlabel={$x$},
    ylabel={$y$},grid=both, axis x line=middle, axis y line=middle, 
    title={$f(x)=x^{1/3}$}] 
\addplot[blue,domain=-27:27, no markers,samples=100] {x^(1/3)}; 
\end{axis} 
\end{tikzpicture}

注意:是的,立方根函数具有部分负域,并且没有虚部。注意:很抱歉,我坚持在这条评论中提出我的第一个问题之一,这应该是一个“答案”,我只是这里的新手,因为我还没有注册,所以我不知道如何在新的“问题评论”中询问与该主题相关的问题

答案1

为了将图的正负部分1/x分开,您需要确保函数在 处求值x=0。如果您的域是对称的,您可以指定奇数个样本(samples=101例如)。您还必须确保非实数值不会默默被丢弃,而会导致图中出现跳跃。为此,请指定unbounded coords=jump(而不是默认行为discard)。

PGF 中的三角函数需要度数,因此您必须使用deg(x)(不是rad(x),这是用于将度数转换为弧度) 将弧度转换为度数。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot [domain=-10:10, samples=101,unbounded coords=jump]{x^(-1)};
\end{axis}
\end{tikzpicture}

\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot[domain=-2*pi:2*pi, samples=100]{cos(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

答案2

其他答案提供了巧妙的绘图方法1/x,但没有人涵盖如何绘图x^(1/3)

这个问题出现在很多不同的制图程序/计算器中。立方根通常使用对数来计算,这就是为什么它们有时似乎没有为负数定义的原因。当然,我们知道我们可以对任何实数取立方根,所以我们必须欺骗程序/计算器。

一种方法是绘制

x/|x| * (|x|)^(1/3)

绘制立方根函数,并偷偷地适当切换符号。当然,这个函数没有定义在0,所以它实际上不是平等的立方根函数,但它对我们很有帮助:)

在此处输入图片描述

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
       \addplot[blue,domain=-10:10, samples=200]{x/abs(x)*abs(x)^(1/3)};
    \end{axis}
\end{tikzpicture}

\end{document}

答案3

我认为你的期望太高了,因为 pgfplots 不是计算机代数系统 (CAS)。所以你需要通过修改数据来帮助它。此外,samples选项也有很大不同,因为图实际上是在连接点,要查看某个值是否无界,必须在该点进行评估,否则结果将是有限的,它会连接这些点。

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[restrict y to domain=-9.9:9.9]
\addplot [domain=-10:10, samples=200]{x^(-1)};
\addplot[blue,domain=-10:10, samples=200]{x^(1/3)};
\addplot[red,domain=-2*pi:2*pi, samples=200]{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容