Definir automaticamente o domínio da função

Definir automaticamente o domínio da função

Eu uso o código a seguir para representar funções matemáticas. Este é o meu sistema de coordenadas:

\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}
}

Para criar uma função eu uso o seguinte comando:

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

Leva o domínio e a própria função como entradas.

O problema é que tenho que definir o domínio cada vez que desenho uma nova função. Como você pode ver no meu sistema de coordenadas, sempre represento gráficos em um sistema de coordenadas dez por dez. Gostaria de criar um novo comando que possa determinar o domínio de qualquer função que eu escolher, de modo que fique contido em meu sistema de coordenadas dez por dez. Isso é possível?

Exemplo com duas funções:

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

Neste exemplo, o valor da primeira função avaliada em 10 é 100, o que está fora dos limites. Vamos chamar a função de g(x). Gostaria que o latex encontrasse o valor de x para que o valor da função fosse 10, g(x)=10, e inserisse esse valor como o limite superior do domínio.

A segunda função tem um problema semelhante. Vamos chamá-lo de f(x). Torna-se muito negativo e sai do sistema de coordenadas na parte inferior. Neste caso eu gostaria que o latex encontrasse o valor da função de forma que f(x)=0 e o inserisse como limite superior.

Responder1

OK, aqui está um exemplo com pgfplots. Concordo com Johannes_B e Benedikt Bauer no uso de 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}

insira a descrição da imagem aqui

Para finalizar, pgfplotsé muito flexível e você pode usar apenas tikzdentro do gráfico.

informação relacionada