Gnuplot:我的错误在哪里?

Gnuplot:我的错误在哪里?

我想绘制一个函数。但是gnuplottex和的结果gegogebra不同。错误在哪里?

\documentclass{standalone}
\usepackage[miktex]{gnuplottex}
\usepackage{pgfplots}
\pgfplotsset{compat = newest}
\newcommand*\GnuplotDefs{
    set samples 50;
    dexp(x,l) = l * exp(-l*x);
    dweibull(x,a,b) = (a/b) * ((x/b)**(a-1)) * exp(-(x/b)**a);
    kexpweibull(x,l,a,b,p) =  p * dexp(x,l) + (1-p) * dweibull(x,a,b);
    }
\begin{document}
    \begin{tikzpicture}
    \begin{axis}[
    ymin=0,
    ymax=0.1,
    no markers,
    smooth,
    every axis plot post/.append style={very thick},
    xlabel={x},
    ylabel={probability density},
    ]
    \addplot gnuplot [raw gnuplot] {
        \GnuplotDefs
        plot [x = 0:25] kexpweibull(x,0.2,5,15,0.2);
    };
    \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

在此处输入图片描述

答案1

这个问题无关,因为它涉及gnuplot而不是LaTeX

但回答你的问题:

问题是(a/b)

dweibull(x,a,b) = (a/b) * ((x/b)**(a-1)) * exp(-(x/b)**a);

0,如果a=5b=15,因为 gnuplot 假设它们是整数。为了使其工作,您只需使用:

plot [x = 0:25] kexpweibull(x,0.2,5.0,15.0,0.2);

代替

plot [x = 0:25] kexpweibull(x,0.2,5,15,0.2);

因此a=5.0b=15.0被解释为浮点数(或双精度数)而不是整数。

以下是示例输出:

在此处输入图片描述

相关内容