Octave/Matlab-Übungen - Universität Siegen · PDF fileOctave/Matlab-Übungen...

26
Octave/Matlab-Übungen Aufgabe 1a Werten Sie die folgenden Ausdrücke mit Octave/Matlab aus: (i) 2 + 3(5 - 11) (ii) sin π 3 (iii) 2 2 + 3 2 (iv) cos 2e (v) ln π log 10 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.

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.