Octave/Matlab-Übungen - Universität Siegen · PDF fileOctave/Matlab-Übungen...
Transcript of Octave/Matlab-Übungen - Universität Siegen · PDF fileOctave/Matlab-Übungen...
Octave/Matlab-Übungen
Aufgabe 1a
Werten Sie die folgenden Ausdrücke mit Octave/Matlab aus:(i)∣∣2+ 3(5− 11)
∣∣(ii) sin π
3
(iii)√22 + 32
(iv) cos√2e
(v) lnπlog10 3,5
Aufgabe 1b
Betrachten Sie(i) a = −0.59+ 10.06+ 4.06, b = −0.42+ 11.29+ 2.66, a− b.
Was fällt auf? Schauen Sie sich a und b in format long an.
Octave/Matlab-Übungen
Aufgabe 2
Werten Sie die folgenden Ausdrücke mit Octave/Matlab aus:(i) (1+ i)(2− i)(ii) |1+ 2i|(iii) eπi/2
(iv) 3+1−ii3
(v) arg(2− i)
Octave/Matlab-Übungen
Aufgabe 3
Erzeugen Sie folgende Variablen:(i) den Zeilenvektor x = (1, 5, 0,−3.5)
(ii) den Spaltenvektor y =
401
(iii) den Null-(Zeilen-)Vektor z im R8
(iv) einen Zeilenvektor d aus lauter Dreien im R6
Ersetzen Sie danach den dritten Eintrag von z durch eine 4.Wie lautet die Quadratwurzel des letzten Eintrags von x?
Octave/Matlab-Übungen
Aufgabe 4a
Bestimmen Sie zu den Vektoren
x =
103
, y =
−1124
, z =
025
(i) jeweils deren Euklidische Länge,(ii) den Winkel α zwischen x und y in Grad,(iii) und das Volumen V des von x , y und z aufgespannten Spats im R3.
Tipps: Benutzen Sie 〈x , y〉 = ‖x‖‖y‖ cosα undV =∣∣〈x × y , z〉
∣∣.Aufgabe 4b
Berechnen Sie das komponentenweise Produkt von x und y aus Teil 4a.
Octave/Matlab-Übungen
Aufgabe 5
Erstellen Sie jeweils einen 2D-Plot folgender Funktionen mit denentsprechenden x-Werten und in der entsprechenden Farbe.Benutzen Sie jeweils ein neues Plotfenster, so dass am Ende alle dreiFunktionen separat zu sehen sind.(i)√
x für x = 1, 2, . . . , 6 in schwarz(ii) sin(x) für x = 0, 0.01, 0.02, . . . , 2π in blau(iii) x2 + 2x − 2 für x ∈ [−3, 3] in rot (unterteilen Sie dazu das Intervall
[−3, 3] in 100 äquidistante Punkte)
Tipps: Für Teil (iii) hilft die Funktion linspace. Nutzen Sie ggfs. dieMatlab/Octave Hilfe.
Octave/Matlab-Übungen
Aufgabe 6
Erstellen Sie folgende Plots:(i) 2x für x = −2,−1.95, . . . , 2 in rot, gepunktet, Titel „Zwei hoch x“(ii) 12, 22, . . . , 52 in cyan, Strichpunkt, Marker Dreieck mit Spitze nach
oben, x-Achse „n“, y -Achse „n2“, Titel „Quadrate“(iii) sin(α) und cos(α) gleichzeitig für α = 0, 0.01, . . . , 2π in rot bzw.
schwarz, Legende „sin“ bzw. „cos“, Titel „Sinus und Kosinus“,x-Achse „α“, y -Achse „sin(α), cos(α)“
Octave/Matlab-Übungen
Aufgabe 7
Erstellen Sie folgende Plots:(i) Eine Zeichnung mit den beiden Funktionen f (x) = x und
g(x) =√
x in schwarz für x = 0, 0.01, . . . , 2. Platzieren Sie rechtsunten eine Legende mit „f“ bzw. „g“ und markieren Sie die beidenSchnittpunkte (0, 0) und (1, 1) jeweils mit einem roten Fünfeck.
(ii) Einen Plot mit den Vektoren x = (1, 2) und y = (2, 1) zu demAufpunkt (0, 0). Zeichnen Sie mit Rot die Summe x + y der beidenVektoren ein, sowie in Schwarz das Parallelogramm, welches durchx und y aufgespannt wird.
Octave/Matlab-Übungen
Aufgabe 8
(i) Zeichnen Sie auf einem Gitter x = 0, 0.01, . . . , 4 eine nach obengeöffnete Parabel p(x) mit Nullstellen bei x0 = 1 und x1 = 2.5.Wählen Sie dabei die Farbe Schwarz, beschriften Sie die x-Achsemit „x“, die y -Achse mit „p(x)“, und wählen Sie den Titel „EineParabel“.
(ii) Zeichnen Sie zusätzlich die Tangente an den Graphen von p imPunkt z = 2 in rot, und markieren Sie den Schnittpunkt (z , p(z))mit einem blauen Quadrat.
Tipp: Punkt-Steigungs-Form t(x) = p(z) + (x − z)p′(z)
Octave/Matlab-Übungen
Aufgabe 9
Erzeugen Sie (möglichst effizient) folgende Matrizen:
A =
3 0 10 3 00 0 3
, B =
0 0 1 10 0 1 10 0 0 0
Ersetzen Sie dann die zweite Zeile von A durch den Zeilenvektorv = (−1, 4, π) und die ersten beiden Einträge der letzten Spalte von Bdurch die letzten beiden Einträge des Spaltenvektors v>.
Octave/Matlab-Übungen
Aufgabe 10
Die Cramersche Regel zur Lösung des linearen Gleichungssystems Ax = bmit A ∈ Rn×n und b ∈ Rn lautet
xk =
det
a1,1 · · · a1,k−1 b1 a1,k+1 · · · a1,n...
. . ....
......
. . ....
an,1 · · · an,k−1 bn an,k+1 · · · an,n
detA
, 1 ≤ k ≤ n.
Berechnen Sie mit der Cramerschen Regel die zweite Komponente x2 derLösung x ∈ R4 des linearen Gleichungssystems
1 2 3 40 5 6 70 0 8 90 0 0 10
x =
2013
.
Berechnen Sie auch den kompletten Lösungsvektor x mit der„Backslash-Operation“ A\b.
Octave/Matlab-Übungen
Aufgabe 11
Gegeben seien die Punkte
A =
(0−1
), B =
(31
), C =
(−13
), D =
(20
).
(i) Bestimmen Sie den Schnittpunkt E der Geraden AB und CD.
Tipp: Der Ansatz E = A + s(B − A) = C + t(D − C ) liefert einlineares Gleichungssystem für ( s
t ).(ii) Bestimmen Sie den Punkt F auf der Geraden AB mit minimalem
Abstand zu C . Wie groß ist dieser Abstand?
Tipp: Ansatz F = A + t(B − A) mit 〈C − F ,B − A〉 = 0(iii) Erstellen Sie eine Zeichnung mit den beiden Geraden in schwarz,
dem Schnittpunkt E als rotem Kreis und dem Punkt F als blauemQuadrat. Wählen sie den Ausschnitt [−2, 4]× [−2, 4] mit demBefehl axis (siehe Matlab-Hilfe).
Tipp: Laufbereich −1 ≤ s ≤ 3 ist ok
Octave/Matlab-Übungen
Aufgabe 12
Erzeugen Sie möglichst elegant folgende Matrizen für gegebenes n ∈ N:(i) die „Gegendiagonalmatrix“ zu einem Vektor v = (vk)1≤k≤n ∈ Cn( 0 v1
. ..
vn 0
)(ii) die „Standardmatrix“ im Rn
2 −1 0
−1. . .
. . .
. . .. . . −1
0 −1 2
(iii) die „Frobenius-Begleitmatrix“ zu v = (vk)1≤k≤n ∈ Cn( 0 1 0
. . .1
v1 ··· ··· vn
)
Octave/Matlab-Übungen
Aufgabe 13
Erzeugen Sie möglichst elegant folgende Matrizen:(i)
A =
1 ··· ··· 1
2 1...
.... . .
. . ....
2 ··· 2 1
∈ R6×6
(ii)
B =
( 5 5 0 0 00 5 0 0 00 0 −2 −2 −20 0 −2 −2 −20 0 −2 −2 −2
)∈ R5×5
(iii)
C =
1 0 01 0 00 2 00 2 00 0 30 0 3
∈ R6×3
Octave/Matlab-Übungen
Aufgabe 14
Das kartesische∗ Blatt ist eine Kurve aus Punkten (x , y)> ∈ R2 mit
x3 + y3 − 3xy = 0,
und besitzt z.B. in Polarkoordinaten die Parameterdarstellung{x(t) = r(t) cos ty(t) = r(t) sin t
, r(t) :=3 cos t sin t
(cos t)3 + (sin t)3, t ∈ (−π4 ,
3π4 ).
Zeichnen Sie ein kartesisches Blatt in blauer Farbe, mit demParameterbereich −0.7 · π4 ≤ t ≤ 0.9 · 3π
4 in 1100 -Schritten, sowie die
Asymptote y = −x − 1 als blau gepunktete Gerade mit −2 ≤ x , y ≤ 2.Beschriften Sie die Achsen mit „x“ und „y“, und setzen Sie den Titel„Kartesisches Blatt“.
Tipp: axis equal und axis([-2 2 -2 2]) sehen gut aus
∗nach R. Descartes
Octave/Matlab-Übungen
Aufgabe 15
Eine Lissajous-Figur ist eine 2-dimensionale Kurve der Form
t 7→(sin(ω1t + φ1)sin(ω2t + φ2)
)mit Frequenzen ω1, ω2 ∈ R und Phasen φ1, φ2 ∈ R. Sie ist genau dannperiodisch (d.h. geschlossen), wenn ω1
ω2rational ist.
Zeichnen Sie für folgende Parameterwerte und t = 0, 0.01, . . . , 2π jeweilsin einem neuen Fenster eine Lissajous-Figur und die 3-dimensionale Kurve
t 7→
sin(ω1t + φ1)sin t
sin(ω2t + φ2)
(i) ω1 = 1, ω2 = 2, φ1 = φ2 = 0(ii) ω1 = 2, ω2 = 3, φ1 = φ2 = 0(iii) ω1 = 2, ω2 = 3, φ1 = 0, φ2 = 3π
4
Octave/Matlab-Übungen
Aufgabe 16
Erstellen Sie zu folgenden Funktionen, Laufbereichen und Optionenjeweils mit surf einen 3D-Plot auf einem kartesischen Gitter:(i) f (x , y) = cos
(5(x2 + y2)
), −1 ≤ x , y ≤ 1 in 1
50 -Schritten,Achsenbeschriftung „x“, „y“ und „f(x,y)“,Titel „rotierter Kosinus“
(ii) g(x , y) = max{27xy(1− x − y), 0
}, 0 ≤ x , y ≤ 1 in 1
100 -Schritten,Achsenbeschriftung „x“, „y“ und „g(x,y)“,Titel „Bubble-Funktion“
Tipp: Benutzen Sie meshgrid.
Octave/Matlab-Übungen
Aufgabe 17
(i) Schreiben Sie eine Funktion x=summe(n), die die Zahlen von 1 bis naufsummiert, und testen Sie Ihre Funktion mit n=100.
(ii) Schreiben Sie eine Funktion x=fakultaet(n), die die Fakultät
n! = 1 · 2 · · · · n
mit Hilfe der Produktfunktion prod berechnet, und testen Sie IhreFunktion mit n=10.
(iii) Schreiben Sie eine Funktion [a,b]=tausche(a,b), die den Wertder Variablen a und b miteinander vertauscht, und testen Sie IhreFunktion mit a=3 und b=eye(2).
Octave/Matlab-Übungen
Aufgabe 18
Der quadratische B-Spline f ist eine stückweise quadratische Funktionder Form
f (x) :=
12x2 , 0 ≤ x < 1−x2 + 3x − 3
2 , 1 ≤ x < 212 (3− x)2 , 2 ≤ x < 30 , sonst
, für alle x ∈ R.
Erstellen Sie eine hierzu passende Octave/Matlab-Funktion als .m-Dateiund plotten Sie den quadratischen B-Spline auf dem Intervall [−1, 4].Tipp: Mit dem Befehl arrayfun(@f,x) kann man eine Funktion fkomponentenweise auf einen Vektor x anwenden.
Octave/Matlab-Übungen
Aufgabe 19
(i) Angenommen, Sie möchten einen festen Geldbetrag K0 über n Jahreanlegen, mit einer jährlichen Verzinsung von p Prozent. Am Ende jedesJahres erhöht sich dann Ihr Kapital gemäß
Kj+1 = Kj ·(1+
p100
), j = 0, . . . , n − 1.
Schreiben Sie eine Matlab-Funktion geldanlage(K0,n,p) und berechnenSie das Endkapital Kn für K0 = 2000, n = 5 und p = 3.
(ii) Bei „unterjähriger“ Verzinsung nach k Monaten gilt
Kj+1 = Kj ·(1+
p · k100 · 12
)12/k, j = 0, . . . , n − 1.
Erweitern Sie Ihre Funktion geldanlage um einen Parameter k undrechnen Sie das Beispiel aus (i) mit k = 12 und k = 1.
(iii) Was ändert sich, wenn Sie statt eines festen Startkapitals K0 am Anfangjedes Jahres eine Einzahlung in Höhe von E durchführen? Schreiben Siehierzu eine Matlab-Funktion sparen(E,n,p,k) und berechnen Sie Kn fürE = 500, n = 5, p = 3 und k = 12 sowie k = 1.
Octave/Matlab-Übungen
Aufgabe 20
Betrachten Sie zu a ∈ R die parameterabhängige Funktion
fa(x) = ax(1− x), x ∈ [0, 1],
und erstellen Sie für die Parameter a ∈ {1, 2, 3.5} jeweils einen Plot vonfa in blau auf dem Intervall [0, 1] mit Schrittweite 0.01. Setzen Sie dabei:
die x-Achsenbeschriftung „x“die y -Achsenbeschriftung „fa(x)“den Titel „Plot von fa für a = 123“, dabei ist statt 123 der konkreteWert von a einzusetzeneinen blauen Kreis in den Hochpunkt ( 1
2 ,a4 )>
den Text „Hochpunkt“ an die Stelle ( 12 ,
a4 + 0.04)>
den Achsenbereich auf [0, 1]× [0, 1], mit axis([0 1 0 1])
Octave/Matlab-Übungen
Aufgabe 21
Die Rosenbrock-Funktion lautet
f (x , y) = (1− x)2 + 100(y − x2)2, x , y ∈ R
und wird gerne als Testobjekt für Optimierungsalgorithmen verwendet.Das globale Minimum von f liegt bei (x∗, y∗)> = (1, 1)>, in einemflachen „Tal“.Visualisieren Sie die Rosenbrock-Funktion jeweils als 3D-Funktionsplotsowie mit Hilfe von 100 2D-Höhenlinien im Laufbereich −1 ≤ x , y ≤ 3mit Schrittweite 0.05. Beschriften Sie jeweils die Achsen geeignet undsetzen Sie die Titel „Die Rosenbrock-Funktion“ bzw. „Höhenlinien derRosenbrock-Funktion“. Markieren Sie in beiden Plots den Tiefpunkt(x∗, y∗, f (x∗, y∗))> bzw. (x∗, y∗)> von f als roten Stern (siehe docscatter bzw. doc scatter3) und setzen Sie im 3D-Plot denAchsenausschnitt passend, z.B. mit
axis([-1 3 -1 3 0 1000])
Octave/Matlab-Übungen
Aufgabe 22
Die Funktion von Himmelblau
f (x , y) = (x2 + y − 11)2 + (x + y2 − 7)2, x , y ∈ R
ist ebenfalls ein häufiges Testobjekt für Optimierungsalgorithmen.Erstellen Sie einen Höhenlinienplot von f im Bereich −5 ≤ x , y ≤ 5 mitGitterweite 0.05 und 20 Höhenlinien. Legen Sie darüber einen Plot desGradienten g = ∇f auf einem x-y -Gitter mit Gitterweite 0.2. Wählen Sieim quiver-Befehl den Skalierungsfaktor 3, damit das Gradientenfeld g(=Richtung des steilsten Anstiegs von f ) gut erkennbar ist. Setzen Sieden Titel „Höhenlinien und Gradient der Funktion von Himmelblau“sowie geeignete Achsenbeschriftungen.
Octave/Matlab-Übungen
Aufgabe 23
Schreiben Sie eine als .m-Datei ausgelagerte Funktion dreieck.m mitden Eingabeargumenten A, B, C und ohne Rückgabeargument, d.h. dieerste Zeile lautet
function dreieck(A,B,C)
Nach dem Aufruf mit drei Vektoren A,B,C ∈ R2 soll Ihre Funktiondas Dreieck ABC in grüner Farbe zeichnen, mit Seiten in rot,die Ecken A, B und C mit roten Sternen kennzeichnen,den Schwerpunkt S = 1
3 (A + B + C ) als blauen Kreis eintragen
und die Seitenhalbierenden (A nach 12 (B + C ), B nach 1
2 (A + C )
und C nach 12 (A + B)) als blaue Strecken eintragen.
Tipp: plot([x1 x2],[y1 y2]) verbindet die Punkte (x1, y1)> und
(x2, y2)> linear. . .
Testen Sie Ihre Funktion mit A = (0, 0)>, B = (1, 0)> und C = (0, 1)>
sowie A = (0, 0)>, B = (1, 0)> und C = ( 12 ,
12
√3)>.
Octave/Matlab-Übungen
Aufgabe 24
Angenommen, Sie möchten die Einträge der Matrix M mit m Zeilen und nSpalten in einem LATEX-Dokument als Tabelle weiterverarbeiten.Schreiben Sie hierzu eine als .m-Datei ausgelagerte Funktionmatrix2latex.m mit Eingabeargumenten M und dateiname. DieFunktion matrix2latex soll die Einträge der Matrix M zeilenweise in dieDatei dateiname schreiben und das Zahlenformat %f benutzen. Dabeisollen die Spalten jeweils durch & abgetrennt sein und alle Zeilen bis aufdie letzte mit einem doppelten Backslash \\ enden. Vor der ersten Zeilesoll der Text
\begin{tabular}{c· · · c}
ausgegeben werden, mit n cs (d.h. Spalten). Nach der letzten Zeile sollder Text
\end{tabular}
ausgegeben werden. Testen Sie Ihre Funktion mit der Matrix ( 1 2 34 5 6 ).
Octave/Matlab-Übungen
Aufgabe 25
Die Ecken eines regelmäßigen n-Ecks im R2 liegen auf den Punkten(cos 2πk
n , sin 2πkn )>, für k = 0, . . . , n − 1.
(i) Schreiben Sie eine als .m-Datei ausgelagerte Funktion neck.m mitEingabeargumenten n und dateiname, die ein regelmäßiges n-Eckals rot gefülltes Polygon mit schwarzem Rand zeichnet, die Befehleaxis([-1 1 -1 1]) sowie axis square ausführt und dasErgebnis als PNG-Datei dateiname mit 600dpi Auflösung speichert.
(ii) Erzeugen Sie mit einer Schleife alle regelmäßigen n-Ecke fürn = 3, . . . , 8 und verwenden Sie dabei die Dateinamen3eck.png,. . . , 8eck.png.
(iii) Erzeugen Sie mit der Dokumentklasse scrartcl einLATEX-Dokument necke.tex mit Titel „Regelmäßige n-Ecke“ undIhrem Namen als Autor. Erstellen Sie einen Abschnitt „Einige Bilder“und binden darin die sechs erzeugten Grafiken als Abbildungen ein.Setzen Sie sinnvolle Bildunterschriften und erzeugen am Ende desDokuments ein Abbildungsverzeichnis mit \listoffigures.
Octave/Matlab-Übungen
Aufgabe 26
Einige gemischte Teilaufgaben zum Thema Zufallszahlen:(i) Schreiben Sie eine Funktion x=zufallszahl(a,b) zur Berechnung
gleichverteilter reellen Zufallszahlen im Intervall (a, b).(ii) „Würfeln“ Sie mit Octave/Matlab 1000-mal mit zwei 6-seitigen
Würfeln und notieren Sie jeweils die Summe der beiden gewürfeltenZahlen als Vektor v ∈ {2, . . . , 12}1000. Zählen Sie, wie oft dieAugensumme s ∈ {2, . . . , 12} in v vorkommt (Tipp: doc histc)und plotten Sie die ermittelten Anzahlen mit der Funktion bar.
(iii) Angenommen, sie starten zum Zeitpunkt t = 0 im Ursprung (0, 0)>
und laufen in jedem Schritt mit Wahrscheinlichkeit 12 nach vorne
oder nach hinten (random walk). Schreiben Sie eine Funktionx=random_walk(n), um n solcher Schritte zu simulieren und diePositionen x(t) zu Zeitpunkten t = 0, . . . , n zu berechnen.Visualisieren Sie drei solcher „Pfade“ in einem t-x(t)-Diagramm mitpassenden Achsenbeschriftungen und Titel „random walks“. TestenSie Ihre Funktion mit n = 100.