Some makeup everywhere...

This commit is contained in:
Jan Benda 2015-11-05 08:52:39 +01:00
parent 3216086642
commit 91dc9e1f3b
8 changed files with 640 additions and 95 deletions

View File

@ -1,13 +1,15 @@
BASENAME=scientificcomputing-script
SUBDIRS=programming statistics bootstrap likelihood pointprocesses
#spike_trains designpattern
# regression
SUBDIRS=designpattern statistics bootstrap regression likelihood pointprocesses
#programming spike_trains
SUBTEXS=$(foreach subd, $(SUBDIRS), $(subd)/lecture/$(subd).tex)
pdf : $(BASENAME).pdf
pdf : chapters $(BASENAME).pdf
chapters :
for sd in $(SUBDIRS); do $(MAKE) -C $$sd/lecture pdf; done
$(BASENAME).pdf : $(BASENAME).tex header.tex
$(BASENAME).pdf : $(BASENAME).tex header.tex $(SUBTEXS)
export TEXMFOUTPUT=.; pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
clean :
@ -17,5 +19,5 @@ clean :
cleanall : clean
rm -f $(PDFFILE)
watch :
watchpdf :
while true; do ! make -q pdf && make pdf; sleep 0.5; done

529
UT_WBMW_Rot_RGB.pdf Normal file

File diff suppressed because one or more lines are too long

View File

@ -103,10 +103,10 @@ der gemessene Mittelwert um den Populationsmittelwert streut.
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
Stichprobe gewonnen worden ist hat die gleiche Form und Breite wie
die Stichprobenverteilung, ist aber um den Mittelwert berechnet
aus der Stichprobe zentriert. Die Standardabweichung der
Bootstrap-Verteilung (blau), die durch Resampling aus einer
Stichprobe gewonnen worden ist, hat die gleiche Form und Breite
wie die Stichprobenverteilung, ist aber um den Mittelwert der
Stichprobe zentriert. Die Standardabweichung der
Bootstrapverteilung kann also als Sch\"atzer f\"ur den
Standardfehler des Mittelwertes verwendet werden.}
\end{figure}

View File

