2016-05-21 16 views
3

Ich benutze ojalgo, um ein (NxN) Ax = b System in Java zu lösen. Da es Chancen gibt, dass A eine singuläre Matrix sein wird, möchte ich, dass mein Code dies irgendwie weiß. Gibt es einen Weg? (Dokumentation besagt, dass die solve()-Methode eine mögliche Lösung zurückgibt, wenn das Problem unterqualifiziert ist und die invert()-Methode keine Ausnahme auslöst).Ojalgo: Handhabung von singulären Matrizen

Jede Hilfe würde sehr geschätzt werden. Vielen Dank im Voraus.

Antwort

2

Klingt so, als ob Sie die Solve- und Invert-Methoden direkt auf einer BasicMatrix verwenden.

Wechseln Sie stattdessen zur Verwendung einer LU-Zerlegung. Nachdem Sie die Matrix zerlegt haben, aber bevor Sie die Lösung versuchen, können Sie Folgendes aufrufen:

lu.isSquareAndNotSingular();

+1

Hallo Apete, Vielen Dank für Ihre schnelle Antwort. Könnten Sie bitte einen einfachen Code angeben, wo Sie das Ax = b Problem mit LU-Decomposition lösen? Vielen Dank! –