我想绘制一个f(x)=x^8-5x^7+8x^6+13x^5+24x^4+8x^3+32x^2-12=0
带有虚轴的函数。我不知道该怎么做。这是一个例子。
照片来自youtube频道沃尔奇实验室。这里绘制的函数是f(x)=x^2+1
,z
轴是虚数。
答案1
表面与 xz 平面的交点可以用双曲函数进行参数化。为什么?实坐标中的表面可以用 进行参数化(x,1+x*x-z*z,z)
。现在我们需要求解z*z-x*x=1
以使第二个分量为 0,因此一个明显的选择是z=cosh(t)
和x=sinh(t)
。原则上,您可以使用 来参数化整个事物cosh
,sinh
但这里有一个例子,其中交点被裁剪并用网格填充(当然是 3d 的)。
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{3d}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\path[overlay] (-5,10) coordinate (TL) (5,10) coordinate (TR);
\begin{axis}[view={210}{30},hide axis,
axis equal image,
width=15cm]
\addplot3[surf,shader=interp,
domain=-2:2,domain y=0:2,z buffer=sort,
point meta=-z,clip=false]
(x,1+x*x-y*y,y);
\path (2,5,0) coordinate (L) (-2,5,0) coordinate (R);
\clip plot[domain=-1.317:1.317] ({sinh(\x)},{0},{cosh(\x)})
-- plot[domain={sqrt(3)}:2] (\x,\x*\x-3,2)
-- plot[domain=2:0] (2,5-\x*\x,\x)
-- (3,5,0) -- (TL) -- (TR) -- (-3,5,0)
-- plot[domain=0:2] (-2,5-\x*\x,\x) -- cycle;
\begin{scope}[canvas is xz plane at y=0]
\draw (-8,0) grid[step=5mm] (8,10);
\end{scope}
\end{axis}
\end{tikzpicture}
\end{document}