diff --git a/Makefile b/Makefile index f0a78fa..3bd8457 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ BASENAME=scientificcomputing-script -SUBDIRS=designpattern statistics bootstrap regression likelihood pointprocesses +SUBDIRS=plotting designpattern statistics bootstrap regression likelihood pointprocesses # programming SUBTEXS=$(foreach subd, $(SUBDIRS), $(subd)/lecture/$(subd).tex) diff --git a/bootstrap/lecture/bootstrap.tex b/bootstrap/lecture/bootstrap.tex index 478316e..0cf4cb0 100644 --- a/bootstrap/lecture/bootstrap.tex +++ b/bootstrap/lecture/bootstrap.tex @@ -16,9 +16,8 @@ aus der Stichprobe. Das hat mehrere Vorteile: \includegraphics[width=0.8\textwidth]{2012-10-29_16-26-05_771}\\[2ex] \includegraphics[width=0.8\textwidth]{2012-10-29_16-41-39_523}\\[2ex] \includegraphics[width=0.8\textwidth]{2012-10-29_16-29-35_312} - \caption{\label{statisticalpopulationfig}\tr{Why can we only measure a sample of the - population?}{Warum k\"onnen wir nur eine Stichprobe der - Grundgesamtheit messen?}} + \titlecaption{\label{statisticalpopulationfig} Warum k\"onnen wir + nur eine Stichprobe der Grundgesamtheit messen?}{} \end{figure} Zur Erinnerung: In der Statistik interessieren wir uns f\"ur @@ -43,8 +42,8 @@ die ``Stichprobenverteilung'' (sampling distribution, \includegraphics[height=0.2\textheight]{srs1}\\[2ex] \includegraphics[height=0.2\textheight]{srs2}\\[2ex] \includegraphics[height=0.2\textheight]{srs3} - \caption{\label{bootstrapsamplingdistributionfig}Bootstrap der - Stichprobenvertielung (a) Von der Grundgesamtheit (population) mit + \titlecaption{\label{bootstrapsamplingdistributionfig}Bootstrap der + Stichprobenverteilung}{(a) Von der Grundgesamtheit (population) mit unbekanntem Parameter (z.B. Mittelwert $\mu$) zieht man Stichproben (SRS: simple random samples). Die Statistik (hier Bestimmung von $\bar x$) kann f\"ur jede Stichprobe berechnet @@ -99,8 +98,8 @@ der gemessene Mittelwert um den Populationsmittelwert streut. \begin{figure}[tp] \includegraphics[width=1\textwidth]{bootstrapsem} - \caption{\label{bootstrapsemfig}Bootstrap des Standardfehlers des - Mittelwertes. Die --- normalerweise unbekannte --- + \titlecaption{\label{bootstrapsemfig}Bootstrap des Standardfehlers des + Mittelwertes.}{Die --- normalerweise unbekannte --- Stichprobenverteilung des Mittelwerts (rot) ist um den Populationsmittelwert bei $\mu=0$ zentriert. Die Bootstrap-Verteilung (blau), die durch Resampling aus einer @@ -154,8 +153,8 @@ generieren. Alle anderen Eigenschaften der Daten bleiben erhalten. \begin{figure}[tp] \includegraphics[width=1\textwidth]{permutecorrelation} - \caption{\label{permutecorrelationfig}Permutationstest f\"ur - Korrelationen. Der Korrelationskoeffizient eines Datensatzes mit + \titlecaption{\label{permutecorrelationfig}Permutationstest f\"ur + Korrelationen.}{Der Korrelationskoeffizient eines Datensatzes mit 200 Datenpaaren ist $\rho=0.21$. Die Nullhypothesenverteilung der aus den permutierten, unkorrelierten Datens\"atzen berechneten Korrelationskoeffizienten ergibt die gelbe Verteilung, die um Null diff --git a/designpattern/lecture/designpattern.tex b/designpattern/lecture/designpattern.tex index e9d94d7..a13c290 100644 --- a/designpattern/lecture/designpattern.tex +++ b/designpattern/lecture/designpattern.tex @@ -9,11 +9,11 @@ einige dieser ``Design pattern'' zusammen. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{for Schleifen \"uber Vektoren} -Manchmal m\"ochte man doch mit einer for-Schleife \"uber einen Vektor iterieren. -\begin{lstlisting} -x = [2:3:20]; % irgendein Vektor +Grundlegend ist das Iterieren \"uber den Inhalt eines Vektors mit einer \code{for}-Schleife: +\begin{lstlisting}[caption={for-Schleife mit Indexen \"uber einen Vektor}] +x = [2:3:20]; % irgendein Vektor for i=1:length(x) % Mit der for-Schleife "loopen" wir ueber den Vektor - i % das ist der Index der die Elemente des Vektors nacheinander indiziert. + i % das ist der Index, der die Elemente des Vektors indiziert. x(i) % das ist der Wert des i-ten Elements des Vektors x. a = x(i); % die Variable a bekommt den Wert des i-ten Elements des Vektors x zugewiesen. % Benutze den Wert: @@ -24,8 +24,8 @@ end Wenn in der Schleife das Ergebnis in einen Vektor gespeichert werden soll, sollten wir vor der Schleife schon einen Vektor f\"ur die Ergebnisse erstellen: -\begin{lstlisting} -x = [2:3:20]; % irgendein Vektor +\begin{lstlisting}[caption={for-Schleife zum Schreiben eines Vektors}] +x = [1.2 2.3 2.6 3.1]; % irgendein Vektor y = zeros(length(x),1); % Platz fuer die Ergebnisse, genauso viele wie Loops der Schleife for i=1:length(x) % Schreibe den Rueckgabewert der Funktion get_something an die i-te @@ -39,8 +39,8 @@ mean(y) Die Berechnungen in der Schleife k\"onnen statt einer Zahl auch einen Vektor zur\"uckgeben. Wenn die L\"ange diese Vektors bekannt ist, dann kann vorher eine entsprechend gro{\ss}e Matrix angelegt werden: -\begin{lstlisting} -x = [2:3:20]; % irgendein Vektor +\begin{lstlisting}[caption={for-Schleife zum Schreiben von Zeilen einer Matrix}] +x = [2:3:20]; % irgendein Vektor y = zeros(length(x),10); % Platz fuer die Ergebnisse for i=1:length(x) % Schreibe den Rueckgabewert der Funktion get_something - jetzt ein @@ -52,12 +52,11 @@ end mean(y, 1) \end{lstlisting} - Alternativ k\"onnen die in der Schleife erzeugten Vektoren zu einem einzigen, durchgehenden Vektor zusammengestellt werden: -\begin{lstlisting} +\begin{lstlisting}[caption={for-Schleife zum Aneinanderh\"angen von Vektoren}] x = [2:3:20]; % irgendein Vektor -y = []; % Leerer Vektor fuer die Ergebnisse +y = []; % Leerer Vektor fuer die Ergebnisse for i=1:length(x) % Die Funktion get_something gibt einen Vektor zurueck: z = get_something( x(i) ); @@ -77,7 +76,7 @@ und Standardabweichungen (auch Skalierungen) zur\"uck. Multiplikation mit einem Faktor skaliert die Standardabweichung und Addition einer Zahl verschiebt den Mittelwert. -\begin{lstlisting} +\begin{lstlisting}[caption={Skalierung von Zufallszahlen}] % 100 random numbers draw from a Gaussian distribution with mean 0 and standard deviation 1. x = randn(100, 1); @@ -88,7 +87,7 @@ y = randn(100, 1)*sigma + mu; \end{lstlisting} Das gleiche Prinzip ist manchmal auch sinnvoll f\"ur \code{zeros} oder \code{ones}: -\begin{lstlisting} +\begin{lstlisting}[caption={Skalierung von zeros und ones}] x = -1:0.01:2; % Vektor mit x-Werten plot(x, exp(-x.*x)); % Plotte f\"ur die gleichen x-Werte eine Linie mit y=0.8: @@ -115,7 +114,7 @@ Werte des $y$-Vektors k\"onnen dann gegen die Werte des $x$-Vektors geplottet werden. Folgende Programme berechnen und plotten die Funktion $f(x)=e^{-x^2}$: -\begin{lstlisting} +\begin{lstlisting}[caption={Plotten einer mathematischen Funktion --- sehr ausf\"uhrlich}] xmin = -1.0; xmax = 2.0; dx = 0.01; % Schrittweite @@ -124,13 +123,13 @@ y = exp(-x.*x); % keine for Schleife! '.*' fuer elementweises multiplizieren plot(x, y); \end{lstlisting} -\begin{lstlisting} +\begin{lstlisting}[caption={Plotten einer mathematischen Funktion --- k\"urzer}] x = -1:0.01:2; % Vektor mit x-Werten y = exp(-x.*x); % keine for Schleife! '.*' fuer elementweises multiplizieren plot(x, y); \end{lstlisting} -\begin{lstlisting} +\begin{lstlisting}[caption={Plotten einer mathematischen Funktion --- sehr kompakt}] x = -1:0.01:2; % Vektor mit x-Werten plot(x, exp(-x.*x)); \end{lstlisting} @@ -143,25 +142,25 @@ mit anderen Histogrammen oder mit theoretischen Wahrscheinlichkeitsverteilungen werden. Die \code{histogram} Funktion macht das mit den entsprechenden Parametern automatisch: -\begin{lstlisting} +\begin{lstlisting}[caption={Probability-density-function mit der histogram-Funktion}] x = randn(100, 1); % irgendwelche reellwertige Daten histogram(x, 'Normalization', 'pdf'); \end{lstlisting} -\begin{lstlisting} +\begin{lstlisting}[caption={Probability mit der histogram-Funktion}] x = randi(6, 100, 1); % irgendwelche integer Daten histogram(x, 'Normalization', 'probability'); \end{lstlisting} So geht es aber auch: -\begin{lstlisting} +\begin{lstlisting}[caption={Probability-density-function mit der hist- und bar-Funktion}] x = randn(100, 1); % irgendwelche reellwertige Daten [h, b] = hist(x); % Histogram berechnen h = h/sum(h)/(b(2)-b(1)); % normieren zu einer Wahrscheinlichkeitsdichte bar(b, h); % und plotten. \end{lstlisting} -\begin{lstlisting} +\begin{lstlisting}[caption={Probability mit der hist- und bar-Funktion}] x = randi(6, 100, 1); % irgendwelche integer Daten [h, b] = hist(x); % Histogram berechnen h = h/sum(h); % normieren zu Wahrscheinlichkeiten diff --git a/header.tex b/header.tex index 0dab30c..e1a16fe 100644 --- a/header.tex +++ b/header.tex @@ -10,13 +10,10 @@ \newcommand{\tr}[2]{#2} % de \usepackage[german]{babel} -%%%%% packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\usepackage{pslatex} % nice font for pdf file -\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref} - %%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage[left=25mm,right=25mm,top=20mm,bottom=30mm]{geometry} \setcounter{tocdepth}{1} +\usepackage{pslatex} % nice font for pdf file %%%%% section style %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage[sf,bf,it,big,clearempty]{titlesec} @@ -55,7 +52,7 @@ % spacing for floats: \setlength{\floatsep}{12pt plus 2pt minus 2pt} -\setlength{\textfloatsep}{20pt plus 4pt minus 2pt} +\setlength{\textfloatsep}{10pt plus 4pt minus 2pt} \setlength{\intextsep}{12pt plus 2pt minus 2pt} % spacing for a floating page: @@ -66,11 +63,12 @@ \makeatother % rules for floats: -\newcommand{\topfigrule}{\vspace*{10pt}{\hrule height0.4pt}\vspace*{-10.4pt}} -\newcommand{\bottomfigrule}{\vspace*{-10.4pt}{\hrule height0.4pt}\vspace*{10pt}} +%\newcommand{\topfigrule}{\vspace*{10pt}{\hrule height0.4pt}\vspace*{-10.4pt}} +%\newcommand{\bottomfigrule}{\vspace*{-10.4pt}{\hrule height0.4pt}\vspace*{10pt}} % captions: -\usepackage[format=plain,singlelinecheck=off,labelfont=bf,font={small,sf}]{caption} +\usepackage[singlelinecheck=off,labelfont=bf,font={small,sf}]{caption} +\newcommand{\titlecaption}[2]{\caption[#1]{\textbf{#1} #2}} % put caption on separate float: \newcommand{\breakfloat}{\end{figure}\begin{figure}[t]} @@ -193,7 +191,7 @@ % % Innerhalb der exercise Umgebung ist enumerate umdefiniert, um (a), (b), (c), .. zu erzeugen. \usepackage{ifthen} -\usepackage{framed} +\usepackage{mdframed} \newcounter{maxexercise} \setcounter{maxexercise}{10000} % show listings up to exercise maxexercise \newcounter{exercise}[chapter] @@ -204,14 +202,65 @@ \newcommand{\exerciseoutput}{#2}% \setlength{\fboxsep}{2mm}% \newcommand{\saveenumi}{\theenumi}\renewcommand{\labelenumi}{(\alph{enumi})}% - \renewcommand{\FrameCommand}{\colorbox{yellow!15}}% - \MakeFramed{\advance\hsize-\width \FrameRestore}% \stepcounter{exercise}% + \begin{mdframed}[linewidth=0pt,backgroundcolor=yellow!15]% \noindent\textbf{\tr{Exercise}{\"Ubung} \thechapter.\theexercise:}\newline}% {\ifthenelse{\equal{\exercisesource}{}}{}% {\ifthenelse{\value{exercise}>\value{maxexercise}}{}% {\lstinputlisting[belowskip=0pt]{\codepath\exercisesource}% \ifthenelse{\equal{\exerciseoutput}{}}{}% - {\addtocounter{lstlisting}{-1}\lstinputlisting[language={},title={\textbf{\tr{Output}{Ausgabe}:}},belowskip=0pt]{\codepath\exerciseoutput}}}}% - \endMakeFramed% + {\addtocounter{lstlisting}{-1}\lstinputlisting[language={},title={\textbf{\tr{Output}{Ausgabe}:}},nolol=true,belowskip=0pt]{\codepath\exerciseoutput}}}}% + \end{mdframed}% \renewcommand{\theenumi}{\saveenumi}} + + +%%%%% info box environment: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% usage: +% +% \begin{ibox}[tp]{Python} +% The cooler programming language. +% \end{exercise} +% +% results in a nicely colored float: +% +% Info Box 1: Python +% The cooler programming language. +\usepackage[within=chapter]{newfloat} +\DeclareFloatingEnvironment[ + fileextension=lob, + listname={\tr{Info Boxes}{Infoboxen}}, + name={Info Box}, + placement=t +]{iboxf} +\newenvironment{ibox}[2][tp] +{\SetupFloatingEnvironment{iboxf}{placement=#1}% + \begin{iboxf}% + \stepcounter{iboxf}% + \captionof{iboxf}{#2}% + \begin{mdframed}[linecolor=yellow!40,linewidth=1ex,% + backgroundcolor=yellow!15,font={\sffamily},% + frametitle={Info Box \theiboxf: #2},frametitlefont={\large\sffamily\itshape\bfseries},% + frametitlebackgroundcolor=yellow!40]}% +{\end{mdframed}% + \end{iboxf}} + + +%%%%% important environment: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% usage: +% +% \begin{important} +% Something you should really rememeber. +% \end{important} +% +% results in a nicely colored box with the text inside. +\newenvironment{important} +{\begin{mdframed}[linecolor=blue!40,linewidth=1ex,% + backgroundcolor=blue!10,font={\sffamily}]}% +{\end{mdframed}} + + +%%%%% hyperref %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[bookmarks=true,bookmarksopen=true,% + pdfpagemode=UseNone,pdfstartview=FitH,% + breaklinks=true,colorlinks=true,% + citecolor=blue!50!black,linkcolor=red!70!black,urlcolor=blue!50!black]{hyperref} diff --git a/likelihood/lecture/likelihood.tex b/likelihood/lecture/likelihood.tex index d806e7f..d5a746c 100644 --- a/likelihood/lecture/likelihood.tex +++ b/likelihood/lecture/likelihood.tex @@ -72,8 +72,8 @@ $\theta$ maximiert dessen Likelhood? \begin{figure}[t] \includegraphics[width=1\textwidth]{mlemean} - \caption{\label{mlemeanfig} Maximum Likelihood Estimation des - Mittelwerts. Oben: Die Daten zusammen mit drei m\"oglichen + \titlecaption{\label{mlemeanfig} Maximum Likelihood Estimation des + Mittelwerts.}{Oben: Die Daten zusammen mit drei m\"oglichen Normalverteilungen mit unterschiedlichen Mittelwerten (Pfeile) aus denen die Daten stammen k\"onnten. Unteln links: Die Likelihood in Abh\"angigkeit des Mittelwerts als Parameter der @@ -163,8 +163,8 @@ anderen Verteilungen m\"usste man die Log-Likelihood entsprechend \begin{figure}[t] \includegraphics[width=1\textwidth]{mlepropline} - \caption{\label{mleproplinefig} Maximum-Likelihood Sch\"atzung der - Steigung einer Ursprungsgeraden.} + \titlecaption{\label{mleproplinefig} Maximum-Likelihood Sch\"atzung der + Steigung einer Ursprungsgeraden.}{} \end{figure} @@ -227,8 +227,8 @@ Klassenbreite ab (\figref{mlepdffig}). \begin{figure}[t] \includegraphics[width=1\textwidth]{mlepdf} - \caption{\label{mlepdffig} Maximum-Likelihood Sch\"atzung einer - Wahrscheinlichkeitsdichtefunktion. Links: die 100 Datenpunkte, die + \titlecaption{\label{mlepdffig} Maximum-Likelihood Sch\"atzung einer + Wahrscheinlichkeitsdichtefunktion.}{Links: die 100 Datenpunkte, die aus der Gammaverteilung 2. Ordnung (rot) gezogen worden sind. Der Maximum-Likelihood-Fit ist orange dargestellt. Rechts: das normierte Histogramm der Daten zusammen mit dem \"uber Minimierung @@ -263,9 +263,9 @@ als Funktion eines Stimulusparameters ist dann die ``Tuning-curve'' \begin{figure}[tp] \includegraphics[width=1\textwidth]{mlecoding} - \caption{\label{mlecodingfig} Maximum Likelihood Sch\"atzung eines + \titlecaption{\label{mlecodingfig} Maximum Likelihood Sch\"atzung eines Stimulusparameters aus der Aktivit\"at einer Population von - Neuronen. Oben: Die Tuning-Kurve eines einzelnen Neurons in + Neuronen.}{Oben: Die Tuning-Kurve eines einzelnen Neurons in Abh\"angigkeit von der Orientierung eines Balkens. Der Stimulus der die st\"akste Aktivit\"at in diesem Neuron hervorruft ist ein senkrechter Balken (Pfeil, $\phi_i=90$\,\degree. Die rote Fl\"ache diff --git a/plotting/lecture/plotting.tex b/plotting/lecture/plotting.tex index 1f4df06..d64c5b9 100644 --- a/plotting/lecture/plotting.tex +++ b/plotting/lecture/plotting.tex @@ -9,8 +9,8 @@ unterstreichen. \begin{figure}[hb!] \includegraphics[width=0.9\columnwidth]{convincing} - \caption{Die Folgen schlecht annotierter - Plots. \url{www.xkcd.com}} \label{xkcdplotting} + \titlecaption{Die Folgen schlecht annotierter + Plots.}{\url{www.xkcd.com}} \label{xkcdplotting} \end{figure} \subsection{Was soll ein Plot leisten?} @@ -40,8 +40,8 @@ Korrektheit besteht. \begin{figure} \includegraphics[width=0.35\columnwidth]{images/one_d_problem_c} - \caption{\textbf{Comicartige Darstellung.} Ist f\"ur die Darstellung - wissenschaftlicher Daten nicht geeignet. }\label{comicexamplefig} + \titlecaption{Comicartige Darstellung.}{Ist f\"ur die Darstellung + wissenschaftlicher Daten nicht geeignet.}\label{comicexamplefig} \end{figure} \subsection{Beispiele suggestiver oder fehlleitender Darstellungen} @@ -69,8 +69,8 @@ vorgehen um Unterschiede nicht zu \"uberproportional zu verzerren \begin{minipage}[t]{0.4\textwidth} \includegraphics[width=\textwidth]{images/sample_pie} \end{minipage} - \caption{\textbf{Perspektivische Verzerrungen beeinlfu{\ss}t die - Gr\"o{\ss}enwahrnehmung.} Durch die geeignete Wahl der + \titlecaption{Perspektivische Verzerrungen beeinlfu{\ss}t die + Gr\"o{\ss}enwahrnehmung.}{Durch die geeignete Wahl der Perspektive erscheint das hervorgehobene Segment (C) des Tortendiagramms als mindestens gleichwertig zum Segment A. Die 2-dimensionale Darstellung rechts macht deutlich, dass die @@ -89,8 +89,8 @@ vorgehen um Unterschiede nicht zu \"uberproportional zu verzerren \begin{minipage}[t]{0.3\textwidth} \includegraphics[width=\textwidth]{images/line_graph1_4} \end{minipage} - \caption{\textbf{Wahl der Zeichenfl\"ache kann den visuellen - Eindruck beeinflu{\ss}en.} Alle drei Plots zeigen die gleichen + \titlecaption{Wahl der Zeichenfl\"ache kann den visuellen + Eindruck beeinflu{\ss}en.}{Alle drei Plots zeigen die gleichen Daten allein die Skalierung der Zeichenfl\"ache unterscheidet sich und beeinflusst, wie stark der Zusammenhang zwischen den Gr\"o{\ss}en auf der x- und y-Achse wahrgenommen wird. Quelle: @@ -107,8 +107,8 @@ vorgehen um Unterschiede nicht zu \"uberproportional zu verzerren \begin{minipage}[t]{0.3\textwidth} \includegraphics[width=0.8\textwidth]{images/properly_scaled_graph} \end{minipage} - \caption{\textbf{Die Skalierung von Symbolen kann problematisch - sein.} In diesen Graphen werden Symbole eingesetzt um zwei + \titlecaption{Die Skalierung von Symbolen kann problematisch + sein.} {In diesen Graphen werden Symbole eingesetzt um zwei Kategorien zu vergleichen. Im linken Fall wird das einzelne Symbol proportionsgerecht skaliert. Dies scheint auf den ersten Blick richtig f\"uhrt aber dazu, dass das Symbol der Kategorie B nicht diff --git a/pointprocesses/lecture/pointprocesses.tex b/pointprocesses/lecture/pointprocesses.tex index 79fe905..b889c8e 100644 --- a/pointprocesses/lecture/pointprocesses.tex +++ b/pointprocesses/lecture/pointprocesses.tex @@ -4,12 +4,12 @@ \begin{figure}[t] \includegraphics[width=1\textwidth]{rasterexamples} - \caption{\label{rasterexamplesfig}Raster-Plot von jeweils 10 - Realisierungen eines station\"arenen Punktprozesses (homogener - Poisson Prozess mit Rate $\lambda=20$\;Hz, links) und eines - nicht-station\"aren Punktprozesses (perfect integrate-and-fire - Neuron getrieben mit Ohrnstein-Uhlenbeck Rauschen mit - Zeitkonstante $\tau=100$\,ms, rechts).} + \titlecaption{\label{rasterexamplesfig}Raster-Plot.}{Raster-Plot von + jeweils 10 Realisierungen eines station\"arenen Punktprozesses + (homogener Poisson Prozess mit Rate $\lambda=20$\;Hz, links) und + eines nicht-station\"aren Punktprozesses (perfect + integrate-and-fire Neuron getrieben mit Ohrnstein-Uhlenbeck + Rauschen mit Zeitkonstante $\tau=100$\,ms, rechts).} \end{figure} Aktionspotentiale (``Spikes'') sind die Tr\"ager der Information in @@ -33,10 +33,10 @@ sogenannten Punktprozessen. \begin{figure}[t] \texpicture{pointprocessscetchB} - \caption{\label{pointprocessscetchfig}Ein Punktprozess ist eine - Abfolge von Zeitpunkten $t_i$ die auch durch die Intervalle - $T_i=t_{i+1}-t_i$ oder die Anzahl der Ereignisse $n_i$ beschrieben - werden kann. } + \titlecaption{\label{pointprocessscetchfig} Statistik von + Punktprozessesen.}{Ein Punktprozess ist eine Abfolge von + Zeitpunkten $t_i$ die auch durch die Intervalle $T_i=t_{i+1}-t_i$ + oder die Anzahl der Ereignisse $n_i$ beschrieben werden kann. } \end{figure} Ein zeitlicher Punktprozess ist ein stochastischer Prozess, der eine @@ -83,7 +83,7 @@ Gr\"o{\ss}en beschrieben werden. \begin{figure}[t] \includegraphics[width=1\textwidth]{isihexamples}\hfill - \caption{\label{isihexamplesfig}Interspikeintervall Histogramme der in + \titlecaption{\label{isihexamplesfig}Interspikeintervall Histogramme}{der in \figref{rasterexamplesfig} gezeigten Spikes.} \end{figure} @@ -111,8 +111,8 @@ sichtbar. \begin{figure}[t] \includegraphics[width=1\textwidth]{returnmapexamples} \includegraphics[width=1\textwidth]{serialcorrexamples} - \caption{\label{returnmapfig}Interspikeintervall return maps und - serielle Korrelationen zwischen aufeinander folgenden Intervallen + \titlecaption{\label{returnmapfig}Interspikeintervall return maps und + serielle Korrelationen}{zwischen aufeinander folgenden Intervallen im Abstand des Lags $k$.} \end{figure} @@ -132,7 +132,7 @@ Intervalls mit sich selber). % \begin{figure}[t] % \includegraphics[width=0.48\textwidth]{poissoncounthist100hz10ms}\hfill % \includegraphics[width=0.48\textwidth]{poissoncounthist100hz100ms} -% \caption{\label{countstatsfig}Count Statistik.} +% \titlecaption{\label{countstatsfig}Count Statistik.}{} % \end{figure} Die Anzahl der Ereignisse (Spikes) $n_i$ in Zeifenstern $i$ der @@ -157,7 +157,7 @@ Insbesondere ist die mittlere Rate der Ereignisse $r$ (``Spikes pro Zeit'', Feue % LIF $I=10$, $\tau_{adapt}=100$\,ms:\\ % \includegraphics[width=1\textwidth]{lifadaptfano10-100ms} % \end{minipage} -% \caption{\label{fanofig}Fano factor.} +% \titlecaption{\label{fanofig}Fano factor.}{} % \end{figure} @@ -179,15 +179,15 @@ Zeit ab: $\lambda = \lambda(t)$. \begin{figure}[t] \includegraphics[width=1\textwidth]{poissonraster100hz} - \caption{\label{hompoissonfig}Rasterplot von Spikes eines homogenen - Poisson Prozesses mit $\lambda=100$\,Hz.} + \titlecaption{\label{hompoissonfig}Rasterplot von Spikes eines homogenen + Poisson Prozesses mit $\lambda=100$\,Hz.}{} \end{figure} \begin{figure}[t] \includegraphics[width=0.45\textwidth]{poissonisihexp20hz}\hfill \includegraphics[width=0.45\textwidth]{poissonisihexp100hz} - \caption{\label{hompoissonisihfig}Interspikeintervallverteilungen - zweier Poissonprozesse.} + \titlecaption{\label{hompoissonisihfig}Interspikeintervallverteilungen + zweier Poissonprozesse.}{} \end{figure} Der homogne Poissonprozess hat folgende Eigenschaften: @@ -209,7 +209,7 @@ Der homogne Poissonprozess hat folgende Eigenschaften: \begin{figure}[t] \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz10ms}\hfill \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz100ms} - \caption{\label{hompoissoncountfig}Z\"ahlstatistik von Poisson Spikes.} + \titlecaption{\label{hompoissoncountfig}Z\"ahlstatistik von Poisson Spikes.}{} \end{figure} @@ -237,8 +237,8 @@ Nachteile. Im folgenden werden die drei Methoden aus Abbildung \begin{figure}[t] \includegraphics[width=\columnwidth]{firingrates} - \caption{\textbf{Verschiedene Methoden die zeitabh\"angige Feuerrate - zu bestimmen. A)} Rasterplot einer einzelnen neuronalen + \titlecaption{Verschiedene Methoden die zeitabh\"angige Feuerrate + zu bestimmen.}{A)} Rasterplot einer einzelnen neuronalen Antwort. Jeder vertikale Strich notiert den Zeitpunkt eines Aktionspotentials. \textbf{B)} Feurerrate aus der instantanen Feuerrate bestimmt. \textbf{C)} klassisches PSTH mit der Binning @@ -264,8 +264,8 @@ Aktionspotentiale generiert wurden. \begin{figure}[!htb] \includegraphics[width=\columnwidth]{isimethod} - \caption{\textbf{Bestimmung des zeitabh\"angigen Feuerrate aus dem - Interspike Interval. A)} Skizze eines Rasterplots einer + \titlecaption{Bestimmung des zeitabh\"angigen Feuerrate aus dem + Interspike Intervall.}{\textbf{A)} Skizze eines Rasterplots einer einzelnen neuronalen Antwort. Jeder vertikale Strich notiert den Zeitpunkt eines Aktionspotentials. Die Pfeile zwischen aufeinanderfolgenden Aktionspotentialen illustrieren das @@ -292,7 +292,7 @@ koninuierliche Funktion. \begin{figure}[h!] \includegraphics[width=\columnwidth]{binmethod} - \caption{\textbf{Bestimmung des PSTH mit der Binning Methode. A)} + \titlecaption{Bestimmung des PSTH mit der Binning Methode.}{\textbf{A)} Skizze eines Rasterplots einer einzelnen neuronalen Antwort. Jeder vertikale Strich notiert den Zeitpunkt eines Aktionspotentials. Die roten gestrichelten Linien stellen die @@ -325,7 +325,7 @@ relevante Zeitskala. \begin{figure}[h!] \includegraphics[width=\columnwidth]{convmethod} - \caption{\textbf{Schematische Darstellung der Faltungsmethode. A)} + \titlecaption{Schematische Darstellung der Faltungsmethode.}{\textbf{A)} Rasterplot einer einzelnen neuronalen Antwort. Jeder vertikale Strich notiert den Zeitpunkt eines Aktionspotentials. In der Faltung werden die mit einer 1 notierten Aktionspotential durch @@ -355,8 +355,8 @@ ausgeschnitten wird und diese dann mittelt (Abbildung \begin{figure} \includegraphics[width=0.5\columnwidth]{sta} - \caption{\textbf{Spike Triggered Average eines P-Typ - Elektrorezeptors.} Der Rezeptor wurde mit einem ``white-noise'' + \titlecaption{Spike Triggered Average eines P-Typ + Elektrorezeptors.}{Der Rezeptor wurde mit einem ``white-noise'' Stimulus getrieben. Zeitpunkt 0 ist der Zeitpunkt des beobachteten Aktionspotentials.}\label{stafig} \end{figure} @@ -380,7 +380,7 @@ Stimulus zu rekonstruieren (Abbildung \begin{figure} \includegraphics[width=\columnwidth]{reconstruction} - \caption{\textbf{Rekonstruktion des Stimulus mittels STA.} Die + \titlecaption{Rekonstruktion des Stimulus mittels STA.}{Die Zellantwort wird mit dem STA gefaltet um eine Rekonstruktion des Stimulus zu erhalten.}\label{reverse_reconstruct_fig} \end{figure} diff --git a/programming/lectures/Makefile b/programming/lectures/Makefile index 89774df..5cd2a27 100644 --- a/programming/lectures/Makefile +++ b/programming/lectures/Makefile @@ -10,7 +10,7 @@ all : pdf # script: pdf : $(BASENAME)-chapter.pdf -$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES) +$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES) ../../header.tex pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true $(PYPDFFILES) : %.pdf : %.py diff --git a/programming/lectures/programming.tex b/programming/lectures/programming.tex index cbb4f62..9a40538 100644 --- a/programming/lectures/programming.tex +++ b/programming/lectures/programming.tex @@ -28,7 +28,7 @@ befassen. \includegraphics[width=.8\textwidth]{variableB} \label{variable:b} \end{subfigure} - \caption{\textbf{Variablen.} Variablen sind Zeiger auf eine Adresse + \titlecaption{Variablen.}{Variablen sind Zeiger auf eine Adresse im Speicher, die einen Namen und einen Datentypen beinhalten. Im Speicher ist der Wert der Variable bin\"ar gespeichert. Abh\"angig vom Datentyp wird dieses Bitmuster unterschiedlich @@ -134,7 +134,7 @@ unterschiedlichem Speicherbedarf und Wertebreich. \begin{table}[] \centering - \caption{Grundlegende Datentypen und ihr Wertebereich.} + \titlecaption{Grundlegende Datentypen und ihr Wertebereich.} \label{dtypestab} \begin{tabular}{llcl}\hline Datentyp & Speicherbedarf & Wertebereich & Beispiel \rule{0pt}{2.5ex} \\ \hline @@ -187,7 +187,7 @@ enth\"alt in diesem Beispiel vier ganzzahlige Werte. \begin{figure} \includegraphics[width=0.8\columnwidth]{scalarArray} - \caption{\textbf{Skalare und Vektoren. A)} Eine skalare Variable kann + \titlecaption{Skalare und Vektoren.}{\textbf{A)} Eine skalare Variable kann genau einen Wert tragen. \textbf{B)} Ein Vektor kann mehrer Werte des gleichen Datentyps (z.B. ganzzahlige Integer Werte) beinhalten. \matlab{} kennt den Zeilen- (row-) und Spaltenvektor @@ -255,7 +255,7 @@ Zeilenvektor. \subsubsection{Zugriff auf Inhalte von Vektoren} \begin{figure} \includegraphics[width=0.4\columnwidth]{arrayIndexing} - \caption{\textbf{Indices von Vektoren.} Jedes Feld eines Vektors hat + \titlecaption{Indices von Vektoren.}{Jedes Feld eines Vektors hat einen Index mit dem auf den jeweiligen Inhalt zugegriffen werden kann.}\label{vectorindexingfig} \end{figure} @@ -411,7 +411,7 @@ bis 3-d Matrizen (Abbildung \ref{matrixfig} A,B). \begin{figure} \includegraphics[width=0.5\columnwidth]{matrices} - \caption{\textbf{Matrizen. A)} Eine Variable (``test'') die eine + \titlecaption{Matrizen.}{\textbf{A)} Eine Variable (``test'') die eine 2-dimensionale Matrize ist. \textbf{B)} Illustration einer 3-dimensionalen Matrize. Die Pfeile zeigen den Rang der Dimensionen an.}\label{matrixfig} @@ -457,7 +457,7 @@ Matrizen geht, wird \code{size} benutzt. \begin{figure} \includegraphics[width=0.9\columnwidth]{matrixIndexing} - \caption{\textbf{Indices von Matrizen.} Jedes Feld einer Matrize + \titlecaption{Indices von Matrizen.}{Jedes Feld einer Matrize wird durch einen Index individuell angesprochen. Der Index setzt sich aus so vielen Zahlen zusammen wie es Dimensionen gibt (links 2, rechts 3). Dabei steht die 1. Stelle immer f\"ur die Zeile, die @@ -508,7 +508,7 @@ den Minimalwert aller Elemente einer Matrize ermitteln m\"ochte.. \begin{figure} \includegraphics[width=0.9\columnwidth]{matrixLinearIndexing} - \caption{\textbf{Lineares Indexieren von Matrizen.} Der Index steigt + \titlecaption{Lineares Indexieren von Matrizen.}{Der Index steigt linear von 1 bis zur Anzahl Elemente in der Matrize an. Dabei steigt der Index zuerst entlang der ersten, zweiten, dritten und weiterer Dimensionen an.}\label{matrixlinearindexingfig} @@ -589,7 +589,7 @@ der gesamte Ausdruck nur dann wahr, wenn beide Ausdr\"ucke sich zu wahr auswerten lassen. \begin{table}[tp] - \caption{Wahrheitstabellen logisches UND (links) und logisches ODER (rechts).}\label{logicalandor} + \titlecaption{Wahrheitstabellen logisches UND (links) und logisches ODER (rechts).}{}\label{logicalandor} \begin{minipage}[t]{0.4\textwidth} \begin{tabular}{llll} \multicolumn{2}{l}{\multirow{2}{*}{}} & \multicolumn{2}{c}{\textbf{B}} \\ @@ -623,8 +623,8 @@ ODER (XOR) ist in \matlab{} nur als Funktion \code{xor(A, B)} verf\"ugbar. \begin{table}[th] - \caption{\label{logicaloperators} - \textbf{Logische Operatoren in \matlab.}} + \titlecaption{\label{logicaloperators} + Logische Operatoren in \matlab.}{} \begin{center} \begin{tabular}{c|c} \hline @@ -645,8 +645,8 @@ auf Dinge wie Gleicheit (\code{==}) gr\"o{\ss}er oder kleiner als (\code{>}, \code{<}) testen. \begin{table}[th] - \caption{\label{relationaloperators} - \textbf{Relationale Operatoren in \matlab.}} + \titlecaption{\label{relationaloperators} + Relationale Operatoren in \matlab.}{} \begin{center} \begin{tabular}{c|c} \hline @@ -764,8 +764,8 @@ bestimmten Zeitraums ausw\"ahlen m\"ochte (Abbildung \begin{figure}[h] \includegraphics[width= 0.9\columnwidth]{logicalIndexingTime} - \caption{\textbf{Beispiel f\"ur ``indirektes'' logisches Indizieren.} - Der rot markierte Abschnitt aus den Daten wurde ``indirekt'' + \titlecaption{Beispiel f\"ur ``indirektes'' logisches Indizieren.} + {Der rot markierte Abschnitt aus den Daten wurde ``indirekt'' anhand logischen Indizierens auf dem Zeitvektor ausgew\"ahlt.}\label{logicalindexingfig} \end{figure} @@ -957,14 +957,14 @@ end \end{lstlisting} \begin{exercise}{ifelse.m}{} - Ziehe eine Zufallszahl und \"uberpr\"ufe mit einer geegnet \ciode{if} Anweisung, ob sie: + Ziehe eine Zufallszahl und \"uberpr\"ufe mit einer geegnet \code{if} Anweisung, ob sie: \begin{enumerate} \item ... kleiner als 0.5 ist. \item ... kleiner oder gr\"o{\ss}er-gleich 0.5 ist. \item ... kleiner als 0.5, gr\"o{\ss}er oder gleich 0.5 aber kleiner als 0.75 ist oder gr\"o{\ss}er oder gleich 0.75 ist. \end{enumerate} -\end{execise} +\end{exercise} \subsubsection{Die \code{switch} -- Verzweigung} @@ -1300,8 +1300,17 @@ gemacht den Rahmen zu bilden und den Ablauf zu koordinieren (Abbildung \begin{figure} \includegraphics[width=0.5\columnwidth]{./images/simple_program.pdf} - \caption{\textbf{Ein typisches Programmlayout.} Das Kontrollskript + \titlecaption{Ein typisches Programmlayout.}{Das Kontrollskript koordiniert den Aufruf der Funktionen, \"ubergibt Argumente und nimmt R\"uckgabewerte entgegen.}\label{programlayoutfig} \end{figure} - + + +\begin{ibox}[tp]{Python} + The cooler programming language. +\end{ibox} + + +\begin{important} + Something you should really remember. +\end{important} diff --git a/scientificcomputing-script.tex b/scientificcomputing-script.tex index 6c2350a..2ead31f 100644 --- a/scientificcomputing-script.tex +++ b/scientificcomputing-script.tex @@ -11,6 +11,9 @@ \maketitle \tableofcontents +%\listoffigures +%\lstlistoflistings +%\listofiboxfs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \part{Grundlagen des Programmierens} diff --git a/statistics/lecture/Makefile b/statistics/lecture/Makefile index ec84405..7ab252d 100644 --- a/statistics/lecture/Makefile +++ b/statistics/lecture/Makefile @@ -8,7 +8,7 @@ all : pdf # script: pdf : $(BASENAME)-chapter.pdf -$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES) +$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES) ../../header.tex pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true $(PYPDFFILES) : %.pdf : %.py diff --git a/statistics/lecture/statistics.tex b/statistics/lecture/statistics.tex index d3a68e6..3929389 100644 --- a/statistics/lecture/statistics.tex +++ b/statistics/lecture/statistics.tex @@ -24,8 +24,8 @@ der Daten eingesetzt: \begin{figure}[t] \includegraphics[width=1\textwidth]{median} - \caption{\label{medianfig} Median, Mittelwert und Modus einer - Wahrscheinlichkeitsverteilung. Links: Bei der symmetrischen, + \titlecaption{\label{medianfig} Median, Mittelwert und Modus einer + Wahrscheinlichkeitsverteilung.}{Links: Bei der symmetrischen, unimodalen Normalverteilung sind Median, Mittelwert und Modus identisch. Rechts: bei unsymmetrischen Verteilungen sind die drei Gr\"o{\ss}en nicht mehr identisch. Der Mittelwert wird am @@ -68,7 +68,7 @@ eine feinere Einteilung. Das 3. Quartil ist das 75. Perzentil, da \begin{figure}[t] \includegraphics[width=1\textwidth]{quartile} - \caption{\label{quartilefig} Median und Quartile einer Normalverteilung.} + \titlecaption{\label{quartilefig} Median und Quartile einer Normalverteilung.}{} \end{figure} % \begin{definition}[\tr{quartile}{Quartile}] @@ -84,9 +84,10 @@ eine feinere Einteilung. Das 3. Quartil ist das 75. Perzentil, da \begin{figure}[t] \includegraphics[width=1\textwidth]{boxwhisker} - \caption{\label{boxwhiskerfig} Box-Whisker Plots sind gut geeignet - um mehrere unimodale Verteilungen miteinander zu vergleichen. - Hier sind es jeweils 40 normalverteilte Zufallszahlen.} + \titlecaption{\label{boxwhiskerfig} Box-Whisker Plot.}{Box-Whisker + Plots sind gut geeignet um mehrere unimodale Verteilungen + miteinander zu vergleichen. Hier sind es jeweils 40 + normalverteilte Zufallszahlen.} \end{figure} Box-Whisker Plots sind eine h\"aufig verwendete Darstellung um die @@ -132,14 +133,12 @@ Wahrscheinlichkeitsverteilung der Messwerte abzusch\"atzen. \begin{figure}[t] \includegraphics[width=1\textwidth]{diehistograms} - \caption{\label{diehistogramsfig} \tr{Histograms of rolling a die - 100 or 500 times. Left: plain histograms counting the frequency - of the six possible outcomes. Right: the same data normalized - to their sum.}{Histogramme des Ergebnisses von 100 oder 500 mal - W\"urfeln. Links: das absolute Histogramm z\"ahlt die Anzahl des - Auftretens jeder Augenzahl. Rechts: Normiert auf die Summe des - Histogramms werden die beiden Messungen untereinander als auch - mit der theoretischen Verteilung $P=1/6$ vergleichbar.}} + \titlecaption{\label{diehistogramsfig} Histogramme des Ergebnisses + von 100 oder 500 mal W\"urfeln.}{Links: das absolute Histogramm + z\"ahlt die Anzahl des Auftretens jeder Augenzahl. Rechts: + Normiert auf die Summe des Histogramms werden die beiden Messungen + untereinander als auch mit der theoretischen Verteilung $P=1/6$ + vergleichbar.} \end{figure} \newpage @@ -179,8 +178,8 @@ Einheit von $x$. \begin{figure}[t] \includegraphics[width=1\textwidth]{pdfprobabilities} - \caption{\label{pdfprobabilitiesfig} Wahrscheinlichkeiten bei - einer Wahrscheinlichkeitsdichtefunktion.} + \titlecaption{\label{pdfprobabilitiesfig} Wahrscheinlichkeiten bei + einer Wahrscheinlichkeitsdichtefunktion.}{} \end{figure} F\"ur beliebige Bereiche ist die Wahrscheinlichkeit f\"ur den Wert $x$ zwischen @@ -218,10 +217,9 @@ Standardabweichung $\sigma$. \begin{figure}[t] \includegraphics[width=1\textwidth]{pdfhistogram} - \caption{\label{pdfhistogramfig} \tr{Histograms of normally - distributed data with different bin sizes.}{Histogramme mit + \titlecaption{\label{pdfhistogramfig} Histogramme mit verschiednenen Klassenbreiten eines Datensatzes von - normalverteilten Messwerten. Links: Die H\"ohe des absoluten + normalverteilten Messwerten.}{Links: Die H\"ohe des absoluten Histogramms h\"angt von der Klassenbreite ab. Rechts: Bei auf das Integral normierten Histogrammen werden auch unterschiedliche Klassenbreiten untereinander vergleichbar und @@ -263,8 +261,8 @@ $\Delta x$ der Klassen geteilt werden (\figref{pdfhistogramfig}). \begin{figure}[tp] \includegraphics[width=1\textwidth]{correlation} - \caption{\label{correlationfig} Korrelationen zwischen zwei - Datens\"atzen $x$ und $y$.} + \titlecaption{\label{correlationfig} Korrelationen zwischen zwei + Datens\"atzen $x$ und $y$.}{} \end{figure} Bisher haben wir Eigenschaften einer einzelnen Me{\ss}gr\"o{\ss}e @@ -287,8 +285,8 @@ nur unzureichend oder \"uberhaupt nicht erfasst (\figref{nonlincorrelationfig}). \begin{figure}[tp] \includegraphics[width=1\textwidth]{nonlincorrelation} - \caption{\label{nonlincorrelationfig} Nichtlineare Zusammenh\"ange - werden durch den Korrelationskoeffizienten nicht erfasst. Sowohl + \titlecaption{\label{nonlincorrelationfig} Nichtlineare Zusammenh\"ange + werden durch den Korrelationskoeffizienten nicht erfasst.}{Sowohl die quadratische Abh\"angigkeit (links) als auch eine Rauschkorrelation (rechts), bei der die Streuung der $y$-Werte von $x$ abh\"angen, ergeben Korrelationskeffizienten nahe Null.