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.
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.
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}
Antwort2
Wir können x values
die 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
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}