DMUG-Archiv 2004

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: RowReduce

Hallo Andreas,

Aus dem Help geht nicht klar hervor, ob RowReduce bei einer rechteckigen Matrix funktionieren soll, die eine numerische singuläre Matrix enthält. Es wird gesagt: "If m is a sufficiently nondegenerate rectangular matrix with k rows and more than k columns, then the first k columns of RowReduce[m] will form an identity matrix."

Was ist genügend regulär? Die ersten k Spalten können nur dann eine Einheitsmatix bilden, wenn die rechteckige Matrix eine k x k reguläre Matrix enthält. Im vorliegenden Fall ist jedoch NullSpace[M] eindimensional! Auf den ersten beiden Zeilen von M kann man RowReduce also nutzen, ohne dass die Symbole verschwinden:

In[14]:= RowReduce[{{1, -2, 5, a}, {4, -5, 8, b}}]
Out[14]= {{1, 0, -3, (1/3)*(-5*a + 2*b)}, {0, 1, -4, (1/3)*(-4*a + b)}}

Mit diesen beiden Lösungsvektoren kann und muss man noch die linear abhängige Zeile {-3, 3, -3, c} zum Verschwinden bringen, d.h. man muss 3 mal die erste Zeile addieren und 3 mal die zweite Zeile abziehen und erhält
{0, 0, 0, c - a + b}.

Dieses Ganze könnte man zu einem Verfahren ausbauen:
(1) M umordnen, bis in der linken oberen Ecke eine reguläre Matrix M' steht (i.e. alle Einträge von M' sind Zahlen und die Determintante von M' ist ungleich 0)
(2) auf die ersten rg[M'] Zeilen dieses Systems RowReduce[] anwenden
(3) die restlichen linear abhängigen Zeilen mit den zuvor erhaltenen Vektoren verschwinden lassen.

Ich habe das jetzt nicht ausgeführt, weil Sonntag ist und wegen der verschiedenen Probleme, die damit verbunden sind: Die Symbole finden, die Matrix umordnen und pivotisieren, die o.g. Schritte ausführen. Wenn Sie immer Matrizen haben, bei denen die Symbole auf der letzten Spalte stehen, könnte es dennoch ein Weg sein. Im allgemeinen scheint es fast befriedigender, den Gaussschen Algorithmus zu implementieren oder im Netz zu suchen.

Mit den besten Grüssen
Udo.

Andreas Rychen wrote:

Hallo, Mathematica Fans

Ich möchte für eine Matrix M, die neben Zahlen auch Variablen enthält, die reduzierte Treppenform berechnen (siehe Beilage: RowReduce.nb).

Der Befehl "RowReduce" führt jedoch nicht zum Ziel, da die Variablen verschwinden. Nur wenn ich M mit geeigneten Elementarmatrizen multipliziere, erhalte ich das Gewünschte.

Kann mir jemand verraten, wie ich mir diese Mühsal ersparen kann?

Mit freundlichen Grüssen

Andreas

Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html