自动定义函数域

自动定义函数域

我使用以下代码来描述数学函数。这是我的坐标系:

\newenvironment{graph}[2]{\begin{tikzpicture}[scale=0.6]
\draw[->] (0,0) -- (10,0) node[right] {$#1$};
\draw[->] (0,0) -- (0,10) node[above] {$#2$};
}
{
\end{tikzpicture}
}

要创建一个函数,我使用以下命令:

 \newcommand{\gf}[2]{\draw plot[variable=\t,samples=1000,scale=1,domain= #1 ,smooth] ({\t},{#2});}

它将域和函数本身作为输入。

问题是,每次绘制新函数时,我都必须定义域。从我的坐标系中可以看出,我总是在十乘十的坐标系中描绘图形。我想创建一个新命令,它可以确定我选择的任何函数的域,以便它包含在我的十乘十的坐标系中。这可能吗?

具有两个函数的示例:

\begin{graph}{x}{y}
\gf{0:10}{\t^2}
\gf{0:10}{3-2\t}
\end{graph}

在此示例中,第一个函数在 10 处求值的值为 100,超出了范围。我们将其称为 g(x)。我希望 latex 找到 x 的值,使得函数值为 10,即 g(x)=10,并将该值插入为域的上限。

第二个函数有类似的问题。我们将其称为 f(x)。它变得非常负,并在底部退出坐标系。在这种情况下,我希望 latex 找到函数的值,以便 f(x)=0 并将其插入为上限。

答案1

好的,这里有一个例子pgfplots我同意 Johannes_B 和 Benedikt Bauer 使用 pgfplots。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
          axis lines=left,
          scaled ticks=true,
          xlabel=$x$,
          ylabel=$y$,
          xmax=11,
          ymax=110,
          small,
          domain=1:10,
          samples=100
      ]
     \addplot[red,thick,-stealth] {x^2};
    \end{axis}
  \end{tikzpicture}
  \begin{tikzpicture}
    \begin{axis}[
          axis lines=left,
          scaled ticks=true,
          xlabel=$x$,
          ylabel=$y$,
          xmax=11,
          ymax=11,
          small,
          domain=1:10,
          samples=100
      ]
     \addplot[blue,thick,loosely dotted,-stealth] {-2*x+3};
     \draw[fill=red] (axis cs:6,-10) circle (3pt);
     \draw[magenta,-stealth] (axis cs:8,0) -- (axis cs:6.1,-9.6);
    \end{axis}
  \end{tikzpicture}
\end{document}

在此处输入图片描述

总之,pgfplots非常灵活,您可以tikz在图表内部使用。

相关内容