.png)
Estoy intentando dibujar en tikz la gráfica de f(x)=x*cos(1/x)
y estoy usando el siguiente 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}
Sin embargo, no se compila. Supongo que el problema es que la función no está definida en cero. El código anterior me lo proporcionó Geogebra. ¿Algunas ideas? ¡Me gustaría tener el código completo!
Respuesta1
Simplemente haría la trama usando el pgfplots
paquete, que se basa pgf
pero es una interfaz más "natural" para trazar:
\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}
Necesitaba mejorar las muestras aquí, de lo contrario no hay suficientes detalles: ¡no estoy muy seguro de qué parte de la trama buscas realmente!
(Tenga en cuenta que el pgf
sistema matemático espera ángulos en grados, por lo que, como en el código generado automáticamente en la pregunta, tuve que convertir desde un valor en x
radianes).
Mover los ejes de un 'cuadro' (estilo de trama científico común) a uno central (más común para trazar fórmulas) y 'acercar' se puede lograr con relativa facilidad.
\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}
Respuesta2
Una solución sólo por diversión con 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}
Animación 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}