线性方程组:高斯消元法

线性方程组:高斯消元法
几何画板及绘图内容加载中,请稍等……
2017-03-13 03:32
这个范例演示了线性方程组的高斯消元法。它展示了如何通过一系列的行变换将增广矩阵转化为阶梯形矩阵,从而求解线性方程组。使用了GeoGebra中的Append, Take, IndexOf, CountIf, Sequence, Join, Remove, Element, Insert, If, Sort, RemoveUndefined, Textfield, TableText, LaTeX, Distance等命令。适合高中数学教学和学习线性代数的学生。

GeoGebra 命令及参数

  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