23.12.2012 Aufrufe

Vielteilchentheorien in Modellräumen mit diskreter Darstellung

Vielteilchentheorien in Modellräumen mit diskreter Darstellung

Vielteilchentheorien in Modellräumen mit diskreter Darstellung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4.3 Programmiertechniken 47<br />

liegenden Zahlen zu speichern (obere Dreiecksmatrix), was den Speicherbedarf auf N(N+1)<br />

2<br />

Zahlen reduziert. Sei A e<strong>in</strong>e solche Dreiecksmatrix, so ergibt sich die ursprüngliche Matrix<br />

zu C = AT + A, wenn man die Diagonale<strong>in</strong>träge der Matrix A <strong>mit</strong> 1 multipliziert hat,<br />

2<br />

und man kann jede gewünschte Operation <strong>mit</strong> der Gesamtmatrix durchführen.<br />

Da die Matrix schwach besetzt ist, d. h. viele ihrer E<strong>in</strong>träge Null s<strong>in</strong>d, kann man nur<br />

die nichtverschw<strong>in</strong>denden Matrixe<strong>in</strong>träge und deren Zeilenposition speichern. Dies führt<br />

allerd<strong>in</strong>gs erst dann zu e<strong>in</strong>er Speicherersparnis, wenn mehr als e<strong>in</strong> Drittel der E<strong>in</strong>träge<br />

verschw<strong>in</strong>den, da <strong>mit</strong> der Zeilenposition e<strong>in</strong>e zusätzliche Größe gespeichert werden muß.<br />

Die Kompression e<strong>in</strong>er Dreiecksmatrix soll anhand von Tabelle 4.3.1 verdeutlicht werden.<br />

Dort ist oben beispielhaft e<strong>in</strong>e Matrix angegeben. Diese Matrix wird zeilenweise von<br />

l<strong>in</strong>ks nach rechts durchlaufen und wann immer e<strong>in</strong> nicht vernachlässigbarer Zahlenwert<br />

auftaucht wird dieser (<strong>in</strong> A[i]) zusammen <strong>mit</strong> der Zeilenposition (<strong>in</strong> Z[i]) gespeichert.<br />

Zusätzlich wird, wenn das Ende e<strong>in</strong>er Zeile erreicht ist, die aufaddierte Anzahl der nichtverschw<strong>in</strong>denden<br />

E<strong>in</strong>träge (<strong>in</strong> N[i]) gespeichert. Die e<strong>in</strong>zutragenden Werte s<strong>in</strong>d unten <strong>in</strong><br />

der Tabelle für jede Zeile angegeben. Die Matrixe<strong>in</strong>träge, die zugehörigen Zeilenpositionen<br />

und die Anzahl der relevanten E<strong>in</strong>träge pro Zeile s<strong>in</strong>d jetzt <strong>in</strong> e<strong>in</strong>dimensionalen Feldern ge-<br />

⎛<br />

⎞<br />

1 0 0 3 7 0 0 −8<br />

⎜<br />

⎟<br />

⎜<br />

⎟<br />

⎜ 2 0 0 −9 0 −2 0 ⎟<br />

⎜<br />

⎟<br />

⎜<br />

⎟<br />

⎜ −3 0 0 −2 0 4 ⎟<br />

⎜<br />

⎟<br />

⎜<br />

⎟<br />

⎜<br />

−4 1 0 0 3 ⎟<br />

⎝<br />

⎠<br />

. ..<br />

.<br />

Matrixe<strong>in</strong>trag A[i] 1 3 7 -8 2 -9 -2 -3 2 4 -4 ...<br />

Zeilenposition Z[i] 1 4 5 8 2 5 7 3 6 8 4 ...<br />

Anzahl �= 0 N[j] 4 7 11<br />

Zeile j 1 2 3 4<br />

Tabelle 4.3.1: Zeilenweise Kompression e<strong>in</strong>er schwach besetzten Dreiecksmatrix.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!