Inicio › Temas › Álgebra lineal
🧮 Álgebra lineal nivel básico
Sistemas lineales y eliminación de Gauss
Escalonar la matriz ampliada para resolver y clasificar cualquier sistema de ecuaciones.
🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)
La idea
Un sistema lineal reúne varias ecuaciones en las que las incógnitas aparecen solo multiplicadas por números y sumadas. Escrito de forma compacta es A·x = b, donde A es la matriz de coeficientes, x el vector de incógnitas y b el de términos independientes. Con dos incógnitas cada ecuación es una recta del plano y resolver el sistema es buscar los puntos comunes; con tres incógnitas cada ecuación describe un plano del espacio y la solución es su intersección.
El método sistemático para resolverlo es la eliminación de Gauss: mediante tres operaciones elementales sobre las filas —intercambiar dos, multiplicar una por un número distinto de cero y sumar a una fila el múltiplo de otra— se transforma la matriz ampliada en una forma escalonada triangular, y desde la última ecuación se despejan las incógnitas hacia atrás. Ninguna de esas operaciones cambia el conjunto de soluciones. En cada columna conviene llevar al pivote el coeficiente de mayor valor absoluto (pivoteo parcial): no altera la solución exacta, pero evita que los errores de redondeo se amplifiquen.
Al escalonar aparecen los tres casos posibles. Si quedan tantos pivotes como incógnitas el sistema es compatible determinado y la solución es única. Si alguna fila se reduce a 0 = k con k distinto de cero el sistema es incompatible: en el plano son rectas paralelas sin punto común. Y si alguna fila se anula por completo hay menos pivotes que incógnitas, el sistema es compatible indeterminado y sus soluciones forman una recta o un plano descrito por parámetros libres. El criterio general lo da comparar el rango de A con el de la matriz ampliada.
Fórmulas clave
- Forma matricialA·x = b
- Sistema 2×2a₁₁x + a₁₂y = b₁, a₂₁x + a₂₂y = b₂
- Regla de Cramer (2×2)x = (b₁a₂₂ − b₂a₁₂)/Δ, y = (a₁₁b₂ − a₂₁b₁)/Δ, Δ = a₁₁a₂₂ − a₁₂a₂₁
- Operaciones elementalesFᵢ ↔ Fⱼ, Fᵢ → k·Fᵢ (k ≠ 0), Fᵢ → Fᵢ + k·Fⱼ
- Multiplicador de Gaussmᵢⱼ = aᵢⱼ / aⱼⱼ
- Criterio de compatibilidadrango(A) = rango(A|b) = n ⇒ solución única
Dónde se aplica
El análisis de circuitos eléctricos con las leyes de Kirchhoff produce un sistema lineal cuyas incógnitas son las corrientes de cada malla. En ingeniería estructural, calcular los esfuerzos de una celosía o de un edificio se reduce a resolver sistemas con decenas de miles de ecuaciones. En economía, el modelo input-output de Leontief determina cuánto debe producir cada sector para satisfacer una demanda final. Y en tomografía computarizada, la imagen del interior del cuerpo se reconstruye resolviendo un enorme sistema lineal a partir de las atenuaciones medidas en cada ángulo.
Con programación (Python)
def gauss(A, b):
n = len(A)
M = [fila[:] + [b[i]] for i, fila in enumerate(A)]
for c in range(n):
p = max(range(c, n), key=lambda r: abs(M[r][c]))
if abs(M[p][c]) < 1e-12:
return None
M[c], M[p] = M[p], M[c]
for r in range(c + 1, n):
f = M[r][c] / M[c][c]
for k in range(c, n + 1):
M[r][k] -= f * M[c][k]
print("paso", c + 1, [[round(v, 3) for v in fila] for fila in M])
x = [0.0] * n
for i in range(n - 1, -1, -1):
s = sum(M[i][j] * x[j] for j in range(i + 1, n))
x[i] = (M[i][n] - s) / M[i][i]
return x
A = [[2, 1, -1], [-3, -1, 2], [-2, 1, 2]]
b = [8, -11, -3]
sol = gauss(A, b)
print("Solucion:", [round(v, 6) for v in sol])
for i in range(3):
print("fila", i + 1, "->", round(sum(A[i][j]*sol[j] for j in range(3)), 6), "=", b[i])La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.
Temas relacionados
Matrices como transformaciones · El determinante · La matriz inversa · Métodos iterativos: Jacobi y Gauss-Seidel