@ -7,72 +7,6 @@ Beim Programmieren sind sich viel Codes in ihrer Grundstruktur sehr
immer wieder in \"ahnlicher Weise vor. In diesem Kapitel stellen wir
einige dieser ``Design pattern'' zusammen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Plotten einer mathematischen Funktion}
Eine mathematische Funktion ordnet einem beliebigen $x$-Wert einen
$y$-Wert zu. Um eine solche Funktion zeichnen zu k\"onnen, m\"ussen
wir eine Wertetabelle aus vielen $x$-Werten und den
dazugeh\"origen Funktionswerten $y=f(x)$ erstellen.
Wir erstellen dazu einen Vektor mit geeigneten $x$-Werten, die von
dem kleinsten bis zu dem gr\"o{\ss}ten $x$-Wert laufen, den wir
plotten wollen. Die Schrittweite f\"ur die $x$-Werte w\"ahlen wir
klein genug, um eine sch\"one glatte Kurve zu bekommen. F\"ur jeden
Wert $x_i$ dieses Vektors berechnen wir den entsprechenden
Funktionswert und erzeugen damit einen Vektor mit den $y$-Werten. Die
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}
xmin = -1.0;
xmax = 2.0;
dx = 0.01; % Schrittweite
x = xmin:dx:xmax; % Vektor mit x-Werten
y = exp(-x.*x); % keine for Schleife! '.*' fuer elementweises multiplizieren
plot(x, y);
\end{lstlisting}
\begin{lstlisting}
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}
x = -1:0.01:2; % Vektor mit x-Werten
plot(x, exp(-x.*x));
\end{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Skalieren und Verschieben nicht nur von Zufallszahlen}
Zufallsgeneratoren geben oft nur Zufallszahlen mit festen Mittelwerten
und Standardabweichungen (auch Skalierungen) zur\"uck. Multiplikation
mit einem Faktor skaliert die Standardabweichung und Addition einer Zahl
verschiebt den Mittelwert.
\begin{lstlisting}
% 100 random numbers draw from a Gaussian distribution with mean 0 and standard deviation 1.
x = randn(100, 1);
% 100 random numbers drawn from a Gaussian distribution with mean 4.8 and standard deviation 2.3.
mu = 4.8;
sigma = 2.3;
y = randn(100, 1)*sigma + mu;
\end{lstlisting}
Das gleiche Prinzip ist manchmal auch sinnvoll f\"ur \code{zeros} oder \code{ones}:
\begin{lstlisting}
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:
plot(x, zeros(size(x))+0.8);
% ... Linie mit y=0.5:
plot(x, ones(size(x))*0.5);
\end{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{for Schleifen \"uber Vektoren}
Manchmal m\"ochte man doch mit einer for-Schleife \"uber einen Vektor iterieren.
@ -136,6 +70,72 @@ mean(y)
\end{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Skalieren und Verschieben nicht nur von Zufallszahlen}
Zufallsgeneratoren geben oft nur Zufallszahlen mit festen Mittelwerten
und Standardabweichungen (auch Skalierungen) zur\"uck. Multiplikation
mit einem Faktor skaliert die Standardabweichung und Addition einer Zahl
verschiebt den Mittelwert.
\begin{lstlisting}
% 100 random numbers draw from a Gaussian distribution with mean 0 and standard deviation 1.
x = randn(100, 1);
% 100 random numbers drawn from a Gaussian distribution with mean 4.8 and standard deviation 2.3.
mu = 4.8;
sigma = 2.3;
y = randn(100, 1)*sigma + mu;
\end{lstlisting}
Das gleiche Prinzip ist manchmal auch sinnvoll f\"ur \code{zeros} oder \code{ones}:
\begin{lstlisting}
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:
plot(x, zeros(size(x))+0.8);
% ... Linie mit y=0.5:
plot(x, ones(size(x))*0.5);
\end{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Plotten einer mathematischen Funktion}
Eine mathematische Funktion ordnet einem beliebigen $x$-Wert einen
$y$-Wert zu. Um eine solche Funktion zeichnen zu k\"onnen, m\"ussen
wir eine Wertetabelle aus vielen $x$-Werten und den
dazugeh\"origen Funktionswerten $y=f(x)$ erstellen.
Wir erstellen dazu einen Vektor mit geeigneten $x$-Werten, die von
dem kleinsten bis zu dem gr\"o{\ss}ten $x$-Wert laufen, den wir
plotten wollen. Die Schrittweite f\"ur die $x$-Werte w\"ahlen wir
klein genug, um eine sch\"one glatte Kurve zu bekommen. F\"ur jeden
Wert $x_i$ dieses Vektors berechnen wir den entsprechenden
Funktionswert und erzeugen damit einen Vektor mit den $y$-Werten. Die
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}
xmin = -1.0;
xmax = 2.0;
dx = 0.01; % Schrittweite
x = xmin:dx:xmax; % Vektor mit x-Werten
y = exp(-x.*x); % keine for Schleife! '.*' fuer elementweises multiplizieren
plot(x, y);
\end{lstlisting}
\begin{lstlisting}
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}
x = -1:0.01:2; % Vektor mit x-Werten
plot(x, exp(-x.*x));
\end{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Normierung von Histogrammen}
Meistens sollten Histogramme normiert werden, damit sie vergleichbar

View File

