• Keine Ergebnisse gefunden

5 Punkte ) Ubung 2¨ LR-Zerlegung tridiagonaler Matrizen Gegeben sei eine Tridiagonalmatrix A

N/A
N/A
Protected

Academic year: 2021

Aktie "5 Punkte ) Ubung 2¨ LR-Zerlegung tridiagonaler Matrizen Gegeben sei eine Tridiagonalmatrix A"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einf ¨uhrung in die Numerik ( Wintersemester 2015/16 ) Aufgabenblatt 7

Prof. Dr. Peter Bastian, Dominic Kempf Abgabe 11. Dezember 2015

IWR, Universit¨at Heidelberg

Ubung 1¨ LR Zerlegung im Besonderen

SeiA∈Rn×ngegeben durch

aij =





+1 wenni=j oderj =n

−1 wenni > j 0 sonst.

a) Begr ¨unden Sie, dass die LR Zerlegung ohne Pivotisierung vonAdie Eigenschaften

|lij| ≤1 und rnn= 2n−1 erf ¨ullt.

b) Zeigen Sie, dass f ¨ur eine LR Zerlegung mit totaler (Zeilen und Spalten) Pivotisierung gilt:

|rnn|= 2 = max

i,j=1..n{rij}

Tipp: Erstmal f ¨urn= 4ausprobieren und dann passenden Induktionsbeginn w¨ahlen.

( 5 Punkte ) Ubung 2¨ LR-Zerlegung tridiagonaler Matrizen

Gegeben sei eine Tridiagonalmatrix

A=

a1 b1 0

c2 a2 b2 . .. ... ...

. .. ... bn−1

0 cn an

mit |a1|>|b1|>0

|aj| ≥ |bj|+|cj|>0, bj, cj 6= 0, j ∈ {2, ..., n−1}

|an| ≥ |cn|>0. Zeigen Sie: Der Algorithmus

r1 :=a1

lj :=cj/rj−1 j ∈ {2, ..., n}

rj :=aj−ljbj−1 j ∈ {2, ..., n}

ist durchf ¨uhrbar (d.h.r1,· · ·, rn6= 0) und liefert die LR-Zerlegung

A=

1 0

l2 1 . .. ...

0 ln 1

r1 b1 0

r2 . ..

. .. bn−1

0 rn

Es gilt somitdet(A) =

n

Q

i=1

ri6= 0, woraus die Invertierbarkeit vonAfolgt.

( 5 Punkte )

(2)

Ubung 3¨ LR-Zerlegung mit Pivotsuche (Praktische ¨Ubung)

a) F ¨uge der HeaderdateiLR.hhaus der letzten praktischen ¨Ubung drei neue Funktionen hinzu:

template<typename T>

void row_equilibrate (hdnum::DenseMatrix<T>& A, hdnum::Vector<T>& s) {...}

soll die Zeilen¨aquilibrierung der MatrixAdurchf ¨uhren. In den Vektor ssollen die einzelnen Zeilenbetragssummen abgespeichert werden. Diese werden ben ¨otigt, auch die rechte Seite b richtig zu skalieren. Daf ¨ur ist die Funktion

template<typename T>

void apply_equilibrate (const hdnum::Vector<T>& s, hdnum::Vector<T>& b) {...}

gedacht.

Die Funktion

template<typename T>

void lr_partialpivot (hdnum::DenseMatrix<T>& A,

hdnum::Vector<std::size_t>& perm) {...}

soll daraufhin die LR-Zerlegung von A mit Spaltenpivotsuche berechnen und das Ergebnis L undR wiederum in die Matrix Aspeichern. Der Indexvektorperm soll sich die Permutation der Zeilen merken. Diese Funktion soll die Funktionvoid lr(...) aus der letzten ¨Ubung ersetzen. Der Rest der Schritte zur L ¨osung eines linearen Gleichungssystems analog wie in der letzten praktischen ¨Ubung. (SiehetestLR.ccaus dem ¨Ubungsblatt 6.)

b) Schreiben Sie ein neues C++-Programm, welches unter Benutzung der LR-Zerlegung ohne Spaltenpivotsuche

mit Spaltenpivotsuche

mit Spaltenpivotsuche und zus¨atzlich noch vorheriger Zeilen¨aquilibrierung das Gleichungssystem

10−16 0 10−16 3·10−16

1 10 0 23

4 12 12 0

5·1012 0 1012 1011

·x=

1.6·10−15 113

64 8.4·10+12

l ¨ost und vergleichen Sie das numerische Ergebnis mit der exakten L ¨osungx= (1,2,3,4)T.

(3)

c) Schreiben Sie eine neue Funktion template<typename T>

void lr_fullpivot( hdnum::DenseMatrix<T>& A, hdnum::Vector<std::size_t>& p, hdnum::Vector<std::size_t>& q ) {...}

zur LR-Zerlegung vonA mit totaler Pivotisierung. Dabei merkt man sich nicht nur die Zeilen- vertauschungen in einem Indexvektor p, sondern auch die Spaltenvertauschungen in einem Indexvektorq. Die Zeilenvertauschungen inpm ¨ussen mittels der Funktion

void permute forward()nach btransportiert werden. Entsprechend m ¨ussen die Spalten- vertauschungen inqmittels einer neuen Funktion

template<typename T>

void permute_backward (const hdnum::Vector<std::size_t>& q, hdnum::Vector<T>& x )

{...}

nachxtransportiert werden!

( 10 Punkte )

Referenzen

ÄHNLICHE DOKUMENTE

Ebert

Diese Aufgabe ist ziemlich schwierig und auch nicht so wichtig: keine Angst falls ihr das nicht l¨ osen k¨

b) Geben Sie f¨ ur die L¨ osung im dritten Quadranten eine geeignete 2D-Fixpunktgleichung an, und weisen Sie hierf¨ ur die Voraussetzungen des Fixpunksatzes von Banach nach...

Diese Funktion soll die Funktion void lr(...) aus der letzten ¨ Ubung ersetzen. Der Rest der Schritte zur L ¨osung eines linearen Gleichungssystems analog wie in der letzten

Als eine erste Anwendung der LR-Zerlegung sind wir nun in der Lage, eine neue Funktion zu schreiben, die zu einer regul¨aren Matrix A ihre Inverse A −1 ermittelt und zur

Die Umleitung nach dem Befehl mittels &gt; datei.dat bewirkt, daß eventuelle Ausgaben des Programms in eine Datei

Eine Methode, ein Gleichungssystem zu l¨ osen, haben wir mit der Octave- Funktion x1 = A\b in der letzten ¨ Ubung kennengelernt1. Eine andere ist das Verwenden der

Fakult¨at f¨ur