• Keine Ergebnisse gefunden

Programmieraufgabe III (5+5+5+5 = 20 Punkte)

N/A
N/A
Protected

Academic year: 2021

Aktie "Programmieraufgabe III (5+5+5+5 = 20 Punkte)"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmieraufgabe III (5+5+5+5 = 20 Punkte)

Abgabe in der Woche 3.-7. Dezember

In [16]: import numpy as np

import matplotlib.pyplot as plt

Teilaufgabe a)

Implementieren Sie die einfache Vektoriteration nach von Mises. Input soll sein eine Funktion , die die Anwendung eines linearen Operators beschreibt, ein Startvektor (nicht notwendigerweise normiert),

eine maximale Anzahl von Iterationen sowie eine Toleranz , derart dass die Iteration stoppt, wenn zwei aufeinanderfolgende Eigenvektorapproximationen sich nur um Norm unterscheiden.

Output sollen Näherungen des gesuchten Eigenwerts und des zugehörigen Eigenvektors sein. Zusätzlich sollen jeweils Listen mit allen Iterierten (für Eigenwert und Eigenvektor) ausgegeben werden. Falls die Toleranz nicht erreicht wird, soll eine Fehlermeldung ausgegeben werden.

Afun z0

itmax epsilon

<epsilon

In [380]: def vectoriteration(Afun, z0, itmax, epsilon):

# to be filled in

return eigval, z, eigvallist, zlist

Testen Sie Ihre Implementierung an der -Matrix . Welche Konvergenzgeschwindigkeit für

die Eigenwertnäherungen können Sie beobachten?

Wie ändert sich das Konvergenzverhalten, wenn Sie eine Nebendiagonale mit den Einträgen hinzufügen, d.h. für

?

4 × 4 A=

⎜⎜

⎜ 1

2 2

2

⎟⎟

0, 1, 1 A=

⎜⎜

⎜ 1 0

2 1 2 1

2

⎟⎟

In [ ]:

Teilaufgabe b)

ProgrammieraufgabeIII http://localhost:8888/nbconvert/html/LehreWS...

1 of 2 14/11/2018, 15:20

(2)

Sei diejenige -Matrix mit Einträgen auf der Hauptdiagonalen und Einträgen auf den beiden

Nebendiagonalen. Testen Sie Ihre Implementierung aus Aufgabe a), indem Sie den betragsmäßig größten Eigenwert von für verschiedene bzw. berechnen.

Welche Konvergenzgeschwindigkeit hinsichtlich der Eigenwerte können Sie beobachten? Interpretieren Sie Ihre Ergebnisse.

B n×n b −1

B b> 2 n∈N

In [ ]:

Teilaufgabe c)

Implementieren Sie die inverse Iteration zur Bestimmung des betragsmäßig kleinsten Eigenwerts einer invertierbaren Matrix. Input darf hier also eine Matrix als numpy-array sein; die restlichen Inputs sollen wie in a) gewählt werden.

Wenden Sie Ihre Funktion auf die Matrix aus der vorhergehenden Aufgabe an und plotten Sie erneut die Konvergenzgeschwindkeiten für verschiedene und .

B

b n

In [385]: def inverseiteration(A, z0, itmax, epsilon):

# to be filled in

return

Teilaufgabe d)

Gegeben Sei nun die Diagonalmatrix mit den ersten Diagonaleinträgen 10 und den letzten Diagonaleinträgen 2. Ferner sei die Matrix für definiert durch

für ; alle anderen Einträge sind Null.

Bestimmen Sie jeweils einen Eigenwert der gestörten Matrix , der möglichst nahe am Eigenwert der ursprünglichen Matrix liegt und plotten Sie den Verlauf von für variierendes .

Implementieren und verwenden Sie dazu die inverse/gebrochene Iteration nach Wielandt mit entsprechend sinnvollen Parametern.

Deuten Sie das im Plot zu beobachtende Verhalten von für variierendes .

Dm R10×10 m

(10 −m) C =C(c) ∈R10×10 c∈ (−1, 1)

= =c

C10,j Cj,10 j= 1, . . . , 9

λ(c) Dm+C(c) 2

Dm λ(c) c∈ (−0.01, 0.01)

λ(c) m

In [387]: def inverseiterationwielandt(A, z0, mu, itmax, epsilon):

# to be filled in

return

ProgrammieraufgabeIII http://localhost:8888/nbconvert/html/LehreWS...

2 of 2 14/11/2018, 15:20

Referenzen

ÄHNLICHE DOKUMENTE

d) Zeigen Sie, dass 1 ein Eigenwert der Matrix AB ist. Geben Sie einen zugeh¨ origen normierten Eigenvektor an.. e) Erg¨ anzen Sie diesen zu einer Orthonormalbasis des R

[r]

[r]

Das Integral einer positiven Funktion muss

Die zugeh¨ orige H¨ ohenlinie schneidet D nur im Punkt p, der somit das einzige globale

Eine stetige und monoton fallende Funktion, die nicht die Nullfunktion ist, kann nicht zwei Nullstellen haben, ge- schweige denn

Daraus ergibt sich, dass Inhalte der für die Berechnung benötigten Register von der Funktion teilweise ebenfalls auf den Stack gerettet und am Ende wiederhergestellt werden

Beim zweiten Algorithmus lässt sich die genaue Zahl der Multiplikationen/Divisionen für ein gegebenes N nicht so einfach angeben, wohl aber eine obere Schranke. Bestimmen Sie