Some makeup everywhere...
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user