Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
MATLAB: Einfuhrung und Anwendungen
Prof. Dr. H.-G. StarkHochschule Aschaffenburg
9. November 2016
Literatur
[1] F. Grupp/F. Grupp: MATLAB 7 fur Ingenieure: Grundlagen und Programmierbeispiele,Oldenbourg, 2008.
[2] U. Stein: Programmieren mit MATLAB: Programmiersprache, Grafische Benutzerober-flachen, Anwendungen, Hanser-Verlag, 2016.
1 Vektoren und Matrizen
Beispiele:
A =
(1 2 34 5 6
), B =
(1 1 12 2 2
), C =
1 02 13 2
, ~v =
123
,
MATLAB-Version:
>> A=[1 2 3;4 5 6];
>> B=[1 1 1;2 2 2];
>> C=[1 0;2 1;3 2];
>> v=[1;2;3];
(Elementweise) Linearkombination
3 · A−B =
(2 5 810 13 16
)MATLAB-Version:
>> 3*A-B
ans =
2 5 8
10 13 16
1
2 FLACHENPLOTS 2
Matrix-Vektor-Multiplikation
A · v =
(1 · 1 + 2 · 2 + 3 · 34 · 1 + 5 · 2 + 6 · 3
)MATLAB-Version:
>> A*v
ans =
14
32
Matrix-Matrix-Multiplikation
A · C =
(1 · 1 + 2 · 2 + 3 · 3 1 · 0 + 2 · 1 + 3 · 24 · 1 + 5 · 2 + 6 · 3 4 · 0 + 5 · 1 + 6 · 2
)MATLAB-Version:
>> A*C
ans =
14 8
32 17
2 Flachenplots
Idee: Uber einem ”Definitionsbereich” D ⊂ R2 die Ortsvektoren ~x =
xyz
abtragen, wobei
(x, y) ∈ D und z = z(x, y).MATLAB-Realisierung fur z(x, y) = x · y mit −1 ≤ x ≤ 1 und −1 ≤ y ≤ 1:Dialog:
>> x=-1:.01:1; %x-Bereich mit den Werten -1 -0.99 -0.98 ... +0.98 +0.99 1
>> y=-1:.01:1; %y-Bereich mit den Werten -1 -0.99 -0.98 ... +0.98 +0.99 1
>> [X,Y]=meshgrid(x,y); %muss halt sein
>> Z=X.*Y; %Berechnung der Hoehenwerte
>> mesh(x,y,Z); %Plot
3 GLEICHUNGSSYSTEME 3
Plot:
2.1 Ubungseinheit: Plot einer Ebene
Plotten Sie eine Ebene mit dem Normalenvektor ~n =
121
, die den Punkt ~x0 =
101
enthalt. Fur den Definitionsbereich soll D = {(x, y) | − 2 ≤ x ≤ 2,−2 ≤ y ≤ 2} gelten.
Anleitung:
• Hesse’sche Normalenform der Ebene aufstellen.
• Normalenform in die Gestalt z = z(x, y) umschreiben.
• Plotten.
3 Gleichungssysteme
Beispiel 1:
x− y + z = 1
x− y − z = −1
x+ y + z = 1
3 GLEICHUNGSSYSTEME 4
Matrixformulierung: 1 −1 11 −1 −11 1 1
︸ ︷︷ ︸
A
·
xyz
︸ ︷︷ ︸
x
=
1−11
︸ ︷︷ ︸
b
Test der Losbarkeitsbedingung in MATLAB:
>> A=[1 -1 1;1 -1 -1;1 1 1];
>> b=[1 ; -1 ; 1];
>> rank(A), rank([A, b])
ans =
3
ans =
3
Geometrische Interpretation: Drei Ebenen schneiden sich in einem Punkt
Bestimmung der Losung mit MATLAB:
>> x=A\b
3 GLEICHUNGSSYSTEME 5
x =
0
0
1
Beispiel 2:
x− y + z = 1
x− y − z = −1
z = 1
Matrixformulierung: 1 −1 11 −1 −10 0 1
︸ ︷︷ ︸
A
·
xyz
︸ ︷︷ ︸
x
=
1−11
︸ ︷︷ ︸
b
Test der Losbarkeitsbedingung in MATLAB:
>> A=[1 -1 1;1 -1 -1;0 0 1];
>> b=[1 ; -1 ; 1];
>> rank(A), rank([A, b])
ans =
2
ans =
2
Geometrische Interpretation: Drei Ebenen schneiden sich in einer Geraden. UnterbestimmtesGleichungssystem!
3 GLEICHUNGSSYSTEME 6
Bestimmung der Losung mit MATLAB:
>> x=A\b
x =
NaN
NaN
1
Beispiel 3:
x− y + z = 1
x− y − z = −1
z = 2
Matrixformulierung: 1 −1 11 −1 −10 0 1
︸ ︷︷ ︸
A
·
xyz
︸ ︷︷ ︸
x
=
1−12
︸ ︷︷ ︸
b
Test der Losbarkeitsbedingung in MATLAB:
>> A=[1 -1 1;1 -1 -1;0 0 1];
>> b=[1 ; -1 ; 2];
3 GLEICHUNGSSYSTEME 7
>> rank(A), rank([A, b])
ans =
2
ans =
3
Geometrische Interpretation: Drei Ebenen schneiden sich nicht. Nicht losbares Gleichungs-system!
Bestimmung der Losung sinnlos!
3.1 Ubungseinheit: Lineare Gleichungssysteme
Gegeben ist das folgende lineare Gleichungssystem:
x+ 2y + z = 3
x+ z = 2
y + z = 1.5
• Uberprufen Sie die Losbarkeitsbedingung und bestimmen Sie ggf. die Losung.
4 ANWENDUNGEN 8
• Wahlen Sie einen geeigneten Bereich D in der x-y-Ebene und plotten Sie uber diesemBereich die zu den Gleichungen gehorenden Ebenen. Tipp: Nach der Ausfuhrung vonhold on konnen Sie mehrere Plots in ein Koordinatensystem einzeichnen!
Wiederholen Sie obige Schritte fur das Gleichungssystem
x+ 2y + z = 3
x+ z = 2
x− 2y + z = 1
4 Anwendungen
4.1 Vektoren
Vektoren sind endliche Zahlenreihen (z.B. Messwerte).Man kann sie horen (Akustik).Beispiel: Abgetastete Sinusschwingung
Formel:y = sin(2 · π · f · t)
Bezeichnungen: f : Frequenz, T = 1f: Periode.
Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:
Bezeichnungen: Ts: Abtastabstand, fs = 1Ts
: Abtastrate.
Fasst man die Zahlenwerte als Lautstarkewerte auf und spielt sie mit der Frequenz fs = 1Ts
ab, hort man einen Sinuston.Zur Vermeidung von Verfalschungen muss das Abtasttheorem erfullt sein:
Ts <T
2bzw. fs > 2f
In der Praxis wahlt man fs >>>> 2f . Treten mehrere Frequenzen auf, muss die Unglei-chung fur die hochste vorkommende Frequenz gelten!
4 ANWENDUNGEN 9
Beispiel: Sinusgenerator in MATLAB:
>> f=400; %Tonfrequenz
>> fs=10*f; %Abtastrate
>> Ts=1/fs; %Abtastabstand
>> t=0:Ts:3; %3 Sek. in Ts-Schritten (Vektor)
>> y=sin(2*pi*f*t); %Lautstaerkevektor erzeugen
>> sound(y,fs); %Vektor mit Geschwindigkeit fs abspielen
%-> 3-Sek-Ton der Frequenz 400 Hz
4.1.1 Ubungseinheit: Quintengenerator
Bei einer Quinte ist die Frequenz des hoheren Tons um den Faktor 32
hoher als die Frequenzdes Grundtons. Erzeugen Sie nach obigem Schema nacheinander einen Sinuston mit 300Hz undeinen um eine Quinte erhohten Ton (Spieldauer jeweils 3 Sekunden).Versuchen Sie, beide Tone gleichzeitig abzuspielen, indem Sie die jeweiligen y-Vektoren linearkombinieren und experimentieren Sie mit verschiedenen Gewichtungsfaktoren und Abtastraten.
4.1.2 Demo: Signalanalyse
Oben wurde ein akustisches Signal synthetisiert als Uberlagerung (Linearkombination)von Sinus-Schwingungen unendlicher Dauer und scharfer Frequenz.
Bei der (Signalanalyse) wird ein gegebenes Signal aufgefasst als Linearkombination vonBasis-Schwingungen endlicher Dauer und verschmierter Frequenz (vgl. Abbildung unten).Bei optimalen Basis-Schwingungen ist das Produkt aus Zeitdauer und Frequenzbreite soklein wie moglich.
Die Gewichtsfaktoren der Basis-Schwingungen werden bei einer Zeit-Frequenz-Analyse farb-lich kodiert:
4 ANWENDUNGEN 10
Anwendung: Rekonstruktion fehlerhafter Signale unter der Nebenbedingung, dass die Zeit-Frequenz-Analyse des rekonstruierten Signals moglichst ”dunn” ist (Demo!).”Dunn”: Nur wenige - dafur wichtige - Gewichtsfaktoren sind merklich von Null verschie-den!Weitere Infos uber das EU-Projekt UNLocX: http://unlocx.math.uni-bremen.de//
4.2 Matrizen
Computergrafik/Bildverarbeitung: Matrizen kann man sehen:1 2 3 4 52 3 4 5 63 4 5 6 74 5 6 7 85 6 7 8 9
als Bild
=⇒
4 ANWENDUNGEN 11
Zugehoriger MATLAB-Code:
>> bild = [1:5;2:6;3:7;4:8;5:9]
bild =
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
>> imagesc(bild), colormap ’gray’, axis ’equal’, axis ’tight’
4.2.1 Ubungseinheit: Grauwertbild
Stellen Sie die zu z(x, y) = x · y gehorende Funktionsflache (vgl. Abschnitt 2) als Grauwertbilddar.
Gegeben ist nun der Definitionsbereich D = {(x, y) | − 4π ≤ x ≤ 4π,−4π ≤ y ≤ 4π}.Uberlegen Sie zunachst, wie wohl die zu z(x, y) = sin(x+y) gehorende Funktionsflache aussiehtund stellen Sie sie als Flache und als Grauwertbild dar.
Weitere Anwendungen von Matrizen
• Roboterkinematik (”Kinematische Ketten”).
• Wirtschaftsmathematik (”Produktionsmatrizen”).
• Dynamische Simulationen.
5 OPEN SOURCE-PRODUKTE 12
5 Open Source-Produkte
Scilab: http://www.scilab.org/Octave: http://www.gnu.org/software/octave/
6 ANHANG: INTUITIVE BEGRUNDUNG DES ABTASTTHEOREMS 13
6 Anhang: Intuitive Begrundung des Abtasttheorems
Gegeben ist eine Sinusschwingung y = sin(2 · π · f · t):
Frage: Wie dicht muss man min-destens abtasten, um die rote Si-nusschwingung aus den abgeta-steteten Werten rekonstruieren zukonnen?
6.1 Ts >T2
Blaue Sinusschwingung ebenfallsmit Abtastung vertraglich.
6.2 Ts = T2
Blaue Sinusschwingung eben-falls mit Abtastung vertraglich,Grenzfall.
6 ANHANG: INTUITIVE BEGRUNDUNG DES ABTASTTHEOREMS 14
6.3 Ts <T2
Eindeutige Rekonstruierbarkeit.
Also Rekonstruierbarkeitsbedingung:
Ts <T
2bzw. fs > 2f