我该如何绘制方程 x^6+y^5cos(x)=1 并制作图形?我通常使用pgfplots
,但我不确定如何解决这个方程中的等号。当我求解 x 并绘制函数时,我得到的结果与使用 Apple 的 Grapher 应用程序时不同。即使我扩展域,图形也不会延伸。
\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
有三个问题。
fpu
不能处理负数的奇数根。这会导致 1、-1 和相应附近的渐近线之间出现漏洞。- 所画的曲线在渐近线附近很陡峭,因此低采样让它变得不稳定。如果它足够低,渐近行为就会完全消失。
- 曲线绘制为连续路径,因此如果存在您正在绘制的(近似的)垂直渐近线,则从到
-\infty
的跳跃就会+\infty
被绘制出来。
解决方案有三种。
- 一个简单的代数运算。
- 增加采样。
- 对域名进行
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}
结果如下: