pgfplot 无法绘制复杂函数

pgfplot 无法绘制复杂函数

我正在尝试使用 pgfplots 绘制函数sin(pi*x)*sinh(pi-pi*y)/sinh(pi)。这是我目前拥有的代码

\documentclass[border=5pt]{standalone}
\usepackage[dvipsnames,svgnames,table]{xcolor} % use color

\usepackage{tikz} % Required for drawing custom shapes
\usepackage{pgfplots}
\usepgflibrary{shapes.geometric}
\usepgfplotslibrary{colorbrewer}
\usetikzlibrary{pgfplots.groupplots, plotmarks, calc, spy, pgfplots.polar}
\usetikzlibrary{plotmarks, calc, spy, pgfplots.polar}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[
            width=8cm,
        xlabel=$x$,
        ylabel=$y$,
        xmin=0,xmax=1,
        ymin=0,ymax=1,
    ]
    % use TeX as calculator:
    \addplot3[surf,domain=0:1, samples=20] { sin(pi*x)*sinh(pi-pi*y)/sinh(pi)};
    \end{axis}
\end{tikzpicture}

\end{document}

产生 在此处输入图片描述

但我期待这个函数(在 Mathematica 中绘制):

在此处输入图片描述

所以我很好奇想知道我在这里做错了什么?

答案1

我猜问题在于 pgfplot 假设的参数sin是度数,但Mathematica事实并非如此。事实上

 \documentclass[border=5pt]{standalone}
 \usepackage[dvipsnames,svgnames,table]{xcolor} % use color

 \usepackage{tikz} % Required for drawing custom shapes
 \usepackage{pgfplots}
 \usepgflibrary{shapes.geometric}
 \usepgfplotslibrary{colorbrewer}
 \usetikzlibrary{pgfplots.groupplots, plotmarks, calc, spy, pgfplots.polar}
 \usetikzlibrary{plotmarks, calc, spy, pgfplots.polar}

 \begin{document}

 \begin{tikzpicture}
     \begin{axis}[
             width=8cm,
         xlabel=$x$,
         ylabel=$y$,
         xmin=0,xmax=1,
         ymin=0,ymax=1,
     ]
     % use TeX as calculator:
     \addplot3[surf,domain=0:1, samples=20] { sin(180*x)*sinh(pi-pi*y)/sinh(pi)};
     \end{axis}
 \end{tikzpicture}

 \end{document}

产生了一些非常让人联想到你的Mathematica情节的东西:

在此处输入图片描述

编辑:在以前的版本中,我还替换了分母中 sinh 参数的 pi,这改变了图的规范化。(是的,pgfplots 假设参数为sin但不sinh为度数,这确实很奇怪。)

相关内容