+ All Categories
Home > Documents > Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80...

Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80...

Date post: 17-Oct-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
19
Einführung in Matlab (MA8202) Teil 6 von 6 Dr. Christian Waluga Technische Universität München Fakultät Mathematik, Lehrstuhl für Numerische Mathematik Basierend auf Kursunterlagen von Boris von Loesch 22. März 2013 Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)
Transcript
Page 1: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Einführung in Matlab (MA8202)Teil 6 von 6

Dr. Christian Waluga

Technische Universität MünchenFakultät Mathematik, Lehrstuhl für Numerische Mathematik

Basierend auf Kursunterlagen von Boris von Loesch

22. März 2013

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 2: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Teil 6: Inhalt

1 Dünnbesetzte MatrizenMotivationSpeichermodellBeispieleErzeugen von Sparse-MatrizenVergleich voll- und dünnbesetztErhalten dünn besetzter Strukturen

2 Nützliche WerkzeugeProfilerMLINTDependency Report

3 GUI-Erstellung mit Matlab

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 3: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

MotivationFür viele Probleme (z.B. bei der Diskretisierung partiellerDifferentialgleichungen, Bestimmung von Koeffizienten bei derInterpolation) erhält man Matrizen, die viele Nullen enthalten.Beispiel Poissonmatrix:

A =

4 −1 0 −1 0 0 0 0 0

−1 4 −1 0 −1 0 0 0 0

0 −1 4 0 0 −1 0 0 0

−1 0 0 4 −1 0 −1 0 0

0 −1 0 −1 4 −1 0 −1 0

0 0 −1 0 −1 4 0 0 −1

0 0 0 −1 0 0 4 −1 0

0 0 0 0 −1 0 −1 4 −1

0 0 0 0 0 −1 0 −1 4

Speicherplatz sparen: nur Nicht-Null-Einträge abspeichernEffizientes Rechnen: Operation mit Null-Einträgen vermeiden

Durch diese Effizienzsteigerungen können Probleme berechnet werden,die ansonsten aufgrund ihrer Größe nicht verarbeitet werden könnten.

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 4: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Speichermodell von Sparse-Matrizen

Nur von Null verschiedene Einträge werden abgespeichertDer Ort des Eintrags wird durch den Zeilen- und SpaltenindexgekennzeichnetSpeicherplatzbedarf ist ungefähr gleich der Summe von

4 Bytes, um die Anzahl der Einträge zu speichernpro Eintrag 8 Bytes für Spalten- und Zeilenindexpro Eintrag 8 Bytes für den Zahlenwert

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 5: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Beispiele für Sparse-Matrizen

A =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

A =

(1,1) 1(2,2) 1(3,3) 1(4,4) 1

B =

2 −1 0 0 0

−1 2 −1 0 0

0 −1 2 −1 0

0 0 −1 2 −1

0 0 0 −1 2

B =

(1,1) 2(2,1) -1(1,2) -1(2,2) 2(3,2) -1(2,3) -1...

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 6: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Befehle zum Erzeugen von Sparse-Matrizen

Funktion Beschreibungspeye Schwach besetzte Einheitsmatrixspones Einträge durch Einsen ersetzenspdiags Erzeugen von Bandmatrizensprand Einträge durch Zufallszahlen ersetzen

Konvertierung von A nach schwach bzw. voll besetzt:full(A)

sparse(A)

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 7: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Beispiel: spdiags

>> n = 5; e = ones(n,1); d = 4*e;>> A = spdiags([-e, d, -e], [-1,0,1], n, n);>> full(A)ans =

4 -1 0 0 0-1 4 -1 0 00 -1 4 -1 00 0 -1 4 -10 0 0 -1 4

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 8: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Vergleich Speicherplatzbedarf

0 2 4 6 8 10 12 14 16 18 200

500

1000

1500

2000

2500

3000

3500

n: Dimension der n x n Matrix

Spe

iche

rpla

tzbe

darf

in B

ytes

Speicherplatzbedarf einer Tridiagonalmatrix

schwach besetztvoll besetzt

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 9: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Vergleich Rechengeschwindigkeit

0 20 40 60 80 100 120 140 160 180 2000

0.002

0.004

0.006

0.008

0.01

0.012

n: Dimension der n x n Matrix

gem

esse

ne G

esch

win

digk

eit a

uf P

4 in

[s]

Geschwindigkeit Lösen eines Tridiagonalsystems mit \

schwach besetztvoll besetzt

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 10: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Erhalten dünn besetzter StrukturenIn der Regel ist die Inverse einer dünn besetzten Matrix nicht mehrdünn besetzt.Daher: Oft besser, Inverse nicht explizit zu bestimmen. Stattdessenkann man oft ein lineares Gleichungssystem (z.B. mit dem \Operator) lösen.Beispiel: Matrixstruktur CSOR = D + L für Poisson-Matrix

0 10 20 30 40 50 60 70 80 90 100

0

10

20

30

40

50

60

70

80

90

100

nz = 280

CSOR

(ω = 1)

0 10 20 30 40 50 60 70 80 90 100

0

10

20

30

40

50

60

70

80

90

100

nz = 3025

C−1SOR

(ω = 1)

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 11: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Profiler

Detaillierte Rechenzeitanalyse: Wieviel Zeit wurde für welche Zeileoder Funktion verbraucht?Auflistung geordnet nach RelevanzGut geeignet zum Auffinden von EffizienzproblemenFalls optimiert werden soll, wo wäre Optimierung sinnvoll?Vorgehen:

1 Profile Aufzeichnung starten mit profile on2 m-File aufrufen3 Profile report ansehen mit profile viewer.4 Optionen: Abspeichern von Berichten, Detail-Level setzen (z.B.

interne Funktionen in Laufzeitmessung einschließen), . . .

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 12: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Beispiel: Profiler, Zusammenfassung

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 13: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Beispiel: Profiler, Details

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 14: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

MLINT Code Checker

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 15: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Dependency Report

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 16: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Matlab Werkzeuge GUIDE (’guide’)

Starten des GUIDE tools im Menü ’Datei->Neu’ oder mit dem Befehl’guide’

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 17: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Property inspector und object browser

Eigenschaften der GUI Element können im Inspector gesetzt werden

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 18: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Callbacks

Bei Ereignissen (Knopf drücken, Feld ändern) werden Callbacksausgelöst, die dann wie eine normale Funktion vom Benutzerimplementiert werden können.

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)

Page 19: Einführung in Matlab (MA8202) - Teil 6 von 6€¦ · VergleichRechengeschwindigkeit 0 20 40 60 80 100 120 140 160 180 200 0 0.002 0.004 0.006 0.008 0.01 0.012 n: Dimension der n

Fragen?

Ende Teil 6

Fragen?

Lehrstuhl für Numerische Mathematik M2 Einführung in Matlab (MA8202)


Recommended