pgfplot 中的尖锐高斯

pgfplot 中的尖锐高斯

当尝试绘制尖锐高斯分布 (a*exp(-(xb)^2/c) 且 c<3e-2) 时,会出现以下错误

Package pgfplots notification 'compat/show suggested version=true': document ha
s been generated with the most recent feature set (\pgfplotsset{compat=1.15}).

    ! Dimension too large.
\pgfmathfloatexp@@ ...}\pgf@xa =\pgfmathresult pt 
                                                \pgf@xa =0.434294481\pgf@x...
l.14    };

梅威瑟:

\documentclass[border=0.5]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathtools,amsmath}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
    \begin{axis}
        \addplot [no marks, samples = 2000]
        {1 * exp(-(x-2)^2/2e-3) + 
         1 * exp(-(x-1)^2/2e-3) 
    };
\end{axis}
\end{tikzpicture}
\end{document}          

有没有办法让高斯分布更加清晰?

当值 c>= 3e-2 时,它工作正常:

在此处输入图片描述

答案1

正如前面提到的在问题下方评论您可以使用gnuplot(如果可用)进行计算。使用id为用于调用 gnuplot 的文件(.gnuplot)和包含数据表的 gnuplot 导出文件(.table)指定一个有用的名称。

默认情况下,TeX 是计算引擎,与为此类计算设计的工具相比,它当然相当慢而且不太精确。

(并且只是为了“完整性”:如果你使用compat=1.12或更高版本使用 LuaLaTeX 进行编译,Lua 很可能用于进行计算。由于这有点偏离主题,请查看PGFPlots 手册第 6 章请参阅 v1.16 中的第 527ff 页了解更多详情。

% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}
        \addplot [no marks, samples = 2000] gnuplot [id=gaussian]
            {1 * exp(-(x-2)^2/2e-3) + 1 * exp(-(x-1)^2/2e-3)};
    \end{axis}
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容