Merge branch 'master' of raven.am28.uni-tuebingen.de:scientificComputing

This commit is contained in:
Jan Grewe 2015-10-07 11:10:22 +02:00
commit 69f2deb0fd
2 changed files with 59 additions and 37 deletions

View File

@ -43,7 +43,7 @@ mir zugeschickt werden (jan.grewe@uni-tuebingen.de). Jede Aufgabe
sollte in einer eigenen ``Zelle'' gel\"ost sein. Die Zellen
\textbf{m\"ussen} unabh\"angig voneinander ausf\"uhrbar sein. Das
Skript sollte nach dem Muster: ``variablen\_datentypen\_\{nachname\}.m''
benannt werden (z.B. variablen\_datentypen\_mueller.m).
benannt werden (z.B. variablen\_datentypen\_meier.m).
\begin{questions}
@ -78,9 +78,9 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m).
\question Berechne die Fakult\"at von 5:
\begin{parts}
\part Erzeuge eine Variable \code{x} und weise ihr den Wert 1 zu.
\part Berechne den ersten Schritt und weise das Ergebnis \code{x}
\part Berechne den ersten Schritt (\code{*2}) und weise das Ergebnis \code{x}
zu.
\part Wiederhole bis die Fakult\"at von 5 berechnet ist. \code{x}
\part Fahre schrittweise fort, bis die Fakult\"at von 5 berechnet ist. \code{x}
sollte nun das Endergebnis enthalten.
\end{parts}
XXX Die Aufgabe kann als Motivation fuer eine for schleife verwendet werden! XXX
@ -125,7 +125,7 @@ Variable? Warum?
\part Die Variable \code{b} soll den Wert \code{3*(a-1)} erhalten.
\part Welches Ergebnis erwartest du f\"ur \code{b-1} ?
\part Berechne mit matlab \code{b-1} !
\part Was ist \code{sin(pi)} ?
\part Was sollte \code{sin(pi)} ergeben ? Was sagt matlab?
\end{parts}
\end{questions}

View File

