pgfplots 中的反双曲函数

pgfplots 中的反双曲函数

我想要绘制一个包含反双曲正弦的函数。这是我的代码/

\documentclass[border= 5mm]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath}

\DeclareMathOperator{\arcsinh}{arcsinh}

\begin{document}
\begin{tikzpicture}
\begin{axis} [restrict z to domain=0:100,zmax=200]
\addplot3 [surf, samples=30,domain=-155:205,y domain=0:10, z buffer=sort]
({sin(x)*y},{cos(x)*y},{60.13+1.9*tan(\arcsinh y)-15.69*cos(1.794+y-tanh(0.9074*y))}); 
\end{axis} 
\end{tikzpicture}
\end{document}

不幸的是,这会出现一个错误,提示:

Argument of \pgfplotsforeachungrouped@ has an extra }.

意思是}在 之前的\end{axis}。但删除它也没有用(我知道那里需要它。)

答案1

pgf默认情况下不知道arcsinh,但正如评论中提到的,你可以很容易地教它,通过使用

\pgfkeys{/pgf/declare function={arcsinh(\x) = ln(\x + sqrt(\x^2+1));}}

sinh如果使用函数定义,这个公式很容易推导

sinh(x) = (e^x - e^(-x))/2

我注意到你用了

\DeclareMathOperator{\arcsinh}{arcsinh}

如果你想排版sinh函数,例如\arcsinh(x),但它与 声明为 不同pgf

这是一个完整的 MWE,可供使用。

% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfkeys{/pgf/declare function={arcsinh(\x) = ln(\x + sqrt(\x^2+1));}}

\begin{document}
\begin{tikzpicture}
    \begin{axis} [restrict z to domain=0:100,zmax=200]
        \addplot3 [surf, 
            samples=30,
            domain=-155:205,
            y domain=0:10, 
            z buffer=sort
        ]
        ({sin(x)*y},{cos(x)*y},{60.13+1.9*tan(arcsinh(y))-15.69*cos(1.794+y-tanh(0.9074*y))}); 
    \end{axis} 
\end{tikzpicture}
\end{document}

相关内容