我使用以下代码来描述数学函数。这是我的坐标系:
\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
在图表内部使用。