2009-07-20 5 views
2

Ich versuche eine Funktion zu schreiben, die eine einzelne Lösung für ein unterrepräsentiertes Gleichungssystem erzeugt (z. B. ist die Matrix, die das System beschreibt, breiter als hoch). Um dies zu tun, habe ich in der LAPACK-Dokumentation nach einer Möglichkeit gesucht, eine Matrix auf ihre reduzierte Stufenform zu reduzieren, ähnlich der Funktion rref() in Mathematica- und TI-Rechnern. Die nächste, die ich fand, war http://software.intel.com/en-us/forums/intel-math-kernel-library/topic/53107/ dieser kleine Thread. Dieser Thread scheint jedoch zu implizieren, dass das einfache Nehmen der oberen Dreiecksmatrix "U" (und Teilen jeder Reihe durch die Diagonale) die gleiche wie die reduzierte Stufenform einer Matrix ist, was ich nicht für den Fall halte. Ich könnte rref() selbst programmieren, aber ich glaube nicht, dass ich die Performance erreichen kann, für die LAPACK berühmt ist.Lapacks Zeilenreduktion

1) Gibt es einen besseren Weg, um einfach eine spezifische Lösung für ein unterrepräsentiertes System zu bekommen?
2) Wenn nicht, gibt es eine Möglichkeit für LAPACK, eine Matrix zu reduzieren?

Danke!

+0

Die U-Matrix in einer LU-Zerlegung ist ein 'ref'. Durch Teilen jeder Reihe durch den führenden Eintrag wird ein 'ref' in ein' rref' umgewandelt. – Sharpie

Antwort

3

Ein häufig verwendetes Verfahren, um dies die Fehlerquadratlösung, siehe lapack der sgelsx

+0

Ich habe das versucht und es scheint zu funktionieren. Vielen Dank. – Litherum