System of Linear Equations: Gaussian Elimination

System of Linear Equations: Gaussian Elimination
Loading the math board and drawing, please wait…
2017-03-13 03:32
This example demonstrates Gaussian elimination for solving systems of linear equations. It shows how to transform an augmented matrix into row echelon form through a series of row operations. Commands used include Append, Take, IndexOf, CountIf, Sequence, Join, Remove, Element, Insert, If, Sort, RemoveUndefined, Textfield, TableText, LaTeX, Distance. Suitable for high school math education and students learning linear algebra.

GeoGebra Commands & Parameters

  1. Append(Take[lista1, 1, m], Element[listater, 1]) → listaf1
  2. Append(Take[lista7, 1, m], Element[listater, 5]) → listaf5
  3. Append(Take[lista8, 1, m], Element[listater, 6]) → listaf6
  4. Append(Take[lista2, 1, m], Element[listater, 2]) → listaf2
  5. Append(Take[lista5, 1, m], Element[listater, 3]) → listaf3
  6. Append(Take[lista6, 1, m], Element[listater, 4]) → listaf4
  7. Take({a_1, a_8, a_{15}, a_{22}, a_{29}, a_{36}}, 1, n) → listac1
  8. IndexOf(f, listac1) → h
  9. CountIf(t ≟ f, t, listac1) → e
  10. Sequence((f(x) * i / i), i, 1, e) → lista4
  11. Sequence(Take[lista4, 1, i], i, 1, e - 1) → lista9
  12. Sequence(IndexOf[f, Remove[listac1, Element[lista9, i]]], i, 1, e - 1) → lista10
  13. Sequence(Element[lista10, i] + i, i, 1, e - 1) → lista11
  14. Join({{h}, lista11}) → lista13
  15. Remove(Sequence[i, i, 1, n], lista13) → lista14
  16. Element(listac1, Element[lista14, 1]) → p
  17. Remove(Sequence[i, i, 1, n], {Element[lista14, 1], Element[lista13, 1]}) → lista15
  18. Insert(Element[lista14, 1], lista15, 1) → lista16
  19. If(Element[listac1, 1] ≟ f, Insert[Element[lista13, 1], lista16, Element[lista14, 1]], Sequence[i, i, 1, n]) → lista17
  20. Sort(Take[{listaf1, listaf2, listaf3, listaf4, listaf5, listaf6}, 1, n], lista17) → matriz1
  21. Insert({Sequence[Expand[Element[matriz1, 1, i] / p(x)], i, 1, m + 1]}, Take[matriz1, 2, n], 1) → lista20
  22. Sequence(Sequence[Expand[((-Element[lista20, i, 1]) * Element[lista20, 1, j]) + Element[lista20, i, j]], j, 1, m + 1], i, 2, n) → matriz2
  23. Insert({Element[lista20, 1]}, matriz2, 1) → lista21
  24. CountIf(t ≟ f, t, Sequence[Element[lista21, i, 2], i, 2, n]) → e_1
  25. Sequence(Take[Sequence[(f(x) * j / j), j, 1, e_1], 1, i], i, 1, e_1 - 1) → lista24
  26. Sequence(Element[lista21, i, 2], i, 2, n) → lista23
  27. Sequence(IndexOf[f, Remove[lista23, Element[lista24, i]]], i, 1, e_1 - 1) → lista25
  28. Sequence(Element[lista25, i] + i, i, 1, e_1 - 1) → lista26
  29. IndexOf(f, lista23) → i
  30. Join({{i}, lista26}) → lista27
  31. Remove(Sequence[i, i, 1, n - 1], lista27) → lista28
  32. Remove(Sequence[i, i, 1, n - 1], {Element[lista28, 1], Element[lista27, 1]}) → lista29
  33. Insert(Element[lista28, 1], lista29, 1) → lista30
  34. If(Element[lista23, 1] ≟ f, If[Length[lista27] ≟ n - 1, Sequence[i, i, 1, n - 1], Insert[Element[lista27, 1], lista30, Element[lista28, 1]]], Sequence[i, i, 1, n - 1]) → lista32
  35. Insert({Element[lista21, 1]}, Sort[Sequence[Element[lista21, i], i, 2, n], lista32], 1) → lista33
  36. RemoveUndefined(Join[{Take[lista33, 1, 1], {Sequence[Expand[Element[lista33, 2, i] / Element[lista33, 2, 2]], i, 1, m + 1]}, Take[lista33, 3, n]}]) → lista35
  37. If(Element[lista33, 2, 2] ≟ f, lista33, lista35) → matriz3
  38. Sequence(If[Element[matriz3, i, 2] ≟ f, Element[matriz3, i], Sequence[Expand[((-Element[matriz3, i, 2]) * Element[matriz3, 2, j]) + Element[matriz3, i, j]], j, 1, m + 1]], i, 3, n) → matriz4
  39. CountIf(t ≟ f, t, Sequence[Element[matriz4, i, 3], i, 1, n - 2]) → o
  40. Sequence(Take[Sequence[(f(x) * j / j), j, 1, o], 1, i], i, 1, o - 1) → matriz5
  41. Sequence(Element[matriz4, i, 3], i, 1, n - 2) → lista36
  42. Sequence(IndexOf[f, Remove[lista36, Element[matriz5, i]]], i, 1, o - 1) → lista37
  43. Sequence(Element[lista37, i] + i, i, 1, o - 1) → lista38
  44. IndexOf(f, lista36) → r
  45. Join({{r}, lista38}) → lista39
  46. Remove(Sequence[i, i, 1, n - 2], lista39) → lista40
  47. Remove(Sequence[i, i, 1, n - 2], {Element[lista40, 1], Element[lista39, 1]}) → lista41
  48. Insert(Element[lista40, 1], lista41, 1) → lista42
  49. If(Element[lista36, 1] ≟ f, If[Length[lista39] ≟ n - 2, Sequence[i, i, 1, n - 2], Insert[Element[lista39, 1], lista42, Element[lista40, 1]]], Sequence[i, i, 1, n - 2]) → lista43
  50. Insert(Take[matriz3, 1, 2], Sort[Sequence[Element[matriz4, i], i, 1, n - 2], lista43], 1) → matriz6
  51. RemoveUndefined(Insert[{If[Element[matriz6, 3, 3] ≟ f, Sequence[Element[matriz6, 3, i], i, 1, m + 1], Sequence[Expand[Element[matriz6, 3, i] / Element[matriz6, 3, 3]], i, 1, m + 1]]}, Join[{Take[matriz6, 1, 2], If[n ≥ 4, Take[matriz6, 4, n]]}], 3]) → lista44
  52. Sequence(If[Element[lista44, i, 3] ≟ f, Element[lista44, i], Sequence[Expand[((-Element[lista44, i, 3]) * Element[lista44, 3, j]) + Element[lista44, i, j]], j, 1, m + 1]], i, 4, n) → matriz7
  53. Insert(Take[lista44, 1, 3], matriz7, 1) → matriz8
  54. Sequence(Element[matriz8, i, 4], i, 4, n) → lista45
  55. IndexOf(f, lista45) → v
  56. CountIf(t ≟ f, t, Sequence[Element[matriz8, i, 4], i, 4, n]) → u
  57. Sequence(Take[Sequence[(f(x) * j / j), j, 1, u], 1, i], i, 1, u - 1) → lista46
  58. Sequence(IndexOf[f, Remove[lista45, Element[lista46, i]]], i, 1, u - 1) → lista47
  59. Sequence(Element[lista47, i] + i, i, 1, u - 1) → lista48
  60. Join({{v}, lista48}) → lista49
  61. Remove(Sequence[i, i, 1, n - 3], lista49) → lista50
  62. Remove(Sequence[i, i, 1, n - 3], {Element[lista50, 1], Element[lista49, 1]}) → lista51
  63. Insert(Element[lista50, 1], lista51, 1) → lista52
  64. If(Element[lista45, 1] ≟ f, If[Length[lista49] ≟ n - 3, Sequence[i, i, 1, n - 3], Insert[Element[lista49, 1], lista52, Element[lista50, 1]]], Sequence[i, i, 1, n - 3]) → lista53
  65. Join({{1, 2, 3}, lista53 + 3}) → lista58
  66. Sort(matriz8, lista58) → matriz9
  67. Append(Sequence[Expand[Element[lista1, i] / a_1(x)], i, 1, m], Expand[Element[listater, 1] / a_1(x)]) → listaf12
  68. Take({"f_1", "f_2", "f_3", "f_4", "f_5", "f_6"}, 1, n) → lista3
  69. Element(lista3, Element[lista13, 1]) → texto38
  70. Element(lista3, Element[lista14, 1]) → texto39
  71. Textfield(a_7) → c_{11}
  72. Textfield(a_{14}) → c_{12}
  73. Textfield(a_{21}) → c_{13}
  74. Textfield(a_{28}) → c_{14}
  75. Textfield(a_{35}) → c_{15}
  76. Textfield(a_{42}) → c_{16}
  77. Textfield(a_7) → c_{21}
  78. Textfield(a_{14}) → c_{22}
  79. Textfield(a_{21}) → c_{23}
  80. Textfield(a_{28}) → c_{24}
  81. Textfield(a_{35}) → c_{25}
  82. Textfield(a_{42}) → c_{26}
  83. Textfield(a_7) → c_{31}
  84. Textfield(a_{14}) → c_{32}
  85. Textfield(a_{21}) → c_{33}
  86. Textfield(a_{28}) → c_{34}
  87. Textfield(a_{35}) → c_{35}
  88. Textfield(a_{42}) → c_{36}
  89. Textfield(a_7) → c_{41}
  90. Textfield(a_{14}) → c_{42}
  91. Textfield(a_{21}) → c_{43}
  92. Textfield(a_{28}) → c_{44}
  93. Textfield(a_{35}) → c_{45}
  94. Textfield(a_{42}) → c_{46}
  95. Textfield(a_7) → c_{51}
  96. Textfield(a_{14}) → c_{52}
  97. Textfield(a_{21}) → c_{53}
  98. Textfield(a_{28}) → c_{54}
  99. Textfield(a_{35}) → c_{55}
  100. Textfield(a_{42}) → c_{56}
  101. Textfield(a_1) → a_{73}
  102. Textfield(a_2) → a_{74}
  103. Textfield(a_3) → a_{77}
  104. Textfield(a_4) → a_{47}
  105. Textfield(a_5) → a_{75}
  106. Textfield(a_6) → a_{48}
  107. Textfield(a_8) → a_{49}
  108. Textfield(a_9) → a_{76}
  109. Textfield(a_{10}) → a_{67}
  110. Textfield(a_{11}) → a_{68}
  111. Textfield(a_{12}) → a_{69}
  112. Textfield(a_{13}) → a_{70}
  113. Textfield(a_{15}) → a_{50}
  114. Textfield(a_{16}) → a_{57}
  115. Textfield(a_{17}) → a_{58}
  116. Textfield(a_{18}) → a_{59}
  117. Textfield(a_{19}) → a_{60}
  118. Textfield(a_{20}) → a_{78}
  119. Textfield(a_{22}) → a_{71}
  120. Textfield(a_{23}) → a_{72}
  121. Textfield(a_{24}) → a_{43}
  122. Textfield(a_{25}) → a_{44}
  123. Textfield(a_{26}) → a_{45}
  124. Textfield(a_{27}) → a_{46}
  125. Textfield(a_{29}) → a_{51}
  126. Textfield(a_{30}) → a_{52}
  127. Textfield(a_{31}) → a_{53}
  128. Textfield(a_{32}) → a_{54}
  129. Textfield(a_{33}) → a_{55}
  130. Textfield(a_{34}) → a_{56}
  131. Textfield(a_{36}) → a_{61}
  132. Textfield(a_{37}) → a_{62}
  133. Textfield(a_{38}) → a_{63}
  134. Textfield(a_{39}) → a_{64}
  135. Textfield(a_{40}) → a_{65}
  136. Textfield(a_{41}) → a_{66}
  137. Take({a_2, a_9, a_{16}, a_{23}, a_{30}, a_{37}}, 1, n) → listac2
  138. Take({a_3, a_{10}, a_{17}, a_{24}, a_{31}, a_{38}}, 1, n) → listac3
  139. Take({a_4, a_{11}, a_{18}, a_{25}, a_{32}, a_{39}}, 1, n) → listac4
  140. Take({a_5, a_{12}, a_{19}, a_{26}, a_{33}, a_{40}}, 1, n) → listac5
  141. Take({a_6, a_{13}, a_{20}, a_{27}, a_{34}, a_{41}}, 1, n) → listac6
  142. IndexOf(f, listac1) → g
  143. Remove(listac1, {f, f}) → lista12
  144. Element(lista3, 1) → texto41
  145. TableText(Take[{listaf1, listaf2, listaf3, listaf4, listaf5, listaf6}, 1, n], If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → matriz1_1
  146. If(Element[listac1, 1] ≟ f, texto40, texto43) → texto42
  147. TableText(lista20, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → lista18
  148. TableText(lista21, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto44
  149. Sequence(If[Element[lista20, i, 1] ≟ f, " ", (((Expand[(-Element[lista20, i, 1])] * Element[lista3, 1]) * "+") * Element[lista3, i])], i, 2, n) → lista22
  150. TableText(matriz3, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto47
  151. Element(lista33, 2, 2) → q
  152. TableText({lista22}, "cv") → texto49
  153. If((k > l) ∧ (k > 2), -1, If[(k < l) ∧ (k ≥ 2), 1, 0]) → j
  154. Element(lista3, Element[lista28, 1] + 1) → texto52
  155. If(Element[lista21, 2, 2] ≟ f, texto53, texto48) → texto50
  156. Sequence(If[Element[matriz3, i, 2] ≟ f, " ", (((Expand[(-Element[matriz3, i, 2])] * Element[lista3, 2]) * "+") * Element[lista3, i])], i, 3, n) → lista31
  157. TableText({lista31}, "cv") → texto55
  158. Insert(Take[matriz3, 1, 2], matriz4, 1) → lista34
  159. TableText(lista34, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto57
  160. Element(lista33, 2, 2) → s
  161. Element(matriz6, 3, 3) → t
  162. Element(lista3, Element[lista40, 1] + 2) → texto61
  163. If(Element[lista21, 2, 2] ≟ f, texto53, texto48) → texto63
  164. If(Element[matriz4, 1, 3] ≟ f, texto62, texto60) → texto64
  165. Element(lista3, Element[lista40, 1] + 2) → texto65
  166. Sequence(If[Element[lista44, i, 3] ≟ f, " ", (((Expand[(-Element[lista44, i, 3])] * Element[lista3, 3]) * "+") * Element[lista3, i])], i, 4, n) → lista55
  167. TableText({lista55}, "cv") → texto71
  168. TableText(lista44, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto67
  169. TableText(matriz8, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto58
  170. RemoveUndefined(If[Element[matriz9, 4, 4] ≟ f, matriz9, Insert[{Sequence[Expand[Element[matriz9, 4, i] / Element[matriz9, 4, 4]], i, 1, m + 1]}, Join[{Take[matriz9, 1, 3], If[n ≥ 5, Take[matriz9, 5, n]]}], 4]]) → lista54
  171. TableText(lista54, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto68
  172. Element(matriz8, Element[lista50, 1] + 3, 4) → f_1
  173. Element(lista3, Element[lista50, 1] + 3) → texto73
  174. If(Element[matriz8, 4, 4] ≟ f, texto74, texto72) → texto75
  175. RemoveUndefined(If[Element[lista54, 4, 4] ≟ f, lista54, Join[{Take[lista54, 1, 4], {Sequence[Expand[((-Element[lista54, 4, i]) * Element[lista54, 5, 4]) + Element[lista54, 5, i]], i, 1, m + 1]}, If[n ≟ 6, {Sequence[Expand[((-Element[lista54, 4, i]) * Element[lista54, 6, 4]) + Element[lista54, 6, i]], i, 1, m + 1]}]}]]) → lista56
  176. TableText(lista56, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto77
  177. TableText({Sequence[If[Element[lista54, i, 4] ≟ f, " ", (((Expand[(-Element[lista54, i, 4])] * Element[lista3, 4]) * "+") * Element[lista3, i])], i, 5, n]}, "cv") → texto79
  178. RemoveUndefined(If[Element[lista56, 5, 5] ≟ f, If[Element[lista56, 6, 5] ≟ f, lista56, Join[{Take[lista56, 1, 4], If[n ≟ 6, {Sequence[Expand[Element[lista56, 6, i] / Element[lista56, 6, 5]], i, 1, m + 1]}], {Sequence[Element[lista56, 5, i], i, 1, m + 1]}}]], Join[{Take[lista56, 1, 4], {Sequence[Expand[Element[lista56, 5, i] / Element[lista56, 5, 5]], i, 1, m + 1]}, If[n ≟ 6, {Sequence[Element[lista56, 6, i], i, 1, m + 1]}]}]]) → lista57
  179. Element(lista56, 5, 5) → p_1
  180. Element(lista56, 6, 5) → q_1
  181. If(p_1 ≟ f, If[q_1 ≟ f, " ", texto83], texto84) → texto85
  182. Join({Take[lista57, 1, 5], {Sequence[Expand[((-Element[lista57, 5, i]) * Element[lista57, 6, 5]) + Element[lista57, 6, i]], i, 1, m + 1]}}) → matriz10
  183. TableText(matriz10, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto87
  184. Element(lista57, 6, 5) → r_1
  185. If(Element[lista57, 6, 5] ≟ f, " ", (((Expand[(-Element[lista57, 6, 5])] * Element[lista3, 5]) * "+ ") * Element[lista3, 6])) → texto89
  186. TableText(lista57, If[m ≟ 6, "c() |00000010", If[m ≟ 5, "c() |0000010", If[m ≟ 4, "c() |000010", If[m ≟ 3, "c() |00010", If[m ≟ 2, "c() |0010", "c() |010"]]]]]) → texto81
  187. If(Element[matriz10, 6, 5] ≟ f, " ", (Expand[(-Element[matriz10, 6, 5])] * Element[lista3, 5]) + (Element[lista3, 6])) → texto91
  188. LaTeX($6) → texto92
  189. LaTeX($5) → texto93
  190. LaTeX($4) → texto94
  191. LaTeX($3) → texto95
  192. LaTeX($2) → texto96
  193. LaTeX($1) → texto97
  194. If(n ≟ 1, 0, If[n ≟ 2, 3, If[n ≟ 3, 5, If[n ≟ 4, 7, If[n ≟ 5, 9, 11]]]]) → b_1
  195. If(m ≟ 6, 115, If[m ≟ 5, 120, If[m ≟ 4, 155, If[m ≟ 3, 195, If[m ≟ 2, 230]]]]) → w
  196. Distance(E_1, F_1) → distanciaE1F1
  197. Textfield(m) → CasillaDeEntrada1
  198. Textfield(n) → CasillaDeEntrada2