Ein Löser für 2-2-Bandmatrizen

Bereiche im ersten Schritt zur Bandmatrix-Lösung

Erster Schritt zur Lösung der Gleichung in einer 2-2-Bandmatrix

Bereiche im zweiten Schritt zur Bandmatrix-Lösung

Zweiter Schritt zur Lösung der Gleichung in einer 2-2-Bandmatrix

Matrix A als Band und Bedingungsvektor B

Matrix A dargestellt als Band (Diagonalememente in mittlerer Spalte) und Bedingungsvektor B

LR-Zerlegung der Matrix in Banddarstellung

Banddarstellung der LR-Zerlegung für die 2-2-Bandmatrix

Lösungsvektor X

Lösungsvektor X

Schnelle Lösung von Gleichungssystemen mit Bandmatrizen von 2 unteen und 2 oberen Nebendiagonalen

Worum geht's?

Die Berechnung von Splinekurven erfordert die Lösung von Gleichungssystemen, wobei die Anzahl Gleichungen nahe der Anzahl Stützstellen liegt. Für kubische Splines sind die Matrizen der entsprechenden Gleichungssysteme nur entlang der Diagonalen sowie beiderseitss je einer Nebendiagonalen besetzt. Für diese Gleichungssysteme gibt es bekannte einfache Lösungen.

Für Splinefunktionen höherer Ordnung oder andere Randwertprobleme kann es nützlich sein, Gleichungssysteme mit je zwei Nebendiagonalen lösen zu können. Eine solche Lösung wird im Folgenden hergeleitet und gezeigt.

LR-Zerlegung

Die Lösung des Gleichungssystems beruht auf der LU-Zerlegung und der Tatsache - der Beweis sei hier unterlassen - dass die LU-Zerlegung eine Bandmatrix wieder eine Bandmatrix derselben Breite ist.

Gehen wir von der Ausgangsmatrix A mit 2-2-Bandstruktur aus und betrachten die beiden ersten Schritte der LR-Zerlegung:

1. Schritt

Der erste Schritt macht aus der Matrix A = A(1) die Matrix A(2)

Welche Elemente werden wie verändert?

  • Die 1. Zeile bleibt unverändert
  • Die 1. Spalte ab Zeile 2 entsteht durch Division der Elemente a21...an1 durch a11, wobei wegen der Bandstruktur nur a21 und a31 von Belang sind, die anderen sind Null
  • Die Untermatrix a(2)22 bis a(2)33 entsteht durch das Subtraktion des dyadischen Vektorprodukts der Vektoren [a(2)21, a(2)31]T mit [a(1)12, a(1)13] von [[a(1)22, a(1)23], [a(1)32, a(1)33]]
    a(2)22 = a(1)22 – (a(1)12a(1)21)/a(1)11 usw.
  • Spalte 4, in der Grafik orange eingefärbt, entsteht ebenfalls aus Spalte 4 durch Subtraktion eines Produkts aus dem Vektor der Spalte 1 mit Zeile 1. Diese enthält jedoch Null, so bleiben Spalte 4 und alle folgenden unverändert.
  • Analoges gilt für die Zeile 4, gelb eingefärbt, und weiter bis Zeile n

Alles in Allem werden also nur Elemente in der Untermatrix A(1)2..3,1..3 verändert.

2. Schritt

Im 2. Schritt wird die Matrix A(2) in die Matrix A(3) überführt, und wieder werden nur die Elemente in einem 2x3-Block verändert.

Welche Elemente werden wir verändert?

  • Zeile 2 bleibt unverändert
  • Spalte 2, Elemente a(3)32 und a(3)42 entstehen aus a(2)32 und a(2)42 durch Division mit a(2)22 aus dem 1. Schritt. Diese beiden Manipulationen müssen in einer Formel zusammengefasst werden: a(3)32 = (a(1)32 – (a(2)12a(2)31)/a(2)11)/a(2)22) usw.
  • Die Untermatrix a(3)33 bis a(3)44 entsteht durch Subtraktion des dyadischen Vektorprodukts der Vektoren [a(3)32, a(3)42]T mit [a(2)23, a(2)24] von [[a(2)33, a(2)34], [a(2)43, a(2)44]]
    Davon ist speziell das Diagonalelement a(3)33 zu erwähnen, welches aus a(2)33 hervorgeht. Element a(2)33 kann nicht zwischengespeichert werden, und deshalb wird der Berechnungsschritt von a(1)33 nach a(2)33 auch in die Formel aufgenommen. Für die Elemente der 4. Zeile und 4. Spalte können die Eingangswerte aus der Originalmatrix verwendet werden

Für die weiteren Berechnungsschritte k liegen die Eingangswerte der Berechnungen entweder in A(k-1), d.h. im Bereich des Rechenschemas, oder in der Originalmatrix A vor.

Beispiel

Gleichungssystem Ax - b = 0

Matrix A  und Bedingungsvektor b

Das implementierte Rechenschema kann 20 Gleichungen verarbeiten, aber auch weniger. Es werden keine Pivotelemente gesucht. Im Eingangsbereich von A sind die Spalten a2 und a1 die unteren Nebendiagonalen, Spalten c1 und c2 die oberen.

LR-Zerlegung und Vektor y

Die LR-Zerlegung von A in einem Format analog zur speichersparenden Zusammenlegung in der vollen Matrizenform: die L-Matrix, mit M bezeichnet, hat eine Diagonale mit lauter Einsen, die nicht gespeichert werden, sondern im Rechenschema eingesetzt sind.

Lösungsvektor x

Die Lösung des Gleichungssystems.

 

 

 

 

 

 

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

Sei der erste der kommentiert
Top