tikzpicture 中的分段函数

tikzpicture 中的分段函数

我正在尝试在 tikzpicture 中创建一个分段图。尝试模拟此答案中的示例绘制分段函数对我来说不起作用,而且我不明白为什么这段代码不起作用。

\documentclass[11pt, letterpaper]{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[
  declare function={
            func(\x)= (\x<=0) * ((0.5)*exp(\x))   +
            and(\x>0) * (1-(0.5)*exp(-\x))
            ;
        }
        ]
        \begin{axis}[
        axis x line=middle, axis y line=middle,
        ymin=0, ymax=1, ytick={0,0.5,1}, ylabel=$F_{X-Y}(t)$,
        xmin=-5, xmax=5, xtick={-5,...,5}, xlabel=$t$,
        ]
        \addplot[blue, domain=-5:5, smooth]{func(x)};
\end{axis}
\end{tikzpicture} 
\end{document}

任何帮助将不胜感激!

答案1

欢迎!您and只使用一个参数进行调用,在我看来(但我可能错了)您and根本不想要。(您也可以将函数更改为仅使用abssign函数,请参阅afunc定义。)

\documentclass[11pt, letterpaper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[
  declare function={
            func(\x)= (\x<=0) * ((0.5)*exp(\x))   +
            (\x>0) * (1-(0.5)*exp(-\x));
            afunc(\x)=0.5*(1+sign(\x)-sign(\x)*exp(-abs(\x)));
        }
        ]
        \begin{axis}[
        axis x line=middle, axis y line=middle,
        ymin=0, ymax=1, ytick={0,0.5,1}, ylabel=$F_{X-Y}(t)$,
        xmin=-5, xmax=5, xtick={-5,...,5}, xlabel=$t$,
        ]
        \addplot[blue, domain=-5:5, smooth]{func(x)};
        \addplot[red, domain=-5:5, smooth,dashed,thick]{afunc(x)};
\end{axis}
\end{tikzpicture} 
\end{document}

在此处输入图片描述

当然,该函数也可以用 来近似tanh

\documentclass[11pt, letterpaper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[
  declare function={
            func(\x)= (\x<=0) * ((0.5)*exp(\x))   +
            (\x>0) * (1-(0.5)*exp(-\x));
        }
        ]
        \begin{axis}[
        axis x line=middle, axis y line=middle,
        ymin=0, ymax=1, ytick={0,0.5,1}, ylabel=$F_{X-Y}(t)$,
        xmin=-5, xmax=5, xtick={-5,...,5}, xlabel=$t$,
        ]
        \addplot[blue, domain=-5:5, smooth]{func(x)};
        \addplot[red, domain=-5:5, smooth,dashed,thick]{0.5*tanh(x/1.5)+0.5};
\end{axis}
\end{tikzpicture} 
\end{document}

在此处输入图片描述

相关内容