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