• Keine Ergebnisse gefunden

Programmieraufgabe IV ( 6 + 10 + 4 = 20 Punkte)

N/A
N/A
Protected

Academic year: 2021

Aktie "Programmieraufgabe IV ( 6 + 10 + 4 = 20 Punkte)"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmieraufgabe IV ( 6 + 10 + 4 = 20 Punkte)

Abgabe in der Woche 17. bis 21. Dezember

In [368]: import numpy as np

import matplotlib.pyplot as plt import scipy.linalg as la

Teilaufgabe a)

Schreiben Sie eine Funktion, die eine gegebene Matrix (numpy-array) mittels Householder-Transformationen in eine obere Hessenbergmatrix überführt.

A

In [549]: def intohessenberg(A):

## to be completed ##

return A

Teilaufgabe b)

Implementieren Sie das in der Vorlesung behandelte QR-Verfahren zur Eigenwertbestimmung einer oberen Hessenbergmatrix (numpy-array). Input der Funktion soll die Matrix , eine maximale Anzahl von Iterationen und eine Toleranz sein, die in ein (sinnvolles) Abbruchkriterium eingeht.

Ausgegeben werden soll ein array mit den Näherungen für die Eigenwerte, geordnet nach Größe. Außerdem soll eine Liste der Eigenwertnäherungen aller Iterationen ausgegeben werden.

Beachten Sie, dass hier die in der Vorlesung besprochene praktische Umsetzung des QR-Verfahrens zur Eigenwertbestimmung implementiert werden soll, d.h. ein bloßes Ausrechnen der QR-Zerlegung und anschließende Zuweisung , explizites Aufstellen und Ausmultiplizieren von Givens-Rotations-Matrizen etc. soll hier nicht verwendet werden!

A A itmax

tol

A=QR ARQ

In [550]: def qr_eigenvalues(A, itmax, tol):

## to be completed ##

return eigvals, eigvalslist

Testen Sie Ihre Implementierung, indem Sie Ihre Ergebnisse für für eine zufällige symmetrische -Matrix und die übliche Matrix mit der in numpy vorimplementierten Eigenwertberechnung (wählen Sie eine geeignete Routine) vergleichen.

10x10 A= tridiag(−1, 4, 1) ∈R5×5

In [ ]:

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

1 of 2 04/12/2018, 15:22

(2)

Teilaufgabe c)

Erstellen Sie einen Plot, aus dem für jeden Eigenwert der Matrix die Konvergenzgeschwindigkeit der jeweiligen Eigenwertnäherungen des QR-Verfahrens hervorgeht. Als die "richtigen" Eigenwerte können Sie beispielsweise die mit einer numpy-Routine berechneten Eigenwerte oder die letzte Iterierte Ihres Verfahrens verwenden.

Test-Matrix soll wie unten angegeben sein.

Variieren Sie die Parameter und interpretieren Sie Ihre Beobachtungen.

B=B(a,b,c,d) a,b,c,d

In [551]: a = 1 b = 2 c = 3 d = 4

T = 0.5*np.array([[1,1,1,1],[1,1,-1,-1],[-1,1,-1,1],[-1,1,1,-1]]) B = np.diag([a,b,c,d])

B = np.matmul(T.T, np.matmul(B,T))

## to be completed ##

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

2 of 2 04/12/2018, 15:22

Referenzen

ÄHNLICHE DOKUMENTE

November 2005 durchgeführten Wahl der Vertreterinnen und Vertreter der Universitäts- dozentinnen und Universitätsdozenten sowie wissenschaftlichen Mitarbeiterinnen und

Aktiv und passiv wahlberechtigt sind alle Universitätsdozentinnen und Universitätsdozenten sowie die wissenschaftlichen Mitarbeiterinnen und Mitarbeiter und die Mitarbeiterinnen

Studienjahr 2004/2005 Ausgegeben am 20.. Konzessionen und ähnliche Rechte und Vorteile B. Wissenschaftliche Literatur und andere 3. Forderungen und sonstige

1 Stelle einer wissenschaftlichen Mitarbeiterin oder eines wissenschaftlichen Mitarbeiters im For- schungs- und Lehrbetrieb am Institut für Physik im Bereich

1 halbe Stelle einer wissenschaftlichen Mitarbeiterin oder eines wissenschaftlichen Mitarbeiters im Forschungs- und Lehrbetrieb am Institut für Österreichisches und

1 halbe Stelle einer wissenschaftlichen Mitarbeiterin oder eines wissenschaftlichen Mitarbeiters im Forschungs- und Lehrbetrieb (befristete Ersatzkraft) am Institut

1 halbe Stelle einer Assistentin oder eines Assistenten befristet für die Dauer von 4 Jahren am Institut für Zivilrecht, Ausländisches und Internationales Privatrecht

Durch Versagen der Feststellbremse setzt sich der LKW in Bewegung und st¨oßt schließlich gegen eine Mauer.. Die Reibung des Bootes soll