tikz 绘制复数对数

tikz 绘制复数对数

我想绘制复对数(虚部),其定义如下:

ln(z) = ln(r) + i * arg(z)

这应该看起来像。但是,我没有绘制 3 维/复杂 tikz 图的经验,也不知道如何正确绘制该函数。

答案1

pgfplots无法处理开箱即用的复杂坐标。不过,我认为在这种情况下也没有必要。您希望描绘一个映射 \mathds{C}\to\mathds{C},这在 3d 图上是不可能的,但您的目标结果似乎是 3d 图。要生成此类结果,您只需使用自己的坐标即可

({x*cos(y)},{x*sin(y)},{ln(x)+y})

其中x是半径,y是相位。现在有一个问题,我们只有 3 个坐标可用。由于域中用了两个坐标,我们需要使用投影。我不知道您在使用的图像中使用了什么投影,但以下内容似乎很接近:

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,width=10cm,height=14cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[trig format plots=rad,view={-50}{12},
    colormap={adopted}{rgb255(0cm)=(151,0,250);
    rgb255(1cm)=(219,0,70);rgb255(2cm)=(186,255,60)},
    z buffer=sort,zmin=-3.5*pi]
\addplot3 [surf,domain=0.001:4,domain y=-3*pi:3*pi,samples=25,samples y=109]
({x*cos(y)},{x*sin(y)},{ln(x)+y});
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

或者使用不同的角度。

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,width=10cm,height=14cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[trig format plots=rad,view={70}{20},
    colormap={adopted}{rgb255(0cm)=(151,0,250);
    rgb255(1cm)=(219,0,70);rgb255(2cm)=(186,255,60)},
    z buffer=sort,zmin=-3.5*pi]
\addplot3 [surf,domain=0.001:4,domain y=-3*pi:3*pi,samples=25,samples y=109]
({x*cos(y)},{x*sin(y)},{ln(x)+y});
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

如果您想使用其他投影,也可以内置此功能。

相关内容