Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 6

23 Apr '14, 08:52

Henri's gravatar image

Henri
15.7k133943

# Nur `pgfplots` Mit einigen verschachtelten `\foreach` kann man leicht summieren. \documentclass{article} \pagestyle{empty}% for cropping \usepackage{mathtools,pgfplots} \begin{document} \begin{align*} f(x) &= \begin{cases*} -1 & f\"ur $-\frac12<x<0$ \\ 1 & f\"ur $0\le x<\frac12$ \\ \end{cases*} \\ S_N(f)(x) &= \sum_{m=1}^N \frac4\pi \frac{\sin((2m-1)\pi x)}{2m-1} \end{align*} \begin{tikzpicture} \begin{axis}[ no markers, samples=100, smooth, domain=-1.2:1.4, axis lines=middle, width=\linewidth ] \pgfplotsinvokeforeach{1,...,4}{ \xdef\sn{} \foreach \m in {1,...,#1} { \xdef\sn{\sn+4/pi*sin(deg((2*\m-1)*pi*x))/(2*\m-1)} } \expandafter\addplot\expandafter{\sn}; \addlegendentry{$S_{#1}(f)(x)$}; } \begin{scope}[ every node/.style = {draw,fill=blue,circle,inner sep=1pt} ] \draw (axis cs:0,1) node[label={[blue]above right:A}] {} -- (axis cs:0.5,1) node[label={[blue]above right:B}] {}; \draw (axis cs:0,-1) node[label={[blue]above right:C}] {} -- (axis cs:-0.5,-1) node[label={[blue]above right:E}] {}; \end{scope} \end{axis} \end{tikzpicture} \end{document} > ![alt text][1] # `pgfplots` mit `gnuplot` Dieses muss mit `--shell-escape` gesetzt werden. Die Ausgabe wird nicht nochmal gezeigt, da sie gleich aussieht. \documentclass{article} \pagestyle{empty}% for cropping \usepackage{mathtools,pgfplots} \begin{document} \begin{align*} f(x) &= \begin{cases*} -1 & f\"ur $-\frac12<x<0$ \\ 1 & f\"ur $0\le x<\frac12$ \\ \end{cases*} \\ S_N(f)(x) &= \sum_{m=1}^N \frac4\pi \frac{\sin((2m-1)\pi x)}{2m-1} \end{align*} \begin{tikzpicture} \begin{axis}[ no markers, smooth, axis lines=middle, width=\linewidth ] \pgfplotsinvokeforeach{1,...,4}{ \addplot gnuplot[raw gnuplot] {plot[-1.2:1.4] sum[m=1:#1] (4/pi*sin((2*m-1)*pi*x)/(2*m-1))}; } \end{axis} \end{tikzpicture} \end{document} # Anwendungsfall Mit dem Paket `subcaption` kann man leicht mehrere Bilder nebeneinander anordnen und wenn man die `\foreach`-Schleife außen rum baut, spart man sich noch viel Schreibarbeit. \documentclass{article} \pagestyle{empty}% for cropping \usepackage{mathtools,pgfplots,subcaption} \begin{document} \begin{align*} f(x) &= \begin{cases*} -1 & f\"ur $-\frac12<x<0$ \\ 1 & f\"ur $0\le x<\frac12$ \\ \end{cases*} \\ S_N(f)(x) &= \sum_{m=1}^N \frac4\pi \frac{\sin((2m-1)\pi x)}{2m-1} \end{align*} \begin{figure} \centering \foreach \N in {1,...,3} { \begin{subfigure}{0.49\textwidth} \centering \begin{tikzpicture} \begin{axis}[ no markers, samples=100, smooth, domain=-1.2:1.4, axis lines=middle, width=\linewidth, ] \xdef\sn{} \foreach \m in {1,...,\N} { \xdef\sn{\sn+4/pi*sin(deg((2*\m-1)*pi*x))/(2*\m-1)} } \expandafter\addplot\expandafter{\sn}; \begin{scope}[ every node/.style = {draw,fill=blue,circle,inner sep=1pt} ] \draw (axis cs:0,1) node {} -- (axis cs:0.5,1) node {}; \draw (axis cs:0,-1) node {} -- (axis cs:-0.5,-1) node {}; \end{scope} \end{axis} \end{tikzpicture} \caption{$S_{\N}(f)(x)$} \end{subfigure} } \caption{Entwicklung in Partialsummen.} \end{figure} \end{document} > ![alt text][2] --- # Nur `pgfplots` Zum Spaß mal für N = 1,2,3,...,100. Laut dem Unix-Tool `time` dauert der Aufruf time pdflatex plot.tex bei folgenden Rechner-Spezifikationen Model Identifier: iMac13,1 Processor Name: Intel Core i5 Processor Speed: 2.7 GHz Number of Processors: 1 Total Number of Cores: 4 Memory: 8 GB stolze 14 Minuten und 51 Sekunden, sieht aber cool aus :-) > ![alt text][2] text][3] [1]: http://texwelt.de/wissen/upfiles/r_2.png [2]: http://texwelt.de/wissen/upfiles/r_4.png [3]: http://texwelt.de/wissen/upfiles/r_3.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

