.png)
Necesito trazar x, -x, x^2, -x^2, sin(1/x), x*sin(1/x), x^2*sin(1/x) y sin(1/x). ). Pero las funciones que contienen sin(1/x) se ven algo mal. Cómo puedo arreglarlo. Tampoco sé cómo etiquetar las gráficas (escribiendo y=sin(1/x) al lado de la curva y=sin(1/x).
\documentclass{article}
\usepackage{pstricks-add}
\usepackage{pst-func}
\begin{document}
\begin{pspicture}*(-5,-2)(5,2)
\SpecialCoor % For label positionning
\psaxes[labels=y,Dx=\pstPI2]{->}(0,0)(-5,-2)(5,2)
\uput[-90](!PI 0){$\pi$} \uput[-90](!PI neg 0){$-\pi$} 5 \uput[-90](!PI 2 div 0){$\frac{\pi}2$}
\uput[-90](!PI 2 div neg 0){$-\frac{\pi}2$}
\psplot[linewidth=1.5pt,linecolor=blue,algebraic]{-5}{5}{sin(1/x)}
\psplot[linewidth=1.5pt,linecolor=red,algebraic]{-5}{5}{x*sin(1/x)}
\psplot[linewidth=1.5pt,linecolor=green,algebraic]{-5}{5}{x^2*sin(1/x)}
\psplot[algebraic,linestyle=dashed]{-5}{5}{x}
\psplot[algebraic,linestyle=dashed]{-5}{5}{-x}
\psplot[algebraic,linestyle=dashed]{-5}{5}{x^2}
\psplot[algebraic,linestyle=dashed]{-5}{5}{-x^2}
\end{pspicture}
\end{document}
Respuesta1
No creo que se obtenga un mejor resultado con las herramientas actuales. Lo siguiente utiliza siempre las mismas unidades para todas las funciones:
\documentclass[pstricks, margin=5pt]{standalone}
\usepackage{pstricks-add}
\begin{document}
\def\xLeft{-0.5} \def\xRight{0.5}
\psset{xunit=8,yunit=2}
\begin{pspicture}(\xLeft,-1.2)(0.55,1.3)
\psaxes[trigLabels,trigLabelBase=6,dx=2\pstRadUnit,subticks=4,ticksize=-2pt 2pt,
labelFontSize=\scriptstyle,Dy=0.5]{->}(0,0)(\xLeft,-1.1)(\xRight,1.2)
\psset{algebraic,linewidth=0.5\pslinewidth}
\psplot[linestyle=dashed]{\xLeft}{\xRight}{x}
\psplot[linestyle=dashed]{\xLeft}{\xRight}{-x}
\psplot[linestyle=dashed]{\xLeft}{\xRight}{x^2}
\psplot[linestyle=dashed]{\xLeft}{\xRight}{-x^2}
%
\psplot[linecolor=blue,plotpoints=500]{\xLeft}{-0.07}{sin(1/x)}
\psplot[linecolor=blue,VarStep,VarStepEpsilon=1.e-8]{-0.07}{-0.001}{sin(1/x)}
\psplot[linecolor=blue,VarStep,VarStepEpsilon=1.e-8]{0.001}{0.07}{sin(1/x)}
\psplot[linecolor=blue,plotpoints=500]{0.07}{\xRight}{sin(1/x)}
%
\psplot[linecolor=red,VarStep,VarStepEpsilon=1.e-9]{\xLeft}{\xRight}{x*sin(1/x)}
%
\psplot[linecolor=green,VarStep,VarStepEpsilon=1.e-9]{\xLeft}{\xRight}{x^2*sin(1/x)}
\end{pspicture}
\end{document}
Si quieres que sea similar a lo que tenía Spivak, entonces usa diferentes unidades para las diferentes curvas (desde el punto de vista matemático, está mal):
\documentclass[pstricks, margin=5pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\def\xLeft{-0.5} \def\xRight{0.5}
\psset{xunit=8,yunit=2}
\begin{pspicture}(\xLeft,-1.2)(0.55,1.3)
\psaxes[labels=x,trigLabels,trigLabelBase=6,dx=2\pstRadUnit,subticks=4,ticksize=-2pt 2pt,
labelFontSize=\scriptstyle,Dy=0.5]{->}(0,0)(\xLeft,-1.1)(\xRight,1.2)
\psset{algebraic,linewidth=0.5\pslinewidth}
%
\psplot[linecolor=blue!50,VarStep,VarStepEpsilon=1.e-8]{\xLeft}{-0.01}{sin(1/x)}
\psplot[linecolor=blue!50,VarStep,VarStepEpsilon=1.e-8]{0.01}{\xRight}{sin(1/x)}
%
\psplot[yunit=3,linecolor=red,VarStep,VarStepEpsilon=1.e-9]{\xLeft}{\xRight}{x*sin(1/x)}
\psplot[yunit=3,linestyle=dashed]{\xLeft}{\xRight}{x}
\psplot[yunit=3,linestyle=dashed]{\xLeft}{\xRight}{-x}
%
\psplot[yunit=8,linecolor=green,VarStep,VarStepEpsilon=1.e-9]{\xLeft}{\xRight}{x^2*sin(1/x)}
%
\psplot[yunit=8,linestyle=dashed]{\xLeft}{\xRight}{x^2}
\psplot[yunit=8,linestyle=dashed]{\xLeft}{\xRight}{-x^2}
\end{pspicture}
\end{document}
Respuesta2
Para trazar esas funciones correctamente, puede utilizar el VarStep
parámetro. La pstricks-add
documentación incluso tiene un ejemplo para trazar sin(1/x)
(Sección 24.4 Seno de la inversa de x).
Y debes dividir la trama para sin(1/x)
poder omitir el 0:
\documentclass[pstricks, margin=5pt]{standalone}
\usepackage{pstricks-add}
\usepackage{pst-func}
\begin{document}
\begin{pspicture}*(-5,-2.2)(5,2)
\psaxes[labels=y,Dx=\pstPI2]{->}(0,0)(-5,-2)(5,2)
\uput[-90](!PI 0){$\pi$}\uput[-90](!PI neg 0){$-\pi$}\uput[-90](!PI 2 div 0){$\frac{\pi}2$}
\uput[-90](!PI 2 div neg 0){$-\frac{\pi}2$}
%
\psset{algebraic, VarStep, VarStepEpsilon=0.000001, linejoin=1}
%
\psplot[linestyle=dashed]{-5}{5}{x}
\psplot[linestyle=dashed]{-5}{5}{-x}
\psplot[linestyle=dashed]{-5}{5}{x^2}
\psplot[linestyle=dashed]{-5}{5}{-x^2}
%
\psplot[linecolor=blue]{-5}{-0.04}{sin(1/x)}
\psplot[linecolor=blue]{0.04}{5}{sin(1/x)}
%
\psplot[linecolor=red]{-5}{5}{x*sin(1/x)}
%
\psplot[linecolor=green]{-5}{5}{x^2*sin(1/x)}
\end{pspicture}
\end{document}
Respuesta3
Es imposible dibujar estas curvas porque oscilan infinitamente hasta cero (de hecho, son los típicos ejemplos de funciones continuas y diferenciables que no se pueden dibujar). Lo mejor que podemos obtener es una gráfica en un rango que no contenga cero.
Las imágenes de Spivak muestran muy bien el comportamiento de las funciones, pero no son gráficas precisas. Además, es complicado representar todas estas funciones en la misma imagen, porque estas curvas requieren diferentes escalas.
Además, los puntos significativos no son múltiplos racionales de π, sino sus recíprocos, como 1/π (debido a que la función seno tiene un período 2π, las funciones (x^n)\sin (1/x) forman ondas en intervalos [1/( nπ),1/((n+2)π)]).
Esta es mi solución (nueva versión), usando mi paquete.xpicture
. Dibujaremos nuestras funciones en intervalos de tipo [1/(nπ),1/((n+1)π)].
Además, cambiamos la relación de aspecto entre los ejes, porque la altura de las olas llega a cero muy rápidamente.
\documentclass{standalone}
\usepackage{xpicture,ifthen}
\begin{document}
\COMPOSITIONfunction{\SINfunction}{\RECIPROCALfunction}{\F} % F(x)=sin(1/x)
\PRODUCTfunction{\IDENTITYfunction}{\F}{\G} % G(x)=x sin(1/x)
\PRODUCTfunction{\IDENTITYfunction}{\G}{\H} % H(x)=x^2sin(1/x)
% Command \grafic plots the three functions for x in [#1,#2]
\newcommand{\grafic}[2]{%
\pictcolor{blue}
\ifthenelse{\lengthtest{#1 pt > 0.064 pt}}{% the xpicture algorithm, applied to F(x)=sin x,
% fails for x<1/5\pi\approx 0.064
% because tangents are too vertical
\pictcolor{green}
\PlotFunction[12]\F{#1}{#2}
\PlotFunction[12]\F{-#2}{-#1}}{}
\pictcolor{blue}
\PlotFunction[12]\G{#1}{#2}
\PlotFunction[12]\G{-#2}{-#1}
\pictcolor{red}
\PlotFunction[12]\H{#1}{#2}
\PlotFunction[12]\H{-#2}{-#1}}
\setlength\unitlength{2cm}
\referencesystem(0,0)(5,0)(0,1) % Change aspect ratio to 5:1
\fbox{\begin{Picture}(-1.1,-1.1)(1.1,1.1)
\cartesianaxes(-1,-1)(1,1)
\linethickness{1pt}
\pictcolor{cyan}
\PlotFunction{\IDENTITYfunction}{-1}{1}
\pictcolor{gray}
\PlotFunction{\SQUAREfunction}{-1}{1}
{\changereferencesystem(0,0)(1,0)(0,-1) % This is a trick to draw -x and -x^2 without defining them.
\pictcolor{cyan}
\PlotFunction{\IDENTITYfunction}{-1}{1}
\pictcolor{gray}
\PlotFunction{\SQUAREfunction}{-1}{1}}
\newcounter{iteracio}
\setcounter{iteracio}{1}
\COPY1\maxim
\whiledo{\value{iteracio}<10}{% % Loop to print functions between 1,1/\pi,1/2\pi,...
\MULTIPLY{\value{iteracio}}\numberPI\minim
\DIVIDE1\minim\minim
\grafic{\minim}{\maxim}
\COPY\minim\maxim
\stepcounter{iteracio}}
% Add tics in x-axis at 1/\pi, 2/\pi
\DIVIDE{1}{\numberPI}{\inversePI}
\DIVIDE{1}{\numberHALFPI}{\twoinversePI}
\printxticlabel{\inversePI}{1/\pi}
\printxticlabel{\twoinversePI}{2/\pi}
\end{Picture}}
\end{document}