2012-04-12 13 views
0

Wie kann ich eine reguläre Matrix in eine Matrix mit vollständiger Rangfolge in R umwandeln? Gibt es dafür eine Methode?Machen Sie eine Matrix Full-Ranked?

Ich habe eine Matrix, die linear abhängige Spalten haben kann und ich muss übergeben es an eine Funktion, die sein Argument eine Matrix mit vollen Rang erfordert. Da linear abhängige Spalten sowieso nicht von Interesse sind, suche ich nach einer Funktion, die solche Spalten entfernt, bis die Matrix den vollen Rang hat. Es kann natürlich mehrere Lösungen geben, aber jeder von ihnen sollte in Ordnung sein.

Im Moment baue ich nur die Matrix Spalte für Spalte und nur eine Spalte hinzufügen, wenn es die resultierende Matrix ist immer noch Fullrank, aber es fühlt sich an wie es sollte eine bessere Möglichkeit, dies zu tun.

+4

Sie sollten wirklich mehr Details zur Verfügung stellen. Zum Beispiel, wenn Sie immer nur eine Identitätsmatrix zurückgeben, dann verwandeln Sie die "normale" Matrix immer in eine vollständig bewertete Matrix. – Dason

+0

Meinst du, dass Sie eine Matrix mit unabhängigen Zeilen (oder Spalten) haben, die nicht quadratisch ist, und Sie genug zusätzliche unabhängige Zeilen (oder Spalten) erstellen möchten, um es zu einer quadratischen, vollständigen Matrix zu machen? –

+0

Bitte definieren Sie "reguläre Matrix." Und noch besser, lassen Sie uns wissen, welches Problem Sie lösen möchten. Das Ändern von Matrixelementen, um eine lineare Unabhängigkeit zu erzwingen, ist wahrscheinlich nicht das, was Sie tun möchten. –

Antwort

0

Ein anderer Ansatz besteht darin, | y - Axe | zu minimieren + c | x | , durch Anheften einer Identitätsmatrix an A und Nullen an y. Der Parameter c (a.k.a. & lambda;) wird mit der Anpassung von y - Ax und dem Halten von | x | klein. Dann führen Sie einen zweiten Fit mit den r größten Komponenten von x, r = Rang (A) (oder eine beliebige Zahl, die Sie bitte).

Verwandte Themen