Zeichnen des Graphen einer komplizierten Funktion

Zeichnen des Graphen einer komplizierten Funktion

Ich bin ein Neuling im Zeichnen von Graphen mit Tikz. Ich möchte den Graphen der folgenden Funktion $f(x)=x^a\sin(x^{-b})$ für $x>0$ zeichnen. Das Ergebnis sollte genau dem Bild auf Seite 118 des Buches „Real Analysis“ von Stein & Shakarchi entsprechen.

Bildbeschreibung hier eingeben

Ich möchte hier nicht das Urheberrecht des Buches verletzen, aber ich denke, es ist bequemer, das Bild hier einzufügen. Wenn ich das Urheberrecht verletze, lassen Sie es mich bitte wissen und ich entferne das Bild gerne.

Stattdessen habe ich jedoch das folgende Bild erhalten.

Die Grafik von $f(x)=x^a\sin(x^{-b})$ für $a=1/2$ und $b=1$

Ich verwende den folgenden Code

\begin{center}

\begin{tikzpicture}

\draw[smooth, thick, domain=1/100:2*pi] plot (\x, {\x^(0.5)*sin(deg(\x^(-1)))});

\end{tikzpicture}

\end{center}

Ich habe verschiedene Werte für a und b ausprobiert, wie im Buch beschrieben, aber es funktioniert nicht. Ist die Domäne falsch oder sollte ich andere Befehle verwenden?

Vielen Dank für Ihre Hilfe.

Antwort1

Mit LuaLaTeX und dem PGFPlots-Paket könnten Sie Folgendes tun, was, glaube ich, fast das ist, was Sie wollen ...

% used PGFPlots v1.14
\RequirePackage{luatex85}
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \usepgfplotslibrary{
        groupplots,
    }
    \pgfplotsset{
        compat=1.12,
        /pgf/declare function={
            f(\a,\b,\x) = \x^(\a)*sin(deg(\x^(-1*\b)));
        },
    }
\begin{document}
    \begin{tikzpicture}
        \begin{groupplot}[
            group style={
                group size=1 by 3,
                vertical sep=2mm,
            },
            height=3cm,
            width=6cm,
            xtick=\empty,
            ytick=\empty,
            ymin=-0.5,
            ymax=0.5,
            axis lines=center,
            domain=0:0.4,
            samples=1001,
            no markers,
            /tikz/smooth,
        ]
        \nextgroupplot
            \addplot {f(2,1,x)};
            \node [anchor=north] at (axis description cs:0.5,1) {$a=2$, $b=1$};
        \nextgroupplot
            \addplot {f(1,1,x)};
            \node [anchor=north] at (axis description cs:0.5,1) {$a=1$, $b=1$};
        \nextgroupplot
            \addplot {f(0.5,1,x)};
            \node [anchor=north] at (axis description cs:0.5,1) {$a=1/2$, $b=1$};
        \end{groupplot}
    \end{tikzpicture}
\end{document}

Bild, das das Ergebnis des obigen Codes zeigt

Antwort2

Wir können x valuesdie Datenpunkte so parametrisieren, dass sie dort konzentriert werden, wo sie benötigt werden: nahe 0.

Anschließend fügen wir links eine ausgefüllte Kappe hinzu.

Ausgabe

Bildbeschreibung hier eingeben

Code

\documentclass[tikz, border=10pt]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
  [
    declare function=
    {
      t(\x) = 1/\x ;
    }
  ]
  \begin{axis}
    [
      samples=2000,
      axis lines=center,
      xtick=\empty,
      ytick=\empty,
      extra y ticks={0},
    ]
    \addplot[domain=1:60,semithick] ({t(\x)},{sqrt(t(x))*sin(deg(1/t(x)))});
    \addplot[domain=-.14:.14,semithick,samples=100, area style, fill=black] ({x^2},{x}) \closedcycle;
  \end{axis}
\end{tikzpicture}

\end{document}

verwandte Informationen