使用 pgfplots 省略部分函数域

使用 pgfplots 省略部分函数域

我该如何绘制方程 x^6+y^5cos(x)=1 并制作图形?我通常使用pgfplots,但我不确定如何解决这个方程中的等号。当我求解 x 并绘制函数时,我得到的结果与使用 Apple 的 Grapher 应用程序时不同。即使我扩展域,图形也不会延伸。 苹果绘图师Latex 结果

\begin{center}
\begin{tikzpicture}
\begin{axis}[
axis lines=center,
xlabel=$x$,
ylabel=$y$,
xmin=-3.5,
xmax=3.5,
ymax=3,
ymin=-2.5
]
\addplot[samples=100,domain=-3.5:3.5] {((1-x^6)/(cos(deg(x)))^.2};  
\end{axis}
\end{tikzpicture}
\end{center}

答案1

有三个问题。

  1. fpu不能处理负数的奇数根。这会导致 1、-1 和相应附近的渐近线之间出现漏洞。
  2. 所画的曲线在渐近线附近很陡峭,因此低采样让它变得不稳定。如果它足够低,渐近行为就会完全消失。
  3. 曲线绘制为连续路径,因此如果存在您正在绘制的(近似的)垂直渐近线,则从到-\infty的跳跃就会+\infty被绘制出来。

解决方案有三种。

  1. 一个简单的代数运算。
  2. 增加采样。
  3. 对域名进行pgfplots截止y

以下是代码,其中数字标记了解决方案:

\documentclass[tikz,border=9]{standalone}
\usepackage{pgfplots}
\begin{document}\begin{tikzpicture}

\begin{axis} [ axis lines=center,
    xlabel=$x$, xmin=-pi,  xmax= pi,
    ylabel=$y$, ymin=-2.5, ymax= 4.5,
    restrict y to domain=-5:10,]          % (3)

  \def\f{(1-x^6)*sec(deg(x))}

  \addplot [samples=1000]                 % (2)
    {sign(\f)*pow(abs(\f),1/5)};          % (1)

\end{axis}

\end{tikzpicture}\end{document}

结果如下:

跳!

相关内容