Estou começando a aprender pgfplots e gostaria de traçar algumas funções: raiz cúbica, inversa e algumas funções trigonométricas.
O problema é que para a função y=1/x, ela une os pontos entre as partes negativas e positivas do domínio: não podemos ver a assíntota.
\documentclass{minimal}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[]
\addplot [domain=-10:10, samples=100]{x^(-1)};
\end{axis}
\end{tikzpicture}
\end{document}
Com a função y=x^{1/3}, ela não exibe a parte negativa do domínio. E com as funções trigonométricas, simplesmente não faz nada certo...
\addplot[domain=-27:27]{x^(1/3)};
\addplot[domain=-2*pi:2*pi]{cos(rad(x))};
muito obrigado se você puder me ajudar um pouco.
muito obrigado por suas respostas, está realmente ajudando. Só uma última coisa: a função raiz cúbica tem uma parte negativa em seu domínio que não pode ser exibida. Você sabe por quê?
\begin{tikzpicture}
\begin{axis}[
width=8cm,xlabel={$x$},
ylabel={$y$},grid=both, axis x line=middle, axis y line=middle,
title={$f(x)=x^{1/3}$}]
\addplot[blue,domain=-27:27, no markers,samples=100] {x^(1/3)};
\end{axis}
\end{tikzpicture}
NB: Sim, a função raiz cúbica tem domínio parcialmente negativo e não, não existe parte imaginária. NB: desculpe, estou insistindo em uma das minhas primeiras perguntas neste comentário que deveria ser uma "resposta", sou novo aqui e, como ainda não sou cadastrado, não sei como posso perguntar algo relacionado ao tópico em um novo "comentário de pergunta"
Responder1
Para manter as partes negativas e positivas do 1/x
gráfico separadas, você precisa ter certeza de que a função é avaliada em x=0
. Se o seu domínio for simétrico, você pode especificar apenas um número ímpar de amostras ( samples=101
, por exemplo). Você também precisa ter certeza de que os valores não reais não sejam apenas descartados silenciosamente, mas causem um salto no gráfico. Para fazer isso, especifique unbounded coords=jump
(em vez do comportamento padrão discard
).
As funções trigonométricas em PGF esperam graus, então você terá que converter radianos em graus usando deg(x)
(não rad(x)
, que é usado para converter graus em radianos).
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot [domain=-10:10, samples=101,unbounded coords=jump]{x^(-1)};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot[domain=-2*pi:2*pi, samples=100]{cos(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}
Responder2
As outras respostas fornecem maneiras interessantes de traçar 1/x
, mas ninguém abordou como traçarx^(1/3)
O problema surge em vários programas/calculadoras gráficas diferentes. As raízes cúbicas são frequentemente calculadas usando logaritmos, e é por isso que às vezes parecem não estar definidas para números negativos. Claro, sabemos que podemos extrair a raiz cúbica de qualquer número real, então temos que enganar o programa/calculadora.
Uma maneira de fazer isso é traçar
x/|x| * (|x|)^(1/3)
que traça a função de raiz cúbica e alterna sorrateiramente os sinais de maneira adequada. Claro, esta função não está definida em 0
, então na verdade não éigualà função raiz cúbica, mas funciona para nós :)
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[blue,domain=-10:10, samples=200]{x/abs(x)*abs(x)^(1/3)};
\end{axis}
\end{tikzpicture}
\end{document}
Responder3
Acho que suas expectativas são muito grandes, pois pgfplots não é um Sistema de Álgebra Computacional (CAS). Então você precisa ajudá-lo massageando os dados. Além disso, samples
a opção faz muita diferença, pois os gráficos estão realmente conectando os pontos, e para ver se um valor é ilimitado, ele deve ser avaliado nesse ponto, caso contrário os resultados serão finitos e conectará esses pontos.
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[restrict y to domain=-9.9:9.9]
\addplot [domain=-10:10, samples=200]{x^(-1)};
\addplot[blue,domain=-10:10, samples=200]{x^(1/3)};
\addplot[red,domain=-2*pi:2*pi, samples=200]{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}