14
MATLAB: Einf¨ uhrung und Anwendungen Prof. Dr. H.-G. Stark Hochschule Aschaffenburg 9. November 2016 Literatur [1] F. Grupp/F. Grupp: MATLAB 7 f¨ ur Ingenieure: Grundlagen und Programmierbeispiele, Oldenbourg, 2008. [2] U. Stein: Programmieren mit MATLAB: Programmiersprache, Grafische Benutzerober- fl¨achen,Anwendungen, Hanser-Verlag, 2016. 1 Vektoren und Matrizen Beispiele: 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 , 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 8 10 13 16 MATLAB-Version: >> 3*A-B ans = 2 5 8 10 13 16 1

MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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

Page 2: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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

Page 3: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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

Page 4: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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

Page 5: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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!

Page 6: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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];

Page 7: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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.

Page 8: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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!

Page 9: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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:

Page 10: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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

=⇒

Page 11: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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.

Page 12: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

5 OPEN SOURCE-PRODUKTE 12

5 Open Source-Produkte

Scilab: http://www.scilab.org/Octave: http://www.gnu.org/software/octave/

Page 13: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

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.

Page 14: MATLAB: Einfuhrung und Anwendungen · MATLAB-Realisierung fur z(x;y) = xymit 1 x 1 und 1 y 1: Dialog: ... Digitales Sinus-Signal: Entsteht durch Abtastung eines kontinuierlichen Sinus-Signals:

6 ANHANG: INTUITIVE BEGRUNDUNG DES ABTASTTHEOREMS 14

6.3 Ts <T2

Eindeutige Rekonstruierbarkeit.

Also Rekonstruierbarkeitsbedingung:

Ts <T

2bzw. fs > 2f