@ -42,17 +42,20 @@ mir zugeschickt werden (jan.grewe@uni-tuebingen.de). Jede Aufgabe
sollte in einer eigenen ``Zelle'' gel\"ost sein. Die Zellen
\textbf{m\"ussen} unabh\"angig voneinander ausf\"uhrbar sein. Das
Skript sollte nach dem Muster: ``variablen\_datentypen\_\{nachname\}.m''
benannt werden (z.B. variablen\_datentypen\_mueller.m).
\section{Vektoren}
benannt werden (z.B. variablen\_datentypen\_meier.m).
\begin{questions}
\question Erzeuge folgende Vektoren:
\section*{Vektoren}
\question Erzeuge Vektoren mit folgendem Inhalt:
\begin{parts}
\part Von 1 bis 10 in ganzzahligen Schritten.
\part Von 2 bis 20 in 2er Schritten.
\part Von 0 bis 20 in 2er Schritten.
\part Mit \textbf{absteigendem} Inhalt von 100 bis 0.
\part In 100 Schritten von 0 bis $2\pi$ ($\pi$ ist als Konstante \verb+pi+
\part In 10 Schritten von 0 bis 1.
\part In 11 Schritten von 0 bis 1.
\part In 50 Schritten von 0 bis $2\pi$ ($\pi$ ist als Konstante \verb+pi+
in Matlab definiert).
\end{parts}
@ -60,15 +63,20 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m).
\begin{parts}
\part Erzeuge einen Vektor mit 100 Zufallszahlen (z.B. mit der
Funktion \verb+rand+).
XXX Problem: rand(100) macht matrix. Also doch lieber 0:100:0.1 ? XXX
\part Gib jeweils den ersten, den letzten, den 5., 24. und den vorletzten Wert aus.
\part Gib die ersten 10 Werte aus.
\part Gib die letzten 10 Werte aus.
\part Gib 10 zufaellig ausgew\"ahlte Werte aus (benutze
\part Gib die Werte an den Stellen 3, 15, und 42 zusammen als Vektor aus.
\part Gib 10 zuf\"allig ausgew\"ahlte Werte aus (benutze
\verb+randi+ um die Indizes zu erstellen).
XXX wieder das matrix Problem von randi XXX
\end{parts}
\question Erzeuge eine Variable und speichere etwas Text in ihr
sodass mindestens 2 Worte vorhanden sind. (\code{x = 'some
text'}). Benutze die Indizierung um die Woerter einzeln
\question Erzeuge eine Variable und speichere etwas Text in ihr,
so dass mindestens 2 Worte vorhanden sind. (z.B. \code{x = 'some
text'}). Benutze die Indizierung um die W\"orter einzeln
auszugeben.
\question Definiere zwei Vektoren: \verb+x = [3 2 6 8];+ und
@ -77,42 +85,42 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m).
\part Was sind die Gr\"o{\ss}en von \verb+x+ und \verb+y+ (siehe
\verb+size+)?
\part ... addiere 5 zu jedem Element von \verb+x+.
\part ... addiere 3 zu jedem Element von y, dass einen ungeraden
\part ... addiere 3 zu jedem Element von y, das einen ungeraden
Index hat.
\part ... multipliziere jedes Element von \verb+x+ mit dem
entsprechenden Element in \verb+y+ und weise das Ergebnis der
Variable \verb+z+ zu.
XXX Vorher noch eine Aufgabe, bei der man nicht transponieren muss! XXX
\end{parts}
\end{questions}
\newpage
\subsection{Matrizen}
\begin{questions}
\question Erstelle eine 5 x 5 Matrix die Zufallszahlen enth\"alt (nutze die
MATLAB Funktion \verb+randn()+, benutze die Hilfe. Was macht sie?).
\newpage
\section*{Matrizen}
\question Erstelle folgende Matrix
\[ A = \left( \begin{array}{ccc} 7 & 3 & 5 \\ 1 & 8 & 3 \\ 8 & 6 & 4 \end{array} \right) \]
\begin{parts}
\part Gib alle Elemente der ersten Zeile aus.
\part Gib alle Elemente der zweiten Spalte aus.
\part Greife mit einem einzigen Kommando auf die Elemente jeder
2. Spalte zu und speichere die Daten in einer neuen Variable.
\part Gib das Element in der 3. Zeile und 2. Spalte aus.
\part Gib jeweils alle Elemente der 1., 2. und 3. Zeile aus.
\part Gib jeweils alle Elemente der 1., 2., und 3. Spalte aus.
\part Erh\"ohe das Element in der 2. Zeile und 3. Spalte um Eins.
\part Ziehe von allen Elementen der 1. Zeile 5 ab.
\part Multipliziere alle Elementen der 3. Spalte mit 2.
\end{parts}
\question Erstelle eine 3-D Matrix aus drei 2-D Matrizen. Benutze die
\verb+cat()+ Funktion f\"ur diesen Zweck (schaue in der Hilfe
nach, wie sie benutzt wird).
\question Erstelle eine $5 \times 5$ Matrix die Zufallszahlen enth\"alt (nutze die
MATLAB Funktion \verb+randn()+. Benutze die Hilfe: Was macht die Funktion?).
\begin{parts}
\part Gib alle Elemente des ersten ``Blattes'' aus (Index 1 der 3. Dimension).
\part Gib das Element in der 2. Zeile und 3. Spalte aus.
\part Gib jeweils alle Elemente der 1., 3. und letzten Zeile aus.
\part Gib jeweils alle Elemente der 2. und 4. Spalte aus.
\part Greife mit einem einzigen Kommando auf die Elemente jeder
zweiten Spalte zu und speichere die Daten in einer neuen Variable.
\end{parts}
\question Erstelle eine 3-D Matrix der Gr\"o{\ss}e \verb+[5, 5, 3]+
mithilfe der Funktion \code{ones()}. Multipliziere alle Elemente
des ersten Blattes mit 1, die des zweiten mit 2, des dritten mit
3.
\question Erstelle folgende Variablen \verb+x = [1 5 9]+ and
\verb+y = [7 1 5]+ und \verb+M = [3 1 6; 5 2 7]+. Welche der
folgenden Operationen funktionieren? Wenn nicht, warum
funktioneieren sie nicht? Teste Deine Vorhersagen.
funktionieren sie nicht? Teste Deine Vorhersagen.
\begin{parts}
\part \code{x + y}
\part \code{x * M}
@ -122,13 +130,27 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m).
\part \code{M - [x; y]}
\end{parts}
\question Erzeuge eine 5 x 5 x 5 Matrix die mit ganzzahligen
Zufallszahlen zwischen 0 und 100 gefuellt ist.
\question Erstelle eine 3-D Matrix aus drei 2-D Matrizen. Benutze die
\verb+cat()+ Funktion f\"ur diesen Zweck (schaue in der Hilfe
nach, wie sie benutzt wird).
\begin{parts}
\part Gib alle Elemente des ersten ``Blattes'' aus (Index 1 der 3. Dimension).
\end{parts}
\question Erstelle eine 3-D Matrix der Gr\"o{\ss}e \verb+[5, 5, 3]+
mithilfe der Funktion \code{ones()}. Multipliziere alle Elemente
des ersten Blattes mit 1, die des zweiten mit 2, des dritten mit
3.
\question Erzeuge eine $5 \times 5 \times 5$ Matrix die mit ganzzahligen, gleichverteilten
Zufallszahlen zwischen 0 und 100 gef\"ullt ist.
\begin{parts}
\part Berechne den Mittelwert aller Bl\"atter dieser Matrix (benutze \verb+mean()+, siehe Hilfe).
\end{parts}
XXX Das geht auch in 2D: Mittelwerte der Zeilen, bzw. Spalten! Das waere sehr wichtig! Auch um den Anschluss an excel zu machen! XXXX
\question Matrizen k\"onnen neben der ``normalen'' \textit{subscript}
XXX Das wuerde ich mit einer 2D Matrize machen! XXX
Indizierung auch \textit{linear} indiziert werden (siehe Hilfe
\"uber Indexing oder Funktionen \verb+sub2ind+ oder
\verb+ind2sub+).