在 tikz 中绘制 S 型函数及其导数

在 tikz 中绘制 S 型函数及其导数

我使用以下 tikz 代码创建了 S 型函数图:

\documentclass{minimal}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}%
[
    grid=major,     
    xmin=-6,
    xmax=6,
    axis x line=bottom,
    ytick={0,.5,1},
    ymax=1,
    axis y line=middle,
]
    \addplot%
    [
        blue,%
        mark=none,
        samples=100,
        domain=-6:6,
    ]
    (x,{1/(1+exp(-x))});
\end{axis}
\end{tikzpicture}
\end{document}

是否可以使用红色虚线将 S 型函数的导数添加到图形中,并在两条线的右上角添加图例,而无需离开 tikz 环境?

S 型函数:σ = 1/(1+exp(-x))

导数:σ(x)(1−σ(x)

答案1

可以说最方便的方法是使用declare function键声明函数,然后绘制它们。

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[declare function={sigma(\x)=1/(1+exp(-\x));
sigmap(\x)=sigma(\x)*(1-sigma(\x));}]
\begin{axis}%
[
    grid=major,     
    xmin=-6,
    xmax=6,
    axis x line=bottom,
    ytick={0,.5,1},
    ymax=1,
    axis y line=middle,
    samples=100,
    domain=-6:6,
    legend style={at={(1,0.9)}}     
]
    \addplot[blue,mark=none]   (x,{sigma(x)});
    \addplot[red,dotted,mark=none]   (x,{sigmap(x)});
    \legend{$\sigma(x)$,$\sigma'(x)$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容