Beispiel zu 6.25 (d)

>    restart:

>    with(linalg):

Warning, the protected names norm and trace have been redefined and unprotected

Gegeben seien folgende Vektoren mit Einträgen aus dem Körper Q   der rationalen  Zahlen:

>    v1 := vector([0, 1, -1, 1]);v2 := vector([1, 0, 1, 1]);v3 := vector([1, 2, 1, 1]);v4 := vector([1, 1, 1, 1]);

v1 := vector([0, 1, -1, 1])

v2 := vector([1, 0, 1, 1])

v3 := vector([1, 2, 1, 1])

v4 := vector([1, 1, 1, 1])

Sei U=<v1,v2,v3,v4> , der von den Vektoren v1,v2,v3,v4 erzeugte Untervektorraum von   Q^`4x1`   .

Die Vektoren v1,v2,v3,v4 als Spalten zusammengefasst zu einer Matrix M:

>    M:=concat(v1,v2,v3,v4);

M := matrix([[0, 1, 1, 1], [1, 0, 2, 1], [-1, 1, 1, 1], [1, 1, 1, 1]])

Aufgabe:

Ergänze die linear unabhängigen Vektoren   u1 = vector([3, 4, 2, 4])  ,   u2 = vector([5, 5, 4, 6])   aus U zu einer Basis von U.

>    u1:=vector([ 3, 4, 2, 4]);u2:=vector([5, 5, 4, 6]);

u1 := vector([3, 4, 2, 4])

u2 := vector([5, 5, 4, 6])

u1 und u2  liegen tatsächlich in U. Probe !

>    #linsolve(M,u1),linsolve(M,u2);

Sind u1,u2 tatsächlich linear unabhängig ? Probe!

>    #concat(u1,u2);rank(%);

Als erstes  berechne ich selbst eine Basis von U durch Spaltenumformumgen an M (hier nicht ausgeführt) oder mit Hilfe von Maple eine Basis des Spaltenraums von M der ja gerade U ist:

>    ZRM:=colspace(M);

ZRM := {vector([1, 0, 0, 2]), vector([0, 1, 0, 0]), vector([0, 0, 1, -1])}

Die Basisvektoren bezeichnen wir mit w1,w2,w3:

>    w1:=vector([1, 0, 0, 2]);w2:=vector([0, 1, 0, 0]);w3:=vector([0, 0, 1, -1]);

w1 := vector([1, 0, 0, 2])

w2 := vector([0, 1, 0, 0])

w3 := vector([0, 0, 1, -1])

Als Spalten zu einer Matrix zusammengesetzt:

>    B:=concat(op(ZRM));

B := matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1], [2, 0, -1]])

Ergänzung von (u1,u2) zu einer Basis von U mit Hife des Austauschlemmas:

Dazu stelle ich u dar als Linearkombination der  Basis B von U.

>    linsolve(B,u1);

vector([3, 4, 2])

Demnach ist u=3 w[1] +4 w[2] +2 w[3]   .

Alle Vektoren in dieser Linearkombination haben von 0 verschiede Koeffizienten und können daher durch u1  ersetzt werden,  ohne die Basiseigenschaft zu zerstören. Nach der Ersetzung etwa von v1 durch u1 liegt  die Basis (u1,w2,w3) vor, die u1 enthält.

Nun ist u2 mit der neuen Basis darzustellen:

>    C:=concat(u1,w2,w3);

C := matrix([[3, 0, 0], [4, 1, 0], [2, 0, 1], [4, 0, -1]])

>    linsolve(C,u2);

vector([5/3, -5/3, 2/3])

Auch hier kann jetzt u2 gegen jeden der Basisvektoren ausgetauscht werden. Natürlich werfen wir nicht u1 wieder weg. Ich tausche w2 aus und erhalte die Basis (u1,u2,w3) von U , die beide vorgegebenen Vektoren u1,u2 enthält.

>   

Ergänzung von (u1,u2) zu einer Basis von U mit Hife elementarer Zeilenumformungen:

Danach bilde ich  die Matrix [ u 1,u2, w1,w2,w3] , berechne (Teilschritt I) eine SSF nur (!) für die ersten beiden Spalten (die u-s), räume mit deren Eckeinträgen nach rechts aus (Teilschritt II) und berechne dann eine SSF für die neuen w-Spalten:

>    uw:=concat(u1,u2,w1,w2,w3);

uw := matrix([[3, 5, 1, 0, 0], [4, 5, 0, 1, 0], [2, 4, 0, 0, 1], [4, 6, 2, 0, -1]])

>    uw_I:=addcol(uw,1,2,-5/3);

uw_I := matrix([[3, 0, 1, 0, 0], [4, -5/3, 0, 1, 0], [2, 2/3, 0, 0, 1], [4, -2/3, 2, 0, -1]])

>    uw_II_1:=addcol(uw_I,1,3,-1/3);

>   

uw_II_1 := matrix([[3, 0, 0, 0, 0], [4, -5/3, -4/3, 1, 0], [2, 2/3, -2/3, 0, 1], [4, -2/3, 2/3, 0, -1]])

>    uw_II_2:=addcol(addcol(uw_II_1,2,3,-4/5),2,4,3/5);

uw_II_2 := matrix([[3, 0, 0, 0, 0], [4, -5/3, 0, 0, 0], [2, 2/3, -6/5, 2/5, 1], [4, -2/3, 6/5, -2/5, -1]])

>    uw_III:=addcol(addcol(uw_II_2,3,4,1/3),3,5,5/6);

uw_III := matrix([[3, 0, 0, 0, 0], [4, -5/3, 0, 0, 0], [2, 2/3, -6/5, 0, 0], [4, -2/3, 6/5, 0, 0]])

Normiert sieht es schöner aus:

>    uw_III:=mulcol(mulcol(uw_III,2,-3),3,-5/6);

uw_III := matrix([[3, 0, 0, 0, 0], [4, 5, 0, 0, 0], [2, -2, 1, 0, 0], [4, 2, -1, 0, 0]])

>   

Jetzt stellt die dritte Spalte  von uw_III  eine Ergänzung von (u1,u2)  zu einer Basis von U dar.

Wie kann man hier eine Probe machen ?

Man kann z.B. die reduzierten Spaltenstufenformen  von B und uw_III vergleichen. Die reduzierte SSF von uw_III ist:

>    transpose(rref(transpose(submatrix(uw_III,1..4,1..3))));

matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1], [2, 0, -1]])

Letzteres ist genau die Matrix B. Die Spalten von uw_III und B erzeugen also (warum ?!) denselben Untervektorraum, und zwar U.

Eine andere Möglichkeit zu überprüfen, ob tatsächlich die neue Basis U erzeugbesteht z.B. darin zu klären, ob alle Vektoren in U liegen. Da sie linear unabhängig sind, müssen Sie aus Dimensionsgründen U erzeugen !

>