Gauss Triag-Diag-Subst CAS Funktionen

Gauss-Schritte über CAS Funktionen
GaussTriag(A,s) - Spalte s, Elemente unterhalb der Diagonalen von A auf 0 setzen (s=1..n-1) - Obere Dreiecksmatrix durch Zeilenumformungen erzeugen - Führen sie GausTriag-Schritte durch bis alle Elemente (Spalte 1..n-1) unter der Diagonalen 0 sind GaussTriag(MM,zz):=Sequence(If(kk>zz,Element(MM,kk) - Element(MM,kk,zz)/Element(MM,zz,zz)*Element(MM,zz),Element(MM,kk)) ,kk,1,Length(MM))
xxx
0xx
00x
A2=GausTriag(A1,1) A3=GausTriag(A2,2)
GaussDiag(A) - Diagonal-Elemente von A auf 1 setzen - GaussSubst benötigt eine Diagonale aus 1en GaussDiag(MM):=Sequence(If(Element(MM,kk,kk)<>0, Element(MM,kk)/Element(MM,kk,kk),Element(MM,kk)),kk,1,Length(MM))
1xx
01x
001
A4=GausDiag(A3)
GaussSubst(A,s) - Spalte s, Elemente überhalb der Diagonalen von A auf 0 setzen (s=n..2) - Obere Dreiecksmatrix durch Zeilenoperationen zur Einheitsmatrix umformen - Wenden sie GaussSubst von Spalte n...2 an bis sie die Einheitsmatrix, Identity(n), erhalten GaussSubst(MM,zz):=Sequence(If(kk<zz,Element(MM,kk)-Element(MM,kk,zz)Element(MM,zz),Element(MM,kk)),kk,1,Length(MM));
100
010
001
A5=GausSubst(A4,3) A6=GausSubst(A5,2)
Die Ausgangsmatrix und die Zwischenschrittmatrizen so ausrichten, dass die Diagonalelemente besetzt sind - ggf. Zeilentausch durchführen. Tzs-Tauschfunktion in Werkzeugkiste (Buch CAS 4 lineare Gleichungen). Wenn sich 0-Zeilen ergeben tauschen sie diesen nach "unten". Tzs(zz,ss,nn):=Sequence(Sequence( If((zz==kk ∧ ss==jj) ∨ (ss==kk ∧ zz==jj) ∨ (kk==jj ∧ kk≠zz ∧ jj≠ss) ,1,0),kk,1,nn),jj,1,nn); Die Argumente der Funktionen sind MM (Matrix) und zz (Zeile) - immer verdoppelt um Überschneidungen mit anderen Namen im CAS- oder Algebra-Fenster zu vermeiden. Auch die Laufvariable kk nicht nochmal verwenden! Wenn sie die Funktionen GaussTriag, GaussDiag, GaussSubst in ein eigenes Applet übernehmen die Definitionen mit "Behalte Eingabe Toolbar Image Keep Input" abschließen!
Spaltentausch: Diagonalelemente besetzt halten
Spaltentausch: Diagonalelemente besetzt halten
Im Applet ist auch im Lösungsvektor x3 <==> x5 getauscht - verwende Tauschmatrix Tzs um die Standard-Reihenfolge herzustellen: Tzs(3,5,nx)Transpose(X) = Tzs(3,5,nx)Transpose(Substitute(X_{L},$20)) Beispiel: LGS mit Parameter a GLS:={(a-1)x1-2x2+ (a-4)x3=2,2x1+x2+4x3=0,(a-1)x1-2x2-a*x3=a} oder mit Spaltentausch 1<->2 GLS:={(a-1)x1-2x2+ (a-4)x3=2,2x1+x2+4x3=0,(a-1)x1-2x2-a*x3=a} {{0, 1, 0}, {1, 0, 0}, {0, 0, 1}}
Beispiel 3x3 mit Parameter a
Beispiel 3x3 mit Parameter a