22 Apr '14, 21:38

Henri's gravatar image

Henri
15.7k133943

# Nur `pgfplots` Mit einigen verschachtelten `\foreach` kann man leicht summieren. \documentclass{article} \pagestyle{empty}% for cropping \usepackage{mathtools,pgfplots} \begin{document} \begin{align*} f(x) &= \begin{cases*} -1 & f\"ur $-\frac12<x<0$ \\ 1 & f\"ur $0\le x<\frac12$ \\ \end{cases*} \\ S_N(f)(x) &= \sum_{m=1}^N \frac4\pi \frac{4 \sin((2m-1)\pi \frac{\sin((2m-1)\pi x)}{2m-1} \end{align*} \begin{tikzpicture} \begin{axis}[ no markers, samples=100, smooth, domain=-1.2:1.4, axis lines=middle, width=\linewidth ] \pgfplotsinvokeforeach{1,...,4}{ \xdef\sn{} \foreach \m in {1,...,#1} { \xdef\sn{\sn+4/pi*sin(deg((2*\m-1)*pi*x))/(2*\m-1)} } \expandafter\addplot\expandafter{\sn}; \addlegendentry{$S_{#1}(f)(x)$}; } \begin{scope}[ every node/.style = {draw,fill=blue,circle,inner sep=1pt} ] \draw (axis cs:0,1) node[label={[blue]above right:A}] {} -- (axis cs:0.5,1) node[label={[blue]above right:B}] {}; \draw (axis cs:0,-1) node[label={[blue]above right:C}] {} -- (axis cs:-0.5,-1) node[label={[blue]above right:E}] {}; \end{scope} \end{axis} \end{tikzpicture} \end{document} > ![alt text][1] # `pgfplots` mit `gnuplot` Dieses muss mit `--shell-escape` gesetzt werden. Die Ausgabe wird nicht nochmal gezeigt, da sie gleich aussieht. \documentclass{article} \pagestyle{empty}% for cropping \usepackage{mathtools,pgfplots} \begin{document} \begin{align*} f(x) &= \begin{cases*} -1 & f\"ur $-\frac12<x<0$ \\ 1 & f\"ur $0\le x<\frac12$ \\ \end{cases*} \\ S_N(f)(x) &= \sum_{m=1}^N \frac4\pi \frac{\sin((2m-1)\pi x)}{2m-1} \end{align*} \begin{tikzpicture} \begin{axis}[ no markers, smooth, axis lines=middle, width=\linewidth ] \pgfplotsinvokeforeach{1,...,4}{ \addplot gnuplot[raw gnuplot] {plot[-1.2:1.4] sum[m=1:#1] (4/pi*sin((2*m-1)*pi*x)/(2*m-1))}; } \end{axis} \end{tikzpicture} \end{document} --- # Nur `pgfplots` Zum Spaß mal für N = 1,2,3,...,100. Laut dem Unix-Tool `time` dauert der Aufruf time pdflatex plot.tex bei folgenden Rechner-Spezifikationen Model Identifier: iMac13,1 Processor Name: Intel Core i5 Processor Speed: 2.7 GHz Number of Processors: 1 Total Number of Cores: 4 Memory: 8 GB stolze 14 Minuten und 51 Sekunden, sieht aber cool aus :-) > ![alt text][2] [1]: http://texwelt.de/wissen/upfiles/r_2.png [2]: http://texwelt.de/wissen/upfiles/r_3.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

22 Apr '14, 21:25

Henri's gravatar image

Henri
15.7k133943

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

22 Apr '14, 21:22

Henri's gravatar image

Henri
15.7k133943

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

22 Apr '14, 21:01

Henri's gravatar image

Henri
15.7k133943

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

22 Apr '14, 20:56

Henri's gravatar image

Henri
15.7k133943