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