Автоматически определить область действия функции

Автоматически определить область действия функции

Я использую следующий код для изображения математических функций. Это моя система координат:

\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внутри графика.

Связанный контент