Zurück Vor +Ebene Home Inhalt Index Hilfe

Speicherung der Koeffizientenmatrix

Bei iterativen Methoden (Gesamtschritt-, Einzelschrittverfahren) treten bei der Berechnung keine neuen Nichtnull-Elemente auf. Die Koeffizientenmatrix wird im Verlauf der Rechnung nicht verändert. Hier läßt sich vorteilhaft eine nichtverkettete Datenstruktur verwenden. m ist dabei die Anzahl der Zeilen-/Spaltenvertauschungen.
 
Eine Koeffizienten-Matrix mit und einer Besetzungsdichte mit Nichtnull-Elementen von % benötigt bei konventioneller Speichertechnik Speicherplätze, obwohl nur Nichtnull-Elemente vorhanden sind.
 
Nichtverkettete Listen (ARRAYS) benötigen im allgemeinen weniger Speicherplatz als die direkte Speicherung verketteter Strukturen. Man wendet diese Speichertechnik an, um Zugriffe auf langsame Hintergrundspeicher zu vermeiden.
 
Bei schwach besetzten Matrizen speichere man möglichst nur Nichtnull-Elemente (i = Zeile, Spalte). Dies geschieht bei einer Matrix mit n Nichtnullementen in PASCAL oft als Record (Verbund):
      VAR A: ARRAY[1..n]
            OF RECORD
                Zeile:  INTEGER;
                Spalte: INTEGER;
                Wert:   REAL
               END;
Der Zugriff auf das i-te Nichtnullelment geschieht durch
      Zeilenindex  := A[i].Zeile
      Spaltenindex := A[i].Spalte
      Matrixelement:= A[i].Wert
In FORTRAN gibt es diese sehr übersichtliche Möglichkeit nicht. Dort müssen zwei ARRAYS definiert werden: Das eine enthält die Nichtnullelemente und das andere die Indizes.

Aufbau der Datenstruktur:


 
ist eine -Matrix mit sieben Nichtnull-Elementen

Im Speicher steht dann:


 
Das Speicherende ist hier durch gekennzeichnet.

Der Speicherbedarf läßt sich weiter verringern, wenn jeder neue Spalten- oder Zeilenindex nur einmal gespeichert wird.

Zurück Vor +Ebene Home Inhalt Index Hilfe

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik