Python Einführung ¨Ubungsblatt II - Scientific Python

Vorlesung Systemtheorie und Regelungstechnik I (SR1)
Albert-Ludwigs-Universit¨at Freiburg – Sommersemester 2015
¨
Python Einf¨
uhrung Ubungsblatt
II - Scientific Python
Prof. Dr. Moritz Diehl, Dr. J¨org Fischer und Lukas Klar
1. Erstellen von Arrays
(a) Importieren Sie das Modul numpy und geben ihm einen einfachen Alias wie z.B. ’np’
(b) Wir wollen folgende 2x3-Matrix A als Array in numpy erstellen:
3 2 5
A=
.
4 6 7
Definieren Sie dazu zun¨
achst die Liste
L = [[3, 2, 5], [4, 6, 7]]
.
Das Array A kann nun mittels
A = np.array(L)
erstellt werden.
(c) Warum ben¨
otigen wir den Datentyp Array? Reichen Listen nicht aus? Eine Antwort liefert ein
Vergleich der Resultate von 2*A und 2*L.
(d) Erstellen Sie eine 1x10 Matrix, die nur Nullen enth¨alt.
Hinweis: numpy-Methode zeros()
(e) Erstellen Sie eine 2x10-Matrix, die nur Einsen enth¨alt.
Hinweis: numpy-Methode ones()
2. Arbeiten mit Arrays
(a) Geben Sie das Element in der ersten Reihe und ersten Spalte von A aus Aufgabenteil 1b) aus.
Hinweis: Indizierung wie bei Listen
(b) Berechnen Sie die Matrix B = AT A.
Hinweis: myArray.T, np.dot()
(c) Welche Dimension hat B?
Hinweis: myArray.shape
(d) Addieren Sie 5 zu allen Elementen der letzten Reihe von B.
(e) Geben Sie die 2. Spalte von B aus.
3. Plotting
(a) Importieren Sie die plotting library matplotlib.pyplot und geben ihr einen Alias, z.B. plt
(b) Was macht folgender plot Befehl?
plt.plot([4,3,7,5],’o-’)
Anmerkung: Wenn kein Plot erscheint, m¨
ussen Sie zus¨
atzlich plt.show() nach dem Plot Befehl
aufrufen.
(c) Verwenden Sie den Befehl np.linspace(arg1, arg2, arg3), um ein Zeitraster (d.h. ein dimensionales
Array) zu erstellen, das den Bereich von 0 bis 10 in 100 ¨aquidistante Schritte unterteilt. Verwenden
Sie dieses Zeitraster, um eine Cosinus-Funktion zu plotten.
Hinweis: die Cosinus Funktion ist Teil des numpy Pakets
Anmerkung: Mit plt.figure k¨
onnen Sie bei Bedarf ein ”frisches”’ Plot-Fenster erstellen.
(d) Was ver¨
andert sich, wenn Sie anstatt ’o-’ den String ’b–’ oder ’r*’ in der Plot-Funktion verwenden?
1