.png)
Estou tentando desenhar no tikz o gráfico f(x)=x*cos(1/x)
e estou usando o seguinte código:
\documentclass[10pt]{article}
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\draw[->,color=black] (-0.45754230805133705,0.0) -- (0.6210968701809529,0.0);
\foreach \x in {-0.4,-0.30000000000000004,-0.20000000000000004,-0.10000000000000003,0.19999999999999998,0.3,0.4,0.5,0.6}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
\draw[->,color=black] (0.0,-0.340872843559345) -- (0.0,0.38634286875659907);
\foreach \y in {-0.30000000000000004,-0.20000000000000004,-0.10000000000000003,0.19999999999999998,0.3}
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};
\clip(-0.45754230805133705,-0.340872843559345) rectangle (0.6210968701809529,0.38634286875659907);
\draw[smooth,samples=100,domain=-0.45754230805133705:0.6210968701809529] plot(\x,{(\x)*\sigma\upsilon\nu((1.0/(\x))*180/pi)});
\end{tikzpicture}
\end{document}
No entanto, ele não compila. Acho que o problema é que a função não está definida em zero. O código acima me foi fornecido pelo Geogebra. Alguma ideia? Gostaria de ter o código completo!
Responder1
Eu simplesmente faria a plotagem usando o pgfplots
pacote, que se baseia, pgf
mas é uma interface mais 'natural' para plotagem:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[samples = 1000]
\addplot[mark = none] {x * cos ( 180 / ( x / pi ) ) };
\end{axis}
\end{tikzpicture}
\end{document}
Eu precisava aumentar as amostras aqui, caso contrário não há detalhes suficientes: não tenho certeza de que parte da trama você realmente está procurando!
(Observe que o pgf
sistema matemático espera ângulos em graus, assim como no código gerado automaticamente na pergunta, tive que converter de um valor x
em radianos.)
Mover os eixos de uma 'caixa' (estilo de plotagem científica comum) para central (mais comum para traçar fórmulas) e 'aumentar o zoom' pode ser alcançado com relativa facilidade
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines = middle, domain = -1:1, samples = 1000]
\addplot[mark = none] {x * cos ( 180 / ( x / pi ) ) };
\end{axis}
\end{tikzpicture}
\end{document}
Responder2
Uma solução divertida com PSTricks.
\documentclass[pstricks,border=20pt,12pt,dvipsnames]{standalone}
\usepackage{pst-plot}
\def\f{x*cos(1/x)}
\begin{document}
\begin{psgraph}[algebraic,Dx=0.025,Dy=0.01,plotpoints=1000]{->}(0,0)(-.1,-.1)(.1,.1){15cm}{!}
\psplot[linecolor=Red]{-.1}{-0.005}{\f}
\psplot[linecolor=Red]{0.005}{.1}{\f}
\end{psgraph}
\end{document}
Animação ampliada
\documentclass[pstricks,border=20pt,12pt,dvipsnames]{standalone}
\usepackage{pst-plot}
\usepackage[nomessages]{fp}
\def\f{x*cos(1/x)}
\begin{document}
\foreach \i in {1.5,1.4,...,0.1}{%
\FPeval\D{round(\i/5:2)}%
\begin{psgraph}[algebraic,Dx=\D,Dy=\D,plotpoints=1000]{->}(0,0)(-\i,-\i)(\i,\i){20cm}{!}
\psplot[linecolor=Red]{-\i}{\D\space 10 div neg}{\f}
\psplot[linecolor=Red]{\D\space 10 div}{\i}{\f}
\end{psgraph}}
\end{document}