绘制 x^(x-1)

绘制 x^(x-1)

我想绘制函数 x^(x-1) 的图形,但总是出错。它只绘制 x 轴,而不是 xy 平面。以下是一般设置。

\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{tikz}
\pgfplotsset{compat = newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    xmin = 0, xmax = 15,
    ymin = 0, ymax = 30000,
    xtick distance = 3,
    ytick distance = 6000,
    width = \textwidth,
    height = \textwidth,
    xlabel = {$x$},
    ylabel = {$y$},]

\addplot[
    domain = 2:15,
    samples = 50,
    smooth,
    thick,
    brown,
] {x^(x-1)};

\end{axis}
\end{tikzpicture}
\end{document}

它不断抛出以下错误:

  • 缺失数字,视为零
  • 缺失数字,视为零
  • 计量单位非法(插入 pt)
  • 程序包 pgfplots 错误:ytick 的参数导致刻度距离太小。请重新配置 xtick 参数
  • 包 pgfplots 警告:y 轴的轴范围几乎为空;在输入行 27 上将其扩大(它是 [0.0:0.0])。
  • 包 pgfplots 警告:无法确定 ticklabel 锚点,法向向量 -(-1.0pt,0.0pt) 和单位 x 向量 (1.0pt,0.0pt) 几乎平行 (abs(cos(angle)) = 1.0pt)!在输入行 27。
  • 包 pgfplots 警告:无法确定 ticklabel 锚点,法向向量 -(1.0pt,0.0pt) 和单位 y 向量 (1.0pt,0.0pt) 几乎平行 (abs(cos(angle)) = 1.0pt)!在输入行 27。
  • 包 pgfplots 警告:无法确定 ticklabel 锚点,法向向量 -(-1.0pt,0.0pt) 和单位 y 向量 (1.0pt,0.0pt) 几乎平行 (abs(cos(angle)) = 1.0pt)!在输入行 27。
  • 包 pgfplots 警告:无法确定 ticklabel 锚点,法向向量 -(0.0pt,-1.0pt) 和单位 y 向量 (0.0pt,-1.0pt) 几乎平行 (abs(cos(angle)) = 1.0pt)!在输入行 27。

到目前为止,我已经为这个等式尝试过的方法:

{pow(e,(x-1))}
{exp((x-1)*ln(x))}
{exp(multiply((x-1),ln(x)))}

答案1

\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{tikz}
\pgfplotsset{compat = newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[%
   xmin = 0,%
   xmax = 15,%
   ymin = 0,%
   ymax = 30e15,%
   xtick distance = 3,%
   ytick distance = 6e15,%
  width = \textwidth,%
  height = \textwidth,%
  xlabel = {$x$},%
  ylabel = {$y$}%
  ]%
%
  \addplot[%
  domain = 2:15,%
  samples = 100,%
  smooth,%
  thick,%
  brown%
    ]%
    {x^(x-1)};%
%
\end{axis}
\end{tikzpicture}
\end{document}

石墨烯

答案2

我使用f(x)=x^{x-1}=\exp{(x-1)log(x)}x>0全局最小点是(1,1)。下面给出了 Asymptote 和 TikZ 代码(简单代码)。

在此处输入图片描述

// http://asymptote.ualberta.ca/
unitsize(1.5cm,3.5mm);
import graph;
real f(real x){return exp((x-1)*log(x));}

label(scale(.8)*"$1$",(1,0),S);
label(scale(.8)*"$1$",(0,1),W);
draw((1,0)--(1,1)--(0,1),dashed);
draw(Label("$x$",align=SE,EndPoint),(-.5,0)--(3.5,0),Arrow(TeXHead));
draw(Label("$y$",align=
           W,EndPoint),(0,-1.5)--(0,10),Arrow(TeXHead));
label("$O$",align=SW,(0,0));

path p=graph(f,.09,3);
draw(Label("$f(x)=x^{x-1}$",align=W,Relative(.8)),p,magenta+1pt);

shipout(bbox(5mm,invisible));

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[x=1.5cm,y=4mm]
\tikzset{declare function={f(\x)=exp((\x-1)*ln(\x));}}      
\draw[dashed]  
(1,0) node[scale=.8,below]{$1$}--(1,1)
(0,1) node[scale=.8,left]{$1$}--(1,1)
(0,0) node[below left]{$O$}
;
\draw[->] (-.5,0)--(3.2,0) node[below right]{$x$};
\draw[->] (0,-1.5)--(0,10) node[left]{$y$};
\draw[smooth,red,thick] plot[domain=.09:3] (\x,{f(\x)});
\fill (1,1) circle(1.5pt);
\end{tikzpicture}
\end{document}

答案3

问题在于 0:15 处的域太高,15^14 太高,图表无法计算。试试这个代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepackage{tikz}
\pgfplotsset{compat=1.9}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=left,
xlabel=\(x\),
ylabel={\(f(x)\)},
]

\addplot[
  domain=0:4,
  samples=200,
  smooth,
  thick,
  color=brown
    ]
    {x^(x-1)};
\end{axis}
\end{tikzpicture}
\end{document}

这使: 图像

相关内容