Mit sin(1/x) verknüpfte Funktionen grafisch darstellen

Mit sin(1/x) verknüpfte Funktionen grafisch darstellen

Ich muss x, -x, x^2, -x^2, sin(1/x), x*sin(1/x), x^2*sin(1/x) und sin(1/x) plotten. Aber die Funktionen, die sin(1/x) enthalten, sehen irgendwie schlecht aus. Wie kann ich das beheben? Ich weiß auch nicht, wie ich die Graphen beschriften soll (y=sin(1/x) neben die Kurve y=sin(1/x) schreiben).

\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}

Antwort1

Ich glaube nicht, dass man mit den aktuellen Tools ein besseres Ergebnis erzielt. Im Folgenden werden für alle Funktionen immer die gleichen Einheiten verwendet:

\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}

Bildbeschreibung hier eingeben

Wenn Sie es ähnlich wie Spivak haben möchten, verwenden Sie unterschiedliche Einheiten für die unterschiedlichen Kurven (mathematisch gesehen ist es falsch):

\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}

Bildbeschreibung hier eingeben

Antwort2

Um diese Funktionen richtig darzustellen, können Sie den VarStepParameter verwenden. In der pstricks-addDokumentation finden Sie sogar ein Beispiel zum Darstellen sin(1/x)(Abschnitt 24.4 Sinus der Inversen von x).

Und Sie müssen das Diagramm aufteilen, sin(1/x)um die 0 zu überspringen:

\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}

Bildbeschreibung hier eingeben

Antwort3

Es ist unmöglich, diese Kurven zu zeichnen, da sie unendlich gegen Null oszillieren (tatsächlich sind sie typische Beispiele für kontinuierliche und differenzierbare Funktionen, die man nicht zeichnen kann). Das Beste, was wir erhalten können, ist ein Diagramm in einem Bereich, der nicht Null enthält.

Spivaks Bilder zeigen das Verhalten der Funktionen sehr gut, aber es sind keine genauen Graphen. Außerdem ist es kompliziert, alle diese Funktionen im selben Bild darzustellen, da diese Kurven unterschiedliche Maßstäbe erfordern.

Darüber hinaus sind signifikante Punkte keine rationalen Vielfachen von π, sondern dessen Kehrwerte, beispielsweise 1/π (da die Sinusfunktion eine Periode von 2π hat, erzeugen Funktionen (x^n)\sin (1/x) Wellen in Intervallen [1/(nπ),1/((n+2)π)]).

Dies ist meine Lösung (neue Version) unter Verwendung meines Paketsxpicture. Wir werden unsere Funktionen in Intervallen vom Typ [1/(nπ),1/((n+1)π)] zeichnen.

Außerdem haben wir das Längen-/Breitenverhältnis zwischen den Achsen verändert, da die Wellenhöhe sehr schnell gegen Null geht.

\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}

Sünde 1/x und Freunde

verwandte Informationen