dünn besetzte Matrizen

Status
Nicht offen für weitere Antworten.
M

Matze1908

Gast
Hallo,

es geht um ein Problem zum Lösen linearer Gleichungssysteme der Form Ax=b. Ich nutze das Package Jama zum Darstellen der Vektoren x und b sowie der Matrix A. Nun habe ich aber eine große Menge an Variablen auszuwerten, so dass die Matrix A mindestens eine 10.000 x 10.000 Matrix wird. Dummerweise kommt es allerdings zu einer java.lang.OutOfMemoryException. A ist aber nur dünn besetzt. Daher meine Frage, ob es irgendeine Möglichkeit zur effizienteren Speicherung schwach besetzter Matrizen gibt, ähnlich dem Matrixtyp "sparse" in matlab? Oder wie könnte ich das Problem sonst umgehen?

Vielen Dank,
Matze
 

kaie

Bekanntes Mitglied
Einfachste, aber nicht gerade eleganteste Lösung: setz den Speicher der Java Virtual Machine rauf. Wenn Du die JVM z.B. mit der folgenden Zeile startest:
Code:
java -Xms32m -Xmx512m MeineKlasse
erhältst Du 32 MB Startspeicher, der dann nach und nach bis 512 MB erhöht werden kann. Für eine einzelne Matrix Deiner Größe sollte das gerade noch so eben reichen.
 

foobar

Top Contributor
Was für eine Datestruktur verwendest du denn zur Speicherung der Matrix? Array, Vector, ArrayList?

Du könntest eine Primitiv-Collection implementieren, die die einzelnen Werte in einem short oder byte abspeichert, dadurch könntest du etwas Speicher sparen.
 
M

Matze1908

Gast
Super, vielen Dank. Werd' jetzt erst mal alles ausprobieren :D

@footbar: die Matrix ist ein array
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben