G Siebte Übungseinheit Inhalt der siebten Übungseinheit: • Fourier-Analyse • Eigenwertaufgaben G.1 Fouriertransformation Fourier-Analyse kann in einem Datensatz periodische Effekte erkennen und aus dem Hintergrund-Rauschen herausfiltern. Aufgabe 61 Signals 3 Fourier-Analyse eines 2 1 Erzeugen Sie 2000 Datenpunkte für ein periodisches Signal im Zeitbereich 0 ≤ t ≤ 30. In diesem Beispiel enthält das Signal zwei verschiedene Schwingungsfrequenzen: 0 -1 -2 N=2000; t = linspace(0,30,N); y = sin(t)+2*sin(3*t+5); plot(t,y) -3 0 5 10 15 20 25 30 Stören Sie dieses Signal nun durch zufällige Schwankungen (Rauschen, noise). In diesem Fall sind es normalverteilte Schwankungen mit Mittelwert 0 und Standardabweichung 3: y = y+3*randn(1,N); plot(t,y) Wenn Sie den Zufallsterm nicht mit 3, wie hier im Beispiel, sondern mit 0.5 oder mit 5 multiplizieren, sehen Sie ein mehr oder weniger verrauschtes Signal. Eine Fast-Fourier-Transformation zerlegt dieses Signal in eine Summe von Sinus- und Cosinusschwingungen unterschiedlicher Frequenzen und berechnet die Amplitude jedes Frequenz-Beitrages. 15 10 5 Y = fft(y); 0 Der Y-Vektor enthält komplexe Zahlen. Der Absolutbetrag enthält die Information über die Amplitude der verschiedenen FrequenzBeiträge. Genauer: Real- und Imaginärteil geben jeweils die Amplitude der Cosinus- und der Sinusschwingung mit dieser Frequenz. -5 -10 -15 0 Wichtige Kenngröße dabei ist die Abtastfrequenz fs (sampling rate, sampling frequency), das ist die Anzahl der Datenpunkte pro Sekunde. In unserem Beispiel sind das 1999 152 5 10 15 20 25 30 Punkte in 30 Sekunden (warum nicht 2000 Punkte? Der letzte Datenpunkt zählt bei der Frequenz-Berechnung nicht mehr!). Es gilt bei Datenvektoren der Länge N mit N geraddzahlig: Die Real- und Imaginärteile der Fourier-Terme Y(2) bis Y(N/2+1), mit 2/N multipliziert, geben die Cosinus- und SinusAmplituden zu den Frequenzen fs /N bis fs /2 an. Ein Sonderfall ist der Term Y(1): er gibt den Mittelwert des Signals an. Das hört sich komplizierter an als es ist. Ein einfacher Befehl stellt den Zusammenhang zwischen Datenpunkt-Index und Frequenz her: fs = (N-1)/30; % sampling frequency f = linspace(0,fs/2,N/2+1); % die zu Y gehoerigen Frequenzen Wenn wir nur an den Frequenzen, und nicht an der genauen Zuordnung zu Sinus- und CosinusAnteil interessiert sind, reicht die Absolutbetrag-Information: plot(f,abs(Y(1:N/2+1))) Der Plot zeigt Rauschen im Frequenzbereich 1-33 Hz. Aber bei niedrigen Frequenzen gibt es zwei deutliche Peaks. Zoomen Sie in den Bereich von 0 bis 1 Hz. Können Sie einen Zusammenhang zu den Frequenzen des ursprünglichen Signals herstellen? 1.8 1.6 1.4 1.2 Sie haben nun die Möglichkeit, das hochfrequente Rauschen herauszufiltern und so das ursprüngliche Signal zu rekonstruieren. Dazu behalten Sie (im aller-einfachsten Fall) im YVektor nur die ersten k+1 Werte und die letzten k Werte und setztn den Rest auf 0. Eine inverse Fourier-Transformation rekonstruiert aus der Information im Frequenz-Bereich das ursprüngliche Signal im Zeit-Bereich: 1 0.8 0.6 0.4 0.2 0 0 5 10 15 20 25 30 35 k=50; Y(k+1:end-k-1)=0; z=ifft(Y); plot(t,z) Die Abbildung hier zeigt: das Filtern hat noch nicht optimal funktioniert. Experimentieren Sie mit verschiedenen k-Werten und finden Sie einen k-Wert, der das unverrauschte Signal möglichst gut wiederherstellt. 5 4 3 2 Aufgabe 62 Approximation Funktion durch Fourierreihe einer 1 0 -1 Gegeben ist die Funktion y = exp(t) für −1 ≤ t ≤ 1. -2 -3 Approximieren Sie diese Funktion durch Fou-4 0 rierreihen mit 1,2,5,10,. . . Termen. Verwenden Sie dazu Matlabs symbolische Integration, um die Fourierkoeffizienten zu finden. Fourierreihen sind in diesem Fall nicht unbedingt die günstigste Wahl. Beurteilen Sie das Konvergenzverhalten. Welches Phänomen erkennen Sie? 153 5 10 15 20 25 30 Je nachdem, wo man nachschaut, sehen die Formeln anders aus (oder enthalten leider, wie in älteren Vorlesungsunterlagen, Tippfehler). Verwenden Sie daher diese Formeln Fourierreihenentwicklung einer periodischen Funktion f (t) mit Periode T : f (t) = a0 2π 2π 2πn + a1 cos( t) + a2 cos( 2t) + · · · + an cos( t) + · · · 2 T T T 2π 2πn 2π t) + · · · + b1 sin( t) + b2 sin( 2t) + · · · + bn sin( T T T mit an = G.2 2 T Z T 2 f (t) · cos( − T2 2πn t) dt T bn = 2 T Z T 2 f (t) · sin( − T2 2πn t) dt T Eigenwerte und Eigenvektoren MATLAB-Befehle: d = eig(A) liefert Vektor von Eigenwerten [V,D] = eig(A) Spalten von V sind Eigenvektoren, Diagonalelemente von D sind Eigenwerte. Ein interaktives, recht lehrreiches Beispiel zu Eigenvektoren liefert der MATLAB-Befehl eigshow. Geben Sie diesen Befehl im Befehlsfenster ein.18 Bewegen Sie den Vektor x und beobachten Sie, wie sich Ax entsprechend ändert. Drehen Sie den Vektor x so, dass er zu Ax parallel liegt. Jeder solche Vektor x ist ein Eigenvektor der Matrix A. Das Ergebnis Ax ist in diesem Fall ein Vielfaches der Ausgangsvektors, es gilt also die Gleichung Ax = λx . Der Proportionalitätsfaktor λ ist der zu x gehörende Eigenwert von A. Die Matrix A können Sie im Fenster oben aus einer Liste wählen. Voreingestellt ist 1 1 3 . A= 4 4 2 • Finden Sie für die obige Matrix A Eigenvektoren. Lesen Sie die Komponenten von x ab und schätzen Sie λ. Wie viele verschiedene Werte von λ gibt es hier? • Vergleichen Sie mit dem Resultat des Befehls [V,D] = eig(A). • Versuchen Sie andere Matrizen aus der Liste. Nicht immer können Sie Eigenvektoren finden. Was liefert [V,D] = eig(A) in solchen Fällen? • Im Normalfall (bei regulärer Matrix A) beschreibt Ax eine Ellipse, wenn Sie x bewegen. Singuläre Matrizen bilden die Ausnahme. Sie haben λ = 0 als Eigenwert. Wie sieht die Bahn von Ax dann aus? Finden Sie eine Beispielmatrix aus der Liste. Aufgabe 63 Spannungstensor, Hauptachsentransformation 18 Die aktuelle MATLAB-Hilfe (R2013a) findent eigshow nicht. Der Eintrag ist sehr gut versteckt unter „MATLAB“, Registerkarte „Examples“, drei Bildschirmseiten nach unten scrollen, unter dem Link „Eig. & Singular Value Show“. 154 Diese Aufgabe testet, ob Sie die MATLAB-Befehle aufrufen und deren Ergebnisse interpretieren können. Reine Druck- oder Zugkräfte wirken normal zur Fläche, reine Scherkräfte parallel dazu. Im allgemeinen Fall stellt der Spannungstensor den Zusammenhang zwischen Flächennormalrichtung und Kraftrichtung her: Kraftrichtung ∼ Spannungstensor mal Normalenvektor In einem geeignet gedrehten Koordinatensystem nimmt der Spannungstensor Diagonalgestalt an. Die Achsen dieses Koordinatensystems sind die Hauptachsen des Spannungstensors. Sie zeigen in Richtung seiner Eigenvektoren. Der diagonalisierte Spannungstensor enthält die Eigenwerte in der Hauptdiagonalen. Der Spannungstensor in einem Material sei (in willkürlichen Einheiten) 5 p = 10 −8 10 2 2 −8 2 . 11 a) In welcher Richtung wirkt die Kraft auf die xy-Ebene? —auf die Ebene x + y + z = 0? (Dazu brauchen Sie noch keine Eigenwerte.) b) In welche Richtungen zeigen die Hauptachsen des Spannungstensors (format rat liefert „schöne“ Zahlen)? Wie lautet der auf Diagonalgestalt transformierte Tensor? c) In zwei Richtungen wirkt reine Zug-, in einer reine Druckspannung (Vorzeichenkonvention bei den Diagonaltermen des Spannungstensors: Druck ist negativ19 . In welcher Richtung wirkt — die größere Zugspannung? — die kleinere Zugspannung? — die Druckspannung? Aufgabe 64 Bildungsmobilität zwischen den Generationen Es hängt stark von der sozialen Herkunft ab, welche Ausbildung Kinder und Jugendliche erhalten. Die Abbildung20 zeigt aktuelle Daten aus Österreich. 19 wie auch sonst im Leben: Prüfungsdruck, Leistungsdruck, Erfolgsdruck,. . . Bildung in Zahlen 2010/11, Schlüsselindikatoren und Analysen. Statistik Austria, Wien, 2012 20 Quelle: 155 Erstellen Sie aus diesen Daten eine Matrix A = [aij ], in der das Element aij angibt: aij = Anteil der Kinder, die Ausbildung i ereichen, deren Eltern Ausbildung j haben. Der Balken ganz links in der Graphik gibt den Ist-Zustand (Bildungsniveau der Jugendlichen insgesamt) an. Setzen Sie diese Daten in einen Vektor x(1) ein. Angenommen, das Bildungsniveau der Eltern insgesamt ist durch einen Vektor x(0) beschrieben (diese Daten lassen sich nicht direkt aus der Grafik ablesen). a) Begründen Sie: Das Bildungsniveau der nächsten Generation insgesamt errechnet sich durch Matrix-Vektor-Multiplikation x(1) = A · x(0) . b) Berechnen Sie x(0) aus den gegebenen Daten für A und x(1) . c) Berechnen Sie, ausgehend von x(1) , den Zustand nach 1, 2 und 3 weiteren Generationen; d) Ein stabiler Zustand besteht, wenn sich von einer Generation zur nächsten nichts ändert. Begründen Sie: dabei handelt es sich um einen Eigenvektor von A. Berechnen Sie den stabilen Zustand. Aufgabe 65 AHP – Analytic Hierarchy Process Seit den 1990er-Jahren wird im Operations Research AHP zur Entscheidungsfindung immer populärer; hoffentlich nicht bloß deswegen, weil Anwender sich auf folgende Logik stützen: Korrekte Entscheidungen sind schwierig. Matrixalgebra ist schwierig. Daher kann Matrixalgebra korrekte Entscheidungen treffen. Angenommen, Sie sollen entscheiden: „Wohin gehen wir Freitag Abend feiern?“. Zur Wahl stehen: Arkadenhof, Ristorante Antonio, Gösser Bräu. Zur Entscheidungsfindung mittels Analytic Hierarchy Process vergleichen und bewerten Sie die Lokale zuerst paarweise. (Der direkte Vergleich zweier Alternativen fällt den meisten Leuten leichter, als eine Rangordnung mehrerer Möglichkeiten zu erstellen.) 156 Skalenwert 1 3 5 2, 4 Dabei gilt die nebenstehende Skala: Die Original-Methode verwendet Werte von 1–9; wir haben die Skala hier der Problemstellung angepasst. Bedeutung gut besser gösser Zwischenwerte Damit erstellen Sie eine Bewertungsmatrix: Der Eintrag in Zeile i, Spalte j bewertet, wie stark Alternative i gegenüber j bevorzugt wird. Wichtig dabei: der ji-Eintrag ist der Reziprokwert vom ij-Eintrag. Jemand, der 2-mal lieber in den A-Hof als ins Ristorante Antonio geht und dem das Gösser Bräu 3-mal lieber als der AHof und 5-mal lieber als das Antonio ist, würde daher diese Matrix erstellen. AH RA GB AH 1 1/2 3 RA 2 1 5 GB 1/3 1/5 1 Der Mathematiker Thomas L. Saaty, Entwickler von AHP, argumentiert, dass der Eigenvektor zum betragsgrößten Eigenwert dieser Matrix die beste Bewertung der Prioritäten angibt. Trotzdem sollten Sie dieser Methode keine übersinnliche Prognosequalität zuschreiben, es gilt vielmehr das EMEM-Prinzip: Eingabe Mist–Ergebnis Mist 21 Berechnen Sie zur obigen Bewertungsmatrix den (auf Komponenten-Summe 1 normierten) Eigenvektor zum größten Eigenwert. Interpretieren Sie diesen Vektor als Prioritäten-Gewichtung. Sie bemerken bei diesem Beispiel: Eigenwerte und -vektoren können auch komplex sein. Bei Matrizen mit ausschließlich positiven Einträgen sind aber garantiert der betragsgrößte Eigenwert und alle Komponenten eines zugehörigen Eigenvektors reell und positiv. In unserem Beispiel berechnet MATLAB den betragsgrößten Eigenwert an erster Stelle. Mit [V,D]=eig(A) ist automatisch V(:,1) der gesuchte Eigenvektor - er muss nur noch passend skaliert werden, damit die Summe der Komponenten 1 ergibt. Aufgabe 66 Schwingungsgleichung Die Eigenschwingungsformen und zugehörigen Frequenzen einer schwingenden Saite lassen sich näherungsweise aus dem Eigenwertproblem Ax = λx bestimmen. Man denkt sich die Saite dazu in n Einzelmassen, wie Perlen auf einer Schnur, zerlegt. Für grosse n nähert sich die Perlenschnur einer kontinuierlichen Massenverteilung an. Die n × n Matrix A hat Tridiagonal-Form. 2 −1 0 0 ... 0 −1 2 −1 0 ... 0 0 −1 2 −1 . . . 0 .. .. . .. .. .. A= . . . . . .. . −1 2 −1 0 ... 0 −1 2 Hat die Saite die Länge ` und Wellenausbreitungsgeschwindigkeit c , dann ist die Eigenschwingungsfrequenz ν(in Hz) bestimmt durch ν= n + 1√ c λ 2π ` Dem kleinsten Eigenwert von A entspricht die Frequenz der Grundschwingung, die weiteren Eigenwerte entsprechen den Obertönen. Erstellen Sie für n = 5, 10, 20 die Matrix A, setzen Sie der Einfachheit halber c/` = 1 und berechnen Sie die Frequenzen der Grundschwingung 21 Fachsprachlich: GIGO (Garbage in – Garbage out) 0.4 0.3 0.2 0.1 0 −0.1 157 −0.2 −0.3 −0.4 0 2 4 6 8 10 12 14 16 18 20 und der ersten drei Oberschwingungen. Zeichnen Sie für n = 20 die entsprechenden Eigenvektoren; sie geben die Schwingungsformen an. Siehe Abbildung! Aufgabe 67 Vektoriteration Was passiert, wenn man einen Vektor wieder und wieder mit derselben Matrix multipliziert? Testen Sie für den Vektor x = (1,0,0)T und die Matrix A 8 1 A = 3 5 4 9 6 7 2 Wenn man den Befehl x = A*x zehnmal iteriert, werden die Zahlen in x schon recht groß. Dividieren Sie nun zusätzlich in jedem Schritt den Vektor x nach der Multiplikation mit A durch seine erste Komponente. Das ändert nicht die Richtung von x, hält aber die Zahlenwerte der Komponenten in übersichtlichen Grenzen. Sie können das in der Form >> y=A*x; x = y/y(1) im Workspace durchspielen. Was beobachten Sie? Zu welchem Wert konvergiert y1 ? Iterieren Sie, beginnend mit dem Startvektor x = (1,0,0)T , >> y=A\x; x = y/y(1) Zu welchem Wert konvergiert y1 ? Vergleichen Sie: Für diese Matrix berechnet das Skriptum auf Seite 51 (Ausgabe 2016) die Eigenwerte aus dem charakteristischen Polynom. Im Skriptum auf Seite 53 ist eine Variante der Vektoriteration hervorgehoben, die komplizierter ausschaut. Das liegt daran, dass die einfache Skalierung x = y/y(1) nicht funktioniert, falls y(1) = 0. Die Variante des Skriptums kommt mit solchen Sonderfällen zurecht. Für Übungs- und Prüfungsbeispiele können Sie aber auch die obige simple Variante verwenden. Aufgabe 68 Erreichbarkeit in einem Netzwerk Ein Netzwerk (Verkehrsverbindungen, verlinkte Seiten im Internet, soziales Netz. . . , mathematisch: ein Graph) lässt sich durch seine Adjazenzmatrix beschreiben22 (Siehe Folien 8. Vorlesung 2016). (a) Stellen Sie zum nebenstehenden Netzwerk die (01)-Adjazenzmatrix A auf und berechnen Sie den Eigenvektor zum größten Eigenwert. Wie ordnet dieser Vektor die Knoten im Netz nach dem Grad ihrer „Erreichbarkeit“? (0) (b) Beginnen Sie mit einem Vektor x aus lauter Einsen und führen Sie zehn Schritte der Vektoriteration durch. Was erhalten Sie dadurch näherungsweise? Welches Maß für „Vernetzung“ oder „Erreichbarkeit ist durch Ax(0) definiert? 1 8 7 3 2 6 5 4 22 Die Idee, Links zwischen Internet-Seiten auf diese Art mathematisch zu untersuchen, war 1997 Bestandteil einer akademischen Forschungsarbeit an der Stanford University. Der Student, der damals dran gearbeitet hat (ein gewisser Larry Page), hat bis heute seine Dissertation nicht abgeschlossen. Aber Sie können ja googeln, ob er es inzwischen doch zu etwas gebracht hat. 158