13
Lehrstuhl für Numerische Mathematik MATLAB: N¨ utzliches f¨ ur Mathematik IV Mario T.P. [email protected] Mehr Unterlagen unter Einf¨ uhrung in die Programmierung (MA8003) 02.05.2019 Zentral¨ ubung 2

MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Embed Size (px)

Citation preview

Page 1: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik

MATLAB: Nutzliches fur Mathematik IV

Mario T.P.

[email protected]

Mehr Unterlagen unter Einfuhrung in die Programmierung (MA8003)

02.05.2019

Zentralubung 2

Page 2: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik

Ubersicht

• Vektoren

• Matrizen

• Diagonalstrukturen

• Plot der Besetzungstruktur

• Vergleich des Speicherplatzes

• Losung von LGS

• Eigenwerte und Eigenvektoren

• Funktionen in 2D plotten

• Funktionen in 3D plotten

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 3: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 1 Vektoren

Vektoren

• Erstellung:

• >> v = [1 2 3 4]; // Zeilenvektor

• >> v = [1;2;3;4]; // Spaltenvektor

• >> v = 1:4;

• Zugriff auf das i-te Element (Achtung: Indizierung beginnt mit 1):

• >> i = 2; a = v(i);

• Zugriff auf Elemente i− j (Slicing):

• >> i = 2; j = 4; w = v(i:j); // w = [2 3 4]

• Multiplikation:

• >> l = v'*v; // Skalarprodukt (v' ist v transponiert)

• >> l = v*v; // Fehler

• >> w = v.*v; // Elementweise Multiplikation

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 4: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 2 Matrizen

Matrizen

• Erstellung:

• >> M = [1 2 3; 4 5 6; 7 8 9]; // M ist 3x3-Matrix

• Zugriff auf das (i, j)-te Element:

• >> i = 2; j = 3; m = M(i,j); // m = 6

• Slicing:

• >> A = M(1:3,2:3); // A = [2 3; 5 6; 8 9]

• Multiplikation:

• >> Msqrd = M*M // Matrixmultiplikation• >> Msqrd_ew = M.*M // Elementweise Multiplikation• >> Mv = M*v // Matrix-Vektor-Multiplikation

• >> M*[1 2] // Fehler: Dimensionen!

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 5: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 3 Diagonalstrukturen

Diagonalstrukturen

• Erstellung mit diag:

• >> v = [1 2 3 4]; D = diag(v);

D =

1 0 0 00 2 0 00 0 3 00 0 0 4

• >> v = diag(D); // v = [1 2 3 4]

• >> D1 = diag(v,1);

D =

0 1 0 0 00 0 2 0 00 0 0 3 00 0 0 0 40 0 0 0 0

• Nachteil: Matrizen werden voll abgespeichert!

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 6: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 4 Diagonalstrukturen

Diagonalstrukturen

• Erstellung dunnbesetzter Matrizen mit spdiags:

• >> e = ones(n,1);

• >> A = spdiags([e -2*e e], -1:1, n, n);

A =

2 −1−1 2 −1

. . . . . . . . .−1

−1 2

Vorteil: Es werden nur die Eintrage auf den (Sub-)Diagonalen abgespeichert.

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 7: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 5 Plot der Besetzungsstruktur

Plot der Besetzungsstruktur

• Plot der Besetzungsstruktur mit spy:

• >> spy(A);

0 10 20 30 40 50 60 70 80 90 100

0

10

20

30

40

50

60

70

80

90

100

nz = 460

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 8: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 6 Vergleich des Speicherplatzes

Vergleich des Speicherplatzes

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

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 9: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 7 Losung von LGS

Losung von LGS

• Backslash-Operator:

• >> x = A\b; // x ist Loesung von Ax=b

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

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 10: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 8 Losung von LGS

Losung von LGS

• Inverse berechnen (NIE anwenden → Speicherplatz, Rundungsfehler, ...):

• >> A_inv = inv(A);

Figure 1: Matrix A Figure 2: Matrix A−1

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 11: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 9 Eigenwerte und Eigenvektoren

Eigenwerte und Eigenvektoren

• Nur Eigenwerte:

• >> k = 4; d = eigs(A,k); // d enthaelt die k groessten EW

• Eigenzerlegung:

• >> [O, D] = eig(A);

• Beispiel: A = ODO> mit

A =

−2 1 01 −2 10 1 −2

, D =

−3.4142 0 00 −2 00 0 −0.5858

und

O =

0.5 −0.7071 −0.5−0.7071 0 −0.7071

0.5 0.7071 −0.5

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 12: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 10 Funktionen in 2D plotten

Funktionen in 2D plotten

• Mehrere Funktionen plotten mit plot:

• >> x = -2:0.01:2;

• >> y1 = x.*sin(4*x);

• >> y2 = (x+1).*sin(4*x);

• >> plot(x, y1, 'o', x, y2, '--')

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11

Page 13: MATLAB: Nützliches für Mathematik IV · Lehrstuhl für Numerische Mathematik Ubersicht Vektoren Matrizen Diagonalstrukturen Plot der Besetzungstruktur Vergleich des Speicherplatzes

Lehrstuhl fürNumerische Mathematik 11 Funktionen in 3D plotten

Funktionen in 3D plotten

• Plotten mit surf:

• >> [X,Y] = meshgrid(-5:.2:5);

>> Z = sin(X).*sin(Y);

>> surf(X,Y,Z)

JJ J I II 0 1 2 3 4 5 6 7 8 9 10 11