@ -1,8 +1,8 @@
%%%%% title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{\textbf{\huge\sffamily\tr{Introduction to\\[1ex] Scientific Computing}{Einf\"uhrung in die\\[1ex] wissenschaftliche Datenverarbeitung}}}
\author{{\LARGE Jan Grewe \& Jan Benda}\\[4ex]Abteilung Neuroethologie\\[2ex]\includegraphics[width=0.3\textwidth]{UT_WBMW_Rot_RGB}}
\date{WS 15/16\\\vfill \includegraphics[width=1\textwidth]{announcements/correlationcartoon}}
\author{{\LARGE Jan Grewe \& Jan Benda}\\[5ex]Abteilung Neuroethologie\\[2ex]\includegraphics[width=0.3\textwidth]{UT_WBMW_Rot_RGB}\vspace{3ex}}
\date{WS 15/16\\\vfill \centerline{\includegraphics[width=0.7\textwidth]{announcements/correlationcartoon}\rotatebox{90}{\footnotesize\url{www.xkcd.com}}}}
%%%% language %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \newcommand{\tr}[2]{#1} % en
@ -193,8 +193,9 @@
\usepackage{framed}
\newcounter{maxexercise}
\setcounter{maxexercise}{10000} % show listings up to exercise maxexercise
\newcounter{theexercise}
\setcounter{theexercise}{1}
\newcounter{exercise}[chapter]
\setcounter{exercise}{0}
\newcommand{\theexercise}{\arabic{exercise}}
\newcommand{\codepath}{}
\newenvironment{exercise}[2]%
{\newcommand{\exercisesource}{#1}%
@ -203,11 +204,12 @@
\newcommand{\saveenumi}{\theenumi}\renewcommand{\labelenumi}{(\alph{enumi})}%
\renewcommand{\FrameCommand}{\colorbox{yellow!15}}%
\MakeFramed{\advance\hsize-\width \FrameRestore}%
\noindent\textbf{\tr{Exercise}{\"Ubung} \arabic{theexercise}:}\newline}%
\stepcounter{exercise}%
\noindent\textbf{\tr{Exercise}{\"Ubung} \thechapter.\theexercise:}\newline}%
{\ifthenelse{\equal{\exercisesource}{}}{}%
{\ifthenelse{\value{theexercise}>\value{maxexercise}}{}%
{\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\stepcounter{theexercise}%
\endMakeFramed%
\renewcommand{\theenumi}{\saveenumi}}

View File

@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{\tr{Programming basics}{Grundlagen der Programmierung in \matlab}}
\chapter{\tr{Programming basics}{Programmierung in \matlab}}
\section{Variablen und Datentypen}
@ -117,7 +117,7 @@ wie eine einzelne Variable gel\"oscht wird.
\subsection{Datentypen}
Der Datentyp bestimmt, wie die im Speicher abgelegten Bitmuster
interpretiert werden. Die Wichtigsten Datentpyen sind folgende:
interpretiert werden. Die wichtigsten Datentpyen sind folgende:
\begin{itemize}
\item \textit{integer} - Ganze Zahlen. Hier gibt es mehrere
@ -134,7 +134,7 @@ unterschiedlichem Speicherbedarf und Wertebreich.
\begin{table}[]
\centering
\caption{Gel\"aufige Datentypen und ihr Wertebereich.}
\caption{Grundlegende Datentypen und ihr Wertebereich.}
\label{dtypestab}
\begin{tabular}{llcl}
\hline
@ -742,10 +742,11 @@ ans =
\section{Graphische Darstellung von Daten}
%%% Wuerde ich als eigenes Kapitel machen! JB
%%% In einem separaten Verzeichnis...
\begin{figure}
\includegraphics[width=0.9\columnwidth]{./images/convincing}
\includegraphics[width=0.9\columnwidth]{convincing}
\caption{Die Folgen schlecht annotierter
Plots. \url{www.xkcd.com}} \label{xkcdplotting}
\end{figure}

View File

@ -1,4 +1,4 @@
\documentclass[12pt]{report}
\documentclass[12pt]{book}
\input{header}
@ -12,10 +12,25 @@
\tableofcontents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\part{Grundlagen des Programmierens}
\graphicspath{{programming/lectures/}{programming/lectures/images/}}
\lstset{inputpath=programming/code}
\include{programming/lectures/programming}
\chapter{Graphische Darstellung}
\graphicspath{{designpattern/lecture}{designpattern/lecture/figures}}
\lstset{inputpath=designpattern/code/}
\include{designpattern/lecture/designpattern}
\chapter{Cheat-Sheet}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\part{Grundlagen der Datenanalyse}
\graphicspath{{statistics/lecture/}{statistics/lecture/figures/}}
\lstset{inputpath=statistics/code}
\include{statistics/lecture/statistics}
@ -26,7 +41,7 @@
\graphicspath{{regression/lecture/}{regression/lecture/figures/}}
\lstset{inputpath=regression/code}
%\include{regression/lecture/linear_regression}
\include{regression/lecture/regression}
\graphicspath{{likelihood/lecture/}{likelihood/lecture/figures/}}
\lstset{inputpath=likelihood/code}
@ -41,8 +56,4 @@
\lstset{inputpath=spike_trains/code/}
\include{spike_trains/lecture/psth_sta}
\graphicspath{{designpattern/lecture}{designpattern/lecture/figures}}
\lstset{inputpath=designpattern/code/}
\include{designpattern/lecture/designpattern}
\end{document}

View File

@ -29,7 +29,7 @@ der Daten eingesetzt:
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
st\"arksten von einem starken Schw\"anz der Verteilung
st\"arksten von einem starken Schwanz der Verteilung
herausgezogen. Der Median ist dagegen robuster, aber trotzdem
nicht unbedingt identsich mit dem Modus.}
\end{figure}