Gauss n x n Algorithmus Script

Die erste Zeile darf nicht mit 0 beginnen! Ggf. die Zeilen austauschen damit A1(1,1)<>0.[br]A1(1,1) ShortIndex für Element(A1,1,1) :: Funktionalität abgeschafft ggf. muss die Schreibweise auf die Command-Funktion Element angepasst werden?[br][br]Triangularize Sequence [br][list][*]erzeugt nach n-1 Schritten eine obere Dreicksmatrix[/*][*]startet bei Matrix [color=#1155Cc][b]A1[/b][/color] Zeile [b][color=#980000]1[/color][/b] und erzeugt [b][color=#1155Cc]A2[/color][/b] (erste Spalte 0) ... [color=#1155Cc][b]An[/b][/color] (obere Dreiecksmatrix)[/*][*]Multipliziere Zeile A(i) mit A(1,1) und ziehe ab Zeile A(1) multipliziert mit A(i,1) [br][/*][/list][list][*][b][color=#cc0000]A2[/color][/b]:=Sequence(Sequence(If(i > [b][color=#980000]1[/color][/b] , [b][color=#1155Cc]A1[/color][/b]([color=#980000][b]1, 1[/b][/color]) [b][color=#1155Cc]A1[/color][/b](i, k) - [b][color=#1155Cc]A1[/color][/b](i, [b][color=#980000]1[/color][/b]) [b][color=#1155Cc]A1[/color][/b]([color=#980000][b]1[/b][/color], k) , [b][color=#1155Cc]A1[/color][/b](i, k)) ,k,1,n + 1),i,1,n)[/*][*]um die Zahlen bei großem n nicht über alle Grenzen wachsen zu lassen verwende ich den Zeilenterm [b][color=#1155Cc]A1[/color][/b](i, k) - [b][color=#1155Cc]A1[/color][/b](i, [b][color=#980000]1[/color][/b])/[b][color=#1155Cc]A1[/color][/b]([color=#980000][b]1, 1[/b][/color]) [b][color=#1155Cc]A1[/color][/b]([color=#980000][b]1[/b][/color], k) zur Zeilen-Umformung[br][/*][/list]Diagonalize Sequence [br][list][*]erzeugt aus [color=#1155Cc][b]An[/b][/color] eine Matrix [b][color=#1155Cc]En[/color][/b] mit Diagonalelementen 1[/*][/list][list][*][color=#cc0000][b]En[/b][/color]:=Sequence(Sequence(If(k ≥ i , [b][color=#1155Cc]An[/color][/b](i, k) / [b][color=#1155Cc]An[/color][/b](i, i) , [color=#1155Cc][b]An[/b][/color][b][color=#1155Cc][/color][/b](i, k)) ,k,1,n + 1),i,1,n)[/*][/list]Back Substitue Sequence [br][list][*]erzeugt nach n-1 Schritten die Einheitsmatrix [/*][*]startet bei Matrix [b][color=#1155Cc]An[/color][/b] Zeile [b][color=#980000]n[/color][/b] und erzeugt [b][color=#1155Cc]E_n-1[/color][/b] (n- Spalte 0) ... [b][color=#1155Cc]E1[/color][/b] Einheitsmatrix[/*][*]Multipliziere Zeile D(n) mit D(i,k) und ziehe ab von Zeile D(i) [br][/*][/list][list][*][color=#cc0000][b]En-1[/b][/color]:=Sequence(Sequence(If( i < [color=#980000][b]n[/b][/color] , [color=#1155Cc][b]En[/b][/color][b][color=#1155Cc][/color][/b](i, k) - ([color=#1155Cc][b]En[/b][/color][b][color=#1155Cc][/color][/b]([color=#980000][b]n[/b][/color], k) [color=#1155Cc][b]En[/b][/color](i, [color=#980000][b]n[/b][/color])) , [color=#1155Cc][b]En[/b][/color][b][color=#1155Cc][/color][/b](i, k)) ,k,1,n + 1),i,1,n)[/*][/list][br]A1={{1,1,-2,3,1},{3,4,2,-3,42},{-1,6,-7,1,50},{-3,-2,1,-2,-14}}
[b]n-1 x Triangularize[/b] zur oberen Dreiecksmatrix An (A4)[br][b]Diagonalize [/b]Diagonalelement = 1 En (E4)[br][b]n-1 x Back Substitution[/b] Rücksubstitution spaltenweise zur Einheitsmatrix E1
Übungsbeispiele[br][br]n=3[br]A1 = {{11, 2, -1, 72}, {3, -6, 5, 114}, {-2, 1, -1, -33}}[br]A1 = {{1, -1, 1, 4}, {4, 6, 3, -20}, {8, 5, -5, -85}}[br]GLS:={16x1+24x2-16x3=64,24x1+61x2-34x3=56,-16x1-34x2+45x3=-73}[br]A1:={{16, 24, (-16), 64}, {24, 61, (-34), 56}, {(-16), (-34), 45, (-73)}}[br]A1= {{6,2,-1,5},{3,-4,-2,16},{2,-1,-2,5}}[br][br]n=4[br]A1:={{1, 1, 0, 1, 7}, {2, 0, 2, 1, 7}, {0, 1, 1, 1, 7}, {(-1), (-3), 0, 1, (-7)}}[br]A1={{4, (-5), 3, 6, 39}, {5, (-6), 6, 5, 43}, {(-4), 2, 9, 3, 6}, {2, (-3), 0, 1, 13}}[br][br]n=5[br]A1 = {{2, 4, 2, 3, 5, 5}, {-6, 4, 4, -2, 1, -5}, {7, -3, 6, 1, 2, -2}, {9, -1, 8, -4, 2, -4}, {1, 6, 10, 7, 9, 7}}[br]A1 = {{1, 4, 10, 2, 9, 44}, {2, 3, 4, 5, -5, 28}, {6, -2, 5, 4, -3, -9}, {8, -1, 2, 3, 4, 15}, {4, 4, 6, 4, -4, 24}}[br][br]n=6[br]A1 = {{1, 1, 1, 1, 1, 1, 1}, {1, 2, 3, 4, 5, 6, 1}, {1, 3, 6, 10, 15, 21, 0}, {1, 4, 10, 20, 35, 56, 0}, {1, 5, 15, 35, 70, 126, 1}, {1, 6, 21, 56, 126, 252, 1}}[br]A1 = {{4, -7, -6, 6, -7, -3, 77}, {1, 1, 2, -4, 0, -9, -47}, {2, 0, -1, 6, 8, 3, -25}, {9, -2, -6, 7, 0, -7, 1}, {-1, -7, -2, -8, 8, -3, -29}, {-1, -6, -9, -9, -2, 4, 80}}[br][br]n=10[br]A1 = {{-3, 5, -9, -6, 9, 2, 7, -9, -2, -6, 96}, {0, -2, -3, -8, -4, -5, 3, -5, 0, 9, 51}, {5, -6, 2, 5, 8, 1, -6, 5, -7, -6, -69}, {-4, -5, 0, 1, -4, 1, 9, 0, 5, -4, -50}, {-5, 4, -4, -1, 5, -5, 8, 4, 2, -6, -46}, {1, -7, 7, -1, 2, 0, -3, 1, -7, -1, 61}, {9, 0, 9, 2, -8, -9, -8, 3, -8, -4, 53}, {-6, 2, 0, 3, 3, 0, 0, 6, -3, 7, -19}, {1, 6, -3, 1, -9, 2, 4, -2, -8, -9, 114}, {0, -5, 0, 4, 1, -9, -2, -6, -5, -8, 32}}[br][size=85][br]teilweise entnommen aus https://www.zum.de/Faecher/M/NRW/pm/mathe/lgs5x5.htm[/size]

Information: Gauss n x n Algorithmus Script