
Я использую следующий код для изображения математических функций. Это моя система координат:
\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
внутри графика.