.png)
Preciso plotar x, -x, x^2, -x^2, sin(1/x), x*sin(1/x), x^2*sin(1/x) e sin(1/x) ). Mas as funções que contêm sin(1/x) parecem ruins. Como posso consertar isso. Também não sei como rotular os gráficos (escrevendo y=sin(1/x) próximo à 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}
Responder1
Não creio que você consiga um resultado melhor com as ferramentas atuais. O seguinte usa sempre as mesmas unidades para todas as funções:
\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}
Se você quiser algo semelhante ao que Spivak tinha, use unidades diferentes para as diferentes curvas (do ponto de vista matemático, está errado):
\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}
Responder2
Para plotar essas funções corretamente, você pode usar o VarStep
parâmetro. A pstricks-add
documentação ainda tem um exemplo de plotagem sin(1/x)
(Seção 24.4 Seno do inverso de x).
E você deve dividir o gráfico sin(1/x)
para pular o 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}
Responder3
É impossível desenhar essas curvas porque elas oscilam infinitamente até zero (na verdade, são exemplos típicos de funções contínuas e diferenciáveis que não podem ser desenhadas). O melhor que podemos obter é um gráfico em um intervalo que não contém zero.
As imagens de Spivak mostram muito bem o comportamento das funções, mas não são gráficos precisos. Além disso, é complicado representar todas estas funções na mesma imagem, porque estas curvas requerem escalas diferentes.
Além disso, pontos significativos não são múltiplos racionais de π, mas seus recíprocos, como 1/π (porque a função seno tem período 2π, funções (x^n)\sin (1/x) fazem ondas em intervalos [1/( nπ),1/((n+2)π)]).
Esta é a minha solução (nova versão), usando meu pacotexpicture
. Desenharemos nossas funções em intervalos do tipo [1/(nπ),1/((n+1)π)].
Além disso, alteramos a proporção entre os eixos, pois a altura das ondas chega a zero muito rapidamente.
\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}