[list][*][url=https://www.geogebra.org/m/dc27zpw5]Grundlagen Elementarmatrizen[/url][math]\nearrow[/math][br][/*][/list]Ausgehend von A[sub]o[/sub] X = b wird in die App die erweitere Matrix A, enthält die Koeffizoenten des LGS und den Ergebnisvektor b, übernommen.[br]Die Funktion LE(A, j) erzeugt eine Liste von Elementarmatrizen um Spalte j von A zu Nullen [br]- addiere Zeile j zu Zeile j+1...n. [br][br][math]A=\left(\begin{array}{rrrr}a_{11}&a_{12}&a_{13}&a_{14}\\a_{21}&a_{22}&a_{23}&a_{24}\\a_{31}&a_{32}&a_{33}&a_{34}\\a_{41}&a_{42}&a_{43}&a_{44}\\\end{array}\right)[/math] [math]\Longrightarrow Product(LE1) = \, \left(\begin{array}{rrrr}1&0&0&0\\\frac{-a_{21}}{a_{11}}&1&0&0\\\frac{-a_{31}}{a_{11}}&0&1&0\\\frac{-a_{41}}{a_{11}}&0&0&1\\\end{array}\right)[/math][math]\cdot A \Longrightarrow \, \left(\begin{array}{rrrr}a_{11}&a_{12}&a_{13}&a_{14}\\0&c_{22}&c_{23}&c_{24}\\0&c_{32}&c_{33}&c_{34}\\0&c_{42}&c_{43}&c_{44}\\\end{array}\right)[/math][br][br]Nach j=1...n-1 Schritten erhalte ich eine obere Dreieckmatrix [br](11) A4 deren Diagonalelemente auf 1 gesetzt werden ==> [br](12) LE4:=DE(A4)[br](14) A5 [br][br]Die Rücksubstitution mit Funktion RE(A, j) läuft von j=n..2 und addiert Zeile j zu j-1: Nullen von Spalte j. Nach j=n...2 (n-1) Schritten erhalte ich die Einheitsmatrix und den Lösungsvektor.[br][br]Zur Dokumentatoin erstelle ich in (23), (25) die Parameter der Einheitsmatrizen:[br]Zeilenadditionen von rechts nach links: [color=#980000](z,s,a): Zeile z + a Zeile s[br][/color]Das Produkt aller LE[sub]i[/sub] und RE[sub]i[/sub] Matrizen ergibt die Inverse.[br][br]Wenn man die Elementarmatrizen LE[sub]i[/sub] nicht braucht (nicht sehen will), kann man die Schritte auslassen und direkt A[sub]i+1[/sub] berechnen A[sub]i+1[/sub]:= Product(LE(A[sub]i[/sub],i)) A[sub]i[/sub][br][br]Falls A Parameter enthält (unbestimmte Varaiblen) muss im Algebra Fenster n von Hand gesetzt werden - bevor die Matrix A im CAS geändert wird!
[br]Elementarmatrix mit nn Zeilen/Spalten [[b]Operation: Zeile(zle)+Zeile(spl)*ff[/b], zle=spl: Zeile(zle)*ff][br][br][code]Ex(zle,spl,ff,nn):=Sequence(Sequence(Element(Identity(nn),zz,ss)-(zle==spl && zle==zz && spl==ss)*1+If(zz==zle && ss==spl,ff,0),ss,1,nn),zz,1,nn);[br][/code][icon]/images/ggb/toolbar/mode_keepinput.png[/icon][br][br]Elementarmatrix zum Zeilen/Spaltentausch zz<->ss mit nn Zeilen/Spalten[br][code][br]T(zz,ss,nn):=Sequence(Element(Identity(nn),If(kk<>zz &&kk<>ss,kk, If(kk==zz,Max(zz,ss),Min(zz,ss)))),kk,1,nn);[/code][br][icon]/images/ggb/toolbar/mode_keepinput.png[/icon][br][br][code]LE(AA,jj):=Sequence(E(k,jj,-Element(AA,k,jj)/Element(AA,jj,jj)),k,n,jj+1)[br][/code][icon]/images/ggb/toolbar/mode_keepinput.png[/icon][br][br][code]DE(AA):=Sequence(If(Element(AA,k,k)==0,E(k,k,1),E(k,k,1/Element(AA,k,k))),k,1,n)[br][/code][icon]/images/ggb/toolbar/mode_keepinput.png[/icon]-Down since version ~V6.0.740[br][br][code]RE(AA, jj):=Sequence(E(k,jj,-Element(AA,k,jj)),k,1,jj-1)[br][/code][icon]/images/ggb/toolbar/mode_keepinput.png[/icon][br][br]