输出

输出

我想绘制对数函数的图形,如下

f(x)=\ln(2\frac{x^2+1}{x^2-1})
f(x)=\ln(2\frac{x^2+1}{x^2+2})

以及它们的渐近线(在两种情况下都是y=\ln2)。

我尝试过\pgfplots,但没能制作出图形。你会怎么做?

答案1

这是一个可能的解决方案pgfplots

\documentclass{article}

    \usepackage{pgfplots}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[domain=1:5,
            samples=100,
            grid=both,
            no markers,
            axis equal]
        \addplot +[thick] {ln(2*(x*x+1)/(x*x-1))};
        \addplot +[thick, domain=0:5] {ln(2)};
        \addplot +[thick, dashed] coordinates {(1,0)(1,4)};
        \end{axis}
    \end{tikzpicture}
\end{document}

许多选项都是不言自明的,所有其他选项都可以在文档中找到,但您感兴趣的核心是axis环境的定义和命令的使用\addplot

  • outertikzpicture创建一个定义 tikz/pgf 命令的环境;
  • axis用于定义情节环境;
  • 选项domain=X_min:X_max指定函数的输入从X_minX_max
  • samples=N通过使用更多的点来采样曲线使绘图更加平滑;
  • grid在图中设置网格;
  • no markers避免用点绘图,只打印线;
  • axis equal是不言而喻的:均衡轴。

最终\addplot命令使用如下:

  • 添加选项,+[thick]将选项附加到预设,如果您想覆盖先前的样式,只需使用例如[thick, green]
  • 括号中的参数是要绘制的函数,如{ln(2*(x*x+1)/(x*x-1))}
  • 最后\addplot使用坐标绘制处的垂直渐近线x=1

输出

pgf图

答案2

我确实认为你的函数有拼写错误F因为分子等于分母,所以F本身就是常数,并且F和它的渐近线重合。我随机改变了F以下。

第二个示例遵循 Ti 的“22.5 绘制函数”一节Z' 手册https://www.ctan.org/pkg/pgf

\documentclass{memoir} 

\usepackage{tikz,pgfplots}

\begin{document} 

\begin{tikzpicture}
    \begin{axis}[grid=major,domain=-20:20, smooth]
        \addplot[samples=400]
            {ln(2*(x*x+1)/(x*x+2))}; 
        \addplot[]
            {ln(2)}; 
    \end{axis}
\end{tikzpicture}

\begin{tikzpicture}[domain=-5:5]
    \draw[very thin,color=gray] 
        (-5,-1) grid (5,2);
    \draw[->] 
        (-5,0) -- (5.2,0) 
        node[right] {$x$};
    \draw[->] 
        (0,-1.2) -- (0,2.2) 
        node[above] {$y$};
    \draw[color=red] 
        plot (\x,{ln(2)}) 
        node[above] {$\ln2$};
    \draw[color=blue,samples=400,smooth] 
        plot (\x,{ln(2*(\x*\x+1)/(\x*\x+2))}) 
        node[below] {$f$}; 
\end{tikzpicture}

\end{document}

在此处输入图片描述

编辑应 OP 要求:我删除了该grid部分,并通过循环或多或少手动添加了数字\foreach:它绘制一条线并自动添加数字。观察:第二个和第三个示例不需要pgfplots

\documentclass{memoir} 

\usepackage{tikz}

\newcommand{\xPlotMin}{-5}
\newcommand{\xPlotMax}{5}
\newcommand{\yPlotMin}{-1}
\newcommand{\yPlotMax}{2}
\newcommand{\axisSmallLength}{0.1}
%Be aware the simple implementation of the axis below might give silly results for unsuitable values. 

\begin{document} 

\begin{tikzpicture}[domain=\xPlotMin:\xPlotMax]
    \draw[->] 
        ({\xPlotMin-2*\axisSmallLength},0) -- ({\xPlotMax+2*\axisSmallLength},0) 
        node[right] {$x$};
    \foreach \x in {\xPlotMin,...,-1, 1,2,...,\xPlotMax}    
        {\draw (\x,\axisSmallLength) -- (\x,-\axisSmallLength) node[below] {$\x$};}

    \draw[->] 
        (0,{\yPlotMin-2*\axisSmallLength}) -- (0,{\yPlotMax+2*\axisSmallLength}) 
        node[above] {$y$};
    \foreach \y in {\yPlotMin,...,-1, 1,2,...,\yPlotMax}    
        {\draw (\axisSmallLength,\y) -- (-\axisSmallLength,\y) node[left] {$\y$};}

    \draw[color=red] 
        plot (\x,{ln(2)}) 
        node[above] {$\ln2$};
    \draw[color=blue,samples=400,smooth] 
        plot (\x,{ln(2*(\x*\x+1)/(\x*\x+2))}) 
        node[below] {$f$}; 
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容