Guía de Álgebra Lineal para Ingeniería:
El Manual de Alto Rendimiento
Álgebra Lineal es el estudio de vectores, matrices, espacios vectoriales y transformaciones lineales. Estos cuatro conceptos —y sus relaciones— constituyen el lenguaje matemático universal de la ingeniería moderna: desde el análisis estructural y el procesado de señales hasta el aprendizaje automático y la simulación de circuitos. Esta guía cubre el temario completo con rigor formal, referencias a Gilbert Strang (MIT) y David C. Lay, simuladores interactivos y código Python con NumPy listo para usar.
0. ¿Por qué el Álgebra Lineal decide tu capacidad como ingeniero?
Álgebra Lineal no es sólo una asignatura de primer curso: es el sistema de coordenadas en el que está escrita toda la ingeniería cuantitativa. Sin dominar espacios vectoriales, matrices, transformaciones lineales y diagonalización, ningún modelo de elementos finitos, ningún algoritmo de control y ninguna red neuronal tiene sentido matemático real.
En palabras de Gilbert Strang (MIT 18.06): «El Álgebra Lineal es el idioma en el que está escrita la mayor parte de la ciencia aplicada del siglo XXI.» Todo sistema de ecuaciones diferenciales parciales discretizado se convierte en un sistema lineal $A\mathbf{x}=\mathbf{b}$. Todo proceso de compresión de imágenes (JPEG, MP3) usa la descomposición espectral. Todo algoritmo de recomendación factoriza una matriz. La asignatura que parece la más abstracta es, en la práctica, la más usada.
Esta guía pilar conecta seis áreas temáticas interconectadas: espacios vectoriales, transformaciones lineales, diagonalización, espacio euclídeo, cómputo con Python y el sistema de preguntas frecuentes de alta conversión. Cada sección enlaza de forma orgánica con los artículos satélite que la desarrollan en profundidad.
Esta guía está alineada con Gilbert Strang — Introduction to Linear Algebra (MIT Press, 5.ª ed.), David C. Lay — Linear Algebra and Its Applications (5.ª ed.) y Sheldon Axler — Linear Algebra Done Right (3.ª ed.). Se indica el nivel correspondiente en cada sección.
0.1 Índice interactivo del temario de Álgebra Lineal
0.2 Mapa conceptual de Álgebra Lineal
Arquitectura del temario: Los espacios vectoriales y las transformaciones lineales son la base. Sobre ellos se construyen bases, dimensión, matrices asociadas y los teoremas de núcleo e imagen. El tercer nivel —espacio euclídeo, diagonalización y formas cuadráticas— unifica toda la geometría espectral.
1. Espacios Vectoriales, Subespacios y Geometría Estructural
Un espacio vectorial es un conjunto $V$ equipado con dos operaciones —suma de vectores y producto por escalar— que satisfacen 10 axiomas. El concepto generaliza $\mathbb{R}^n$: los polinomios de grado $\leq n$, las matrices $m\times n$ y las funciones continuas son todos espacios vectoriales. Un subespacio $W\subseteq V$ debe contener el vector nulo, ser cerrado bajo la suma y cerrado bajo el producto por escalar: son las tres condiciones mínimas, nunca más.
El Álgebra Lineal arranca con la pregunta más fundamental: ¿qué tienen en común los vectores geométricos de $\mathbb{R}^3$, los polinomios de grado $\leq 2$ y las matrices $2\times 2$? Todos son espacios vectoriales: estructuras algebraicas donde la suma y la multiplicación por escalares cumplen las mismas reglas. Esta abstracción permite desarrollar toda la teoría una sola vez y aplicarla después a docenas de objetos matemáticos distintos.
1.1 Los 10 axiomas de un espacio vectorial
Sea $V$ un conjunto no vacío con dos operaciones: $+: V\times V\to V$ y $\cdot: \mathbb{F}\times V\to V$ (donde $\mathbb{F}=\mathbb{R}$ o $\mathbb{C}$). $V$ es un espacio vectorial sobre $\mathbb{F}$ si y sólo si $\forall\,\mathbf{u},\mathbf{v},\mathbf{w}\in V$ y $\forall\,\alpha,\beta\in\mathbb{F}$:
1.2 Subespacios: verificación práctica y trampa de examen
Un subconjunto $W$ de un espacio vectorial $V$ es un subespacio vectorial si y sólo si satisface las tres condiciones de cierre. En la práctica, la verificación se reduce a tres preguntas concretas que, según David C. Lay (§4.1), concentran el 80% de los ejercicios de examen sobre subespacios.
El error más frecuente es comprobar el cierre bajo la suma y el producto por escalar sin verificar
que el vector nulo pertenece a $W$. Si $\mathbf{0}\notin W$, el subconjunto
nunca puede ser un subespacio, aunque sea cerrado bajo las dos operaciones.
Ejemplo clásico: el conjunto $W = \{\mathbf{v}\in\mathbb{R}^2 : v_1 + v_2 = 1\}$ es cerrado bajo la
suma si $1+1=1$ (falso), pero el verdadero problema es que $(0,0)\notin W$. Empieza siempre
comprobando el vector nulo.
| Condición | Cómo verificarla | Fallo típico en examen |
|---|---|---|
| $\mathbf{0}\in W$ | Sustituir directamente el vector nulo en la definición de $W$ | Olvidarlo completamente y perder todos los puntos |
| $\mathbf{u}+\mathbf{v}\in W$ | Tomar dos elementos genéricos de $W$ y verificar que su suma pertenece | Tomar ejemplos concretos en vez de elementos genéricos |
| $\alpha\mathbf{v}\in W\ \forall\alpha\in\mathbb{F}$ | Multiplicar un elemento genérico por un escalar arbitrario $\alpha$ | Probar sólo $\alpha>0$ y olvidar el caso $\alpha=0$ o negativos |
1.3 Bases, Dimensión y Cambio de Base
Una base de $V$ es un conjunto de vectores linealmente independientes que genera todo $V$. La dimensión $\dim(V)$ es el número de vectores en cualquier base —resultado que el Teorema de la Base garantiza que es único. El Teorema de la Base Incompleta permite extender cualquier sistema libre a una base completa de $V$, herramienta indispensable para construir cambios de base entre representaciones distintas del mismo endomorfismo.
$$[\mathbf{v}]_{\mathcal{B}’} = P^{-1}[\mathbf{v}]_{\mathcal{B}}$$
donde $P$ es la matriz de cambio de base de $\mathcal{B}$ a $\mathcal{B}’$, cuyas columnas son los vectores de $\mathcal{B}$ expresados en la base $\mathcal{B}’$. Para la matriz de un endomorfismo: $[f]_{\mathcal{B}’} = P^{-1}[f]_{\mathcal{B}}P$.
1.4 Dependencia e Independencia Lineal — Combinaciones Lineales
Un conjunto $\{\mathbf{v}_1,\ldots,\mathbf{v}_k\}$ es linealmente independiente si la única combinación lineal que da el vector nulo es la trivial: $\alpha_1\mathbf{v}_1+\cdots+\alpha_k\mathbf{v}_k=\mathbf{0}$ implica $\alpha_i=0\ \forall i$. La herramienta práctica para decidirlo es reducir la matriz formada por los vectores a forma escalonada reducida (RREF). El número de pivotes da el rango; las columnas sin pivote corresponden a vectores dependientes. Consulta el desarrollo completo en el artículo de dependencia e independencia lineal: sistemas libres y ligados.
Si el número de vectores es mayor que la dimensión del espacio, el conjunto es siempre linealmente dependiente. No necesitas calcular nada. Si $k > \dim(V)$, concluye directamente que son dependientes y justifícalo con este resultado (Teorema de Steinitz). Ahorra 5 minutos en un examen de 2 horas.
import numpy as np
# ═══════════════════════════════════════════════════════════
# Álgebra Lineal — FísicaIngeniería
# Verificar independencia lineal y calcular base de un subespacio
# ═══════════════════════════════════════════════════════════
# Vectores como columnas de la matriz
v1 = [1, 2, 0, -1]
v2 = [3, 1, 2, 0]
v3 = [5, 5, 2, -2] # v3 = v1 + v2 * 4/3 ... ¿depende?
A = np.array([v1, v2, v3], dtype=float).T # columnas = vectores
# Rango de la matriz → nº de vectores linealmente independientes
rango = np.linalg.matrix_rank(A)
print(f"Rango = {rango} de {A.shape[1]} vectores")
print(f"Son linealmente {'independientes' if rango == A.shape[1] else 'DEPENDIENTES'}")
# Forma escalonada reducida con scipy
from scipy.linalg import lu
_, _, U = lu(A)
print("\nForma escalonada (U de la descomposición LU):")
print(np.round(U, 4))
# Espacio nulo (vectores de dependencia)
null_space = np.linalg.svd(A)[2][-1] # último vector singular derecho
print(f"\nVector de dependencia (nulo): {np.round(null_space, 4)}")
2. Transformaciones Lineales y Matrices Asociadas
Una transformación lineal (o aplicación lineal) $f: V\to W$ preserva la suma y el producto por escalares. El Teorema del Rango-Nulidad es el resultado central: $\dim(\operatorname{Im} f) + \dim(\operatorname{Ker} f) = \dim(V)$. Toda transformación lineal entre espacios de dimensión finita está completamente determinada por su actuación sobre una base: la matriz asociada $[f]_{\mathcal{B}}^{\mathcal{B}’}$ recoge esa información columna a columna.
Las transformaciones lineales son los morfismos de la categoría de espacios vectoriales: las funciones que respetan la estructura algebraica. Rotaciones, reflexiones, proyecciones y derivadas formales son todas transformaciones lineales. La teoría central de Álgebra Lineal —la que justifica el estudio de matrices— es que cada transformación lineal entre espacios finito-dimensionales tiene una representación matricial que depende de la elección de bases, y que cambiar de base transforma la matriz por semejanza.
2.1 Teorema del Rango-Nulidad
$$\dim(\operatorname{Im} f) + \dim(\operatorname{Ker} f) = \dim(V)$$
También escrito como: $\operatorname{rang}(f) + \operatorname{nul}(f) = n = \dim(V)$. El rango es el número de columnas pivote de $[f]$; la nulidad es el número de variables libres en $[f]\mathbf{x}=\mathbf{0}$. Su suma siempre es $n$. Referencia: Strang §3.5, Lay §4.6.
2.2 Núcleo e Imagen de una aplicación lineal
El núcleo (kernel) $\operatorname{Ker}(f) = \{\mathbf{v}\in V : f(\mathbf{v})=\mathbf{0}\}$ es el subespacio de $V$ que $f$ colapsa al vector nulo. La imagen $\operatorname{Im}(f) = \{f(\mathbf{v}) : \mathbf{v}\in V\}$ es el subespacio de $W$ que $f$ puede alcanzar. El desarrollo completo de núcleo e imagen, con su interpretación geométrica en $\mathbb{R}^2$ y $\mathbb{R}^3$, es la clave para entender cuándo un sistema lineal $A\mathbf{x}=\mathbf{b}$ tiene solución única, infinitas soluciones o ninguna solución.
| Propiedad de $f$ | Condición algebraica | Condición matricial | Consecuencia |
|---|---|---|---|
| Inyectiva (monomorfismo) | $\operatorname{Ker}(f) = \{\mathbf{0}\}$ | $\operatorname{nul}(A)=0$, rango completo en filas | $A\mathbf{x}=\mathbf{b}$ tiene a lo sumo una solución |
| Sobreyectiva (epimorfismo) | $\operatorname{Im}(f) = W$ | $\operatorname{rang}(A)=\dim(W)$, rango completo en columnas | $A\mathbf{x}=\mathbf{b}$ tiene al menos una solución $\forall\mathbf{b}$ |
| Biyectiva (isomorfismo) | Inyectiva y sobreyectiva | $A$ cuadrada e invertible, $\det(A)\neq 0$ | $A\mathbf{x}=\mathbf{b}$ tiene solución única $\forall\mathbf{b}$ |
2.3 Matriz Asociada y Cambio de Base
La matriz asociada a una aplicación lineal $f:V\to W$ en las bases $\mathcal{B}$ de $V$ y $\mathcal{B}’$ de $W$ se construye aplicando $f$ a cada vector de $\mathcal{B}$ y expresando el resultado en coordenadas de $\mathcal{B}’$: la $j$-ésima columna de $[f]_{\mathcal{B}}^{\mathcal{B}’}$ es $[f(\mathbf{b}_j)]_{\mathcal{B}’}$.
La matriz asociada depende de la elección de bases. El mismo endomorfismo $f:V\to V$ tiene matrices diferentes en bases diferentes, pero todas son semejantes entre sí: $[f]_{\mathcal{B}’} = P^{-1}[f]_{\mathcal{B}}P$. La diagonalización no es más que encontrar la base $\mathcal{B}’$ en la que la matriz es diagonal. Esta es la conexión fundamental entre el cambio de base y los autovectores.
import numpy as np
# ═══════════════════════════════════════════════════════════
# Álgebra Lineal — FísicaIngeniería
# Matriz asociada, rango, nulidad y espacio nulo
# ═══════════════════════════════════════════════════════════
# Definir la transformación lineal f: R^4 → R^3
# por su matriz en las bases estándar
A = np.array([
[1, 3, 5, 2],
[0, 1, 2, 1],
[2, 4, 8, 3]
], dtype=float)
rango = np.linalg.matrix_rank(A)
nulidad = A.shape[1] - rango
print(f"Dimensiones: {A.shape[0]} filas × {A.shape[1]} columnas")
print(f"Rango = {rango}")
print(f"Nulidad = {nulidad}")
print(f"Verificación Rango-Nulidad: {rango} + {nulidad} = {rango+nulidad} (= n = {A.shape[1]})")
# Espacio nulo (Ker f) vía SVD
_, S, Vt = np.linalg.svd(A)
tol = 1e-10
null_mask = np.abs(S) < tol # valores singulares nulos
print(f"\nBase del Ker(f) [nulidad={nulidad}]:")
ker_basis = Vt[rango:] # filas de Vt correspondientes a S≈0
for i, v in enumerate(ker_basis):
print(f" v{i+1} = {np.round(v, 4)}")
# Espacio imagen (Im f) vía QR
Q, R = np.linalg.qr(A.T)
print(f"\nBase de Im(f) [rango={rango}]:")
for i in range(rango):
print(f" u{i+1} = {np.round(Q[:, i], 4)}")
3. Diagonalización de Endomorfismos y Teoremas Estructurales
Un endomorfismo $f:V\to V$ es diagonalizable si existe una base de $V$ formada por autovectores de $f$. En esa base, la matriz asociada es diagonal con los autovalores en la diagonal. La condición necesaria y suficiente es que para cada autovalor $\lambda_i$ la multiplicidad geométrica (dimensión del autoespacio) coincida con la multiplicidad algebraica (orden como raíz del polinomio característico).
La diagonalización es la herramienta más potente del Álgebra Lineal aplicada: permite calcular potencias de matrices en tiempo lineal, resolver sistemas de ecuaciones diferenciales ordinarias acoplados, analizar la estabilidad de sistemas dinámicos y desacoplar modos normales en mecánica de estructuras. Toda esta maquinaria depende de los autovalores y autovectores, que a su vez se obtienen del polinomio característico.
3.1 Autovalores y Autovectores
Un escalar $\lambda\in\mathbb{F}$ es autovalor (eigenvalue) de $f$ si existe un vector no nulo $\mathbf{v}\in V$ tal que $f(\mathbf{v})=\lambda\mathbf{v}$. El vector $\mathbf{v}$ es el autovector (eigenvector) asociado a $\lambda$. Geométricamente, $f$ sólo escala a $\mathbf{v}$ sin rotar su dirección: es la dirección invariante de la transformación.
3.2 Polinomio Característico
$$p(\lambda) = \det(A – \lambda I) = 0$$
Las raíces de $p(\lambda)$ son los autovalores de $A$. Para cada autovalor $\lambda_i$, el autoespacio es $E_{\lambda_i} = \operatorname{Ker}(A-\lambda_i I)$, que siempre tiene dimensión $\geq 1$. Para $n\times n$: $p(\lambda)$ tiene grado $n$ y, por el Teorema Fundamental del Álgebra, exactamente $n$ raíces (contadas con multiplicidad) en $\mathbb{C}$.
| Magnitud | Definición | Notación | Condición para diagonalizar |
|---|---|---|---|
| Multiplicidad algebraica | Orden de $\lambda_i$ como raíz de $p(\lambda)$ | $m_a(\lambda_i)$ | Debe coincidir con $m_g$ |
| Multiplicidad geométrica | $\dim\operatorname{Ker}(A-\lambda_i I)$ | $m_g(\lambda_i)$ | $1 \leq m_g \leq m_a$ (siempre) |
| Diagonalizable | $m_g(\lambda_i) = m_a(\lambda_i)$ para todo $\lambda_i$ | $A = PDP^{-1}$ | Equivale a que $\mathbb{F}^n$ tiene base de autovectores |
| No diagonalizable | $\exists\,\lambda_i: m_g(\lambda_i) < m_a(\lambda_i)$ | Forma de Jordan | El déficit de autovectores impide la diagonalización |
3.3 Criterio Práctico de Diagonalización paso a paso
- Calcula $p(\lambda) = \det(A – \lambda I)$ y factoriza para obtener los autovalores $\lambda_i$.
- Para cada $\lambda_i$, determina $m_a(\lambda_i)$ (multiplicidad como raíz de $p$).
- Resuelve $(A-\lambda_i I)\mathbf{v}=\mathbf{0}$ y calcula $m_g(\lambda_i) = \dim\operatorname{Ker}(A-\lambda_i I)$.
- Si $m_g(\lambda_i)=m_a(\lambda_i)$ para todo $i$ → $A$ es diagonalizable. Construye $P$ con los autovectores como columnas y $D=\operatorname{diag}(\lambda_1,\ldots,\lambda_n)$.
- Si existe algún $i$ con $m_g < m_a$ → $A$ no es diagonalizable (usa la Forma de Jordan si se requiere una descomposición).
Si todos los autovalores de $A$ son distintos, entonces $A$ es automáticamente diagonalizable (los autovectores de autovalores distintos son linealmente independientes). No necesitas calcular las multiplicidades geométricas: sólo hay que verificar que las $n$ raíces de $p(\lambda)$ son distintas. Esto cubre el 60% de los ejercicios de examen sobre diagonalización.
3.4 Teorema de Cayley-Hamilton
El Teorema de Cayley-Hamilton establece que toda matriz cuadrada $A$ satisface su propio polinomio característico: si $p(\lambda)=\det(A-\lambda I)$, entonces $p(A)=\mathbf{0}$. Este resultado, cuya demostración completa requiere la Forma Canónica de Jordan, tiene una aplicación práctica directa en el módulo de Teorema de Cayley-Hamilton y potencias de matrices: permite calcular $A^k$ para $k\geq n$ como combinación lineal de $\{I, A, A^2,\ldots, A^{n-1}\}$, reduciendo el coste computacional de forma drástica.
$$p(A) = \det(A – \lambda I)\big|_{\lambda\to A} = \mathbf{0}_{n\times n}$$
Ejemplo para $n=2$: si $p(\lambda)=\lambda^2 – \operatorname{tr}(A)\lambda + \det(A)$, entonces $A^2 – \operatorname{tr}(A)\cdot A + \det(A)\cdot I = \mathbf{0}$. Despejando: $A^2 = \operatorname{tr}(A)\cdot A – \det(A)\cdot I$. Toda potencia superior se reduce a esta relación de recurrencia.
3.5 Potencia de una Matriz mediante Diagonalización — Sistemas Dinámicos
Si $A = PDP^{-1}$ con $D=\operatorname{diag}(\lambda_1,\ldots,\lambda_n)$, entonces $A^k = PD^kP^{-1}$ y $D^k = \operatorname{diag}(\lambda_1^k,\ldots,\lambda_n^k)$. Esta factorización transforma el cálculo de potencias de matrices —que en general cuesta $O(n^3)$ multiplicaciones por paso— en una operación de $O(n)$ elevaciones a potencia. Su aplicación más inmediata en ingeniería es la resolución de sistemas dinámicos discretos: $\mathbf{x}_{k+1} = A\mathbf{x}_k \Rightarrow \mathbf{x}_k = A^k\mathbf{x}_0 = PD^kP^{-1}\mathbf{x}_0$.
import numpy as np
# ═══════════════════════════════════════════════════════════
# Álgebra Lineal — FísicaIngeniería
# Diagonalización: autovalores, autovectores y potencia de A
# ═══════════════════════════════════════════════════════════
A = np.array([
[4, 1, 0],
[2, 3, 0],
[0, 0, 5]
], dtype=float)
# Autovalores y autovectores
eigenvalues, P = np.linalg.eig(A)
print("Autovalores λᵢ:")
for i, lam in enumerate(eigenvalues):
print(f" λ{i+1} = {lam:.4f}")
print("\nMatriz P (columnas = autovectores):")
print(np.round(P, 4))
# Verificar diagonalización: A = P D P^{-1}
D = np.diag(eigenvalues)
A_reconstruida = P @ D @ np.linalg.inv(P)
print(f"\n||A - P·D·P⁻¹|| = {np.linalg.norm(A - A_reconstruida):.2e} (debe ser ≈ 0)")
# Potencia k mediante diagonalización
k = 10
Dk = np.diag(eigenvalues**k)
Ak_diag = P @ Dk @ np.linalg.inv(P)
Ak_bruta = np.linalg.matrix_power(A, k)
print(f"\nA^{k} — Error entre ambos métodos: {np.linalg.norm(Ak_diag - Ak_bruta):.2e}")
print(f"A^{k}[0,0] = {np.real(Ak_diag[0,0]):.2f}")
# Polinomio característico
coeffs = np.poly(A) # coeficientes de det(λI - A)
print(f"\nPolinomio característico: {np.round(coeffs, 4)}")
# Cayley-Hamilton: p(A) ≈ 0
p_A = sum(coeffs[i] * np.linalg.matrix_power(A, len(coeffs)-1-i)
for i in range(len(coeffs)))
print(f"||p(A)|| = {np.linalg.norm(p_A):.2e} (Cayley-Hamilton verificado)")
4. Espacio Euclídeo, Ortogonalidad y Formas Cuadráticas
El espacio euclídeo $(\mathbb{R}^n, \langle\cdot,\cdot\rangle)$ añade al espacio vectorial una noción de longitud y ángulo mediante el producto escalar. La ortogonalización de Gram-Schmidt convierte cualquier base en una base ortonormal. La proyección ortogonal sobre un subespacio es la solución al problema de mínimos cuadrados: la aproximación óptima a un punto fuera del subespacio. Las formas cuadráticas clasifican superficies cónicas y cuádricas mediante el criterio de Sylvester sobre los menores principales.
4.1 Producto Escalar y Norma
$$\langle\mathbf{u},\mathbf{v}\rangle = \mathbf{u}^T\mathbf{v} = \sum_{i=1}^n u_i v_i$$
Norma: $\|\mathbf{v}\| = \sqrt{\langle\mathbf{v},\mathbf{v}\rangle}$ ·
Ángulo: $\cos\theta = \dfrac{\langle\mathbf{u},\mathbf{v}\rangle}{\|\mathbf{u}\|\|\mathbf{v}\|}$ ·
Ortogonalidad: $\mathbf{u}\perp\mathbf{v} \Leftrightarrow \langle\mathbf{u},\mathbf{v}\rangle=0$
Desigualdad de Cauchy-Schwarz: $|\langle\mathbf{u},\mathbf{v}\rangle| \leq \|\mathbf{u}\|\|\mathbf{v}\|$
4.2 Proceso de Gram-Schmidt — Paso a Paso
Dado un conjunto de vectores linealmente independientes $\{\mathbf{v}_1,\ldots,\mathbf{v}_k\}$, el proceso de Gram-Schmidt construye de forma iterativa una base ortonormal $\{\mathbf{e}_1,\ldots,\mathbf{e}_k\}$ del mismo subespacio:
$\mathbf{u}_1 = \mathbf{v}_1$ → $\mathbf{e}_1 = \dfrac{\mathbf{u}_1}{\|\mathbf{u}_1\|}$
$\mathbf{u}_j = \mathbf{v}_j – \displaystyle\sum_{i=1}^{j-1}\langle\mathbf{v}_j,\mathbf{e}_i\rangle\,\mathbf{e}_i$
→ $\mathbf{e}_j = \dfrac{\mathbf{u}_j}{\|\mathbf{u}_j\|}$ para $j=2,\ldots,k$
Cada paso proyecta $\mathbf{v}_j$ sobre el complemento ortogonal de $\operatorname{span}\{\mathbf{e}_1,\ldots,\mathbf{e}_{j-1}\}$. El resultado es la factorización $A = QR$ con $Q$ ortonormal y $R$ triangular superior.
4.3 Proyección Ortogonal y Mínimos Cuadrados
La proyección ortogonal de un vector $\mathbf{b}$ sobre un subespacio $W$ es el vector $\hat{\mathbf{b}}\in W$ más cercano a $\mathbf{b}$ en la norma euclídea. Si $W=\operatorname{col}(A)$, la proyección satisface las ecuaciones normales: $A^TA\hat{\mathbf{x}} = A^T\mathbf{b}$.
Proyección ortogonal: El vector $\hat{\mathbf{b}}=A(A^TA)^{-1}A^T\mathbf{b}$ es la proyección de $\mathbf{b}$ sobre $\operatorname{col}(A)$. El residuo $\mathbf{e}=\mathbf{b}-\hat{\mathbf{b}}$ es perpendicular a $W$ y tiene norma mínima sobre todos los vectores de $W$: es la solución de mínimos cuadrados.
$$A^TA\hat{\mathbf{x}} = A^T\mathbf{b}$$
Si $A$ tiene rango completo en columnas ($\operatorname{rang}(A)=n$), la solución es única: $\hat{\mathbf{x}} = (A^TA)^{-1}A^T\mathbf{b}$. La matriz $P_W = A(A^TA)^{-1}A^T$ es la matriz de proyección ortogonal sobre $\operatorname{col}(A)$; cumple $P_W^2 = P_W$ (idempotente) y $P_W^T = P_W$ (simétrica).
4.4 Formas Cuadráticas y Criterio de Sylvester
Una forma cuadrática sobre $\mathbb{R}^n$ es $Q(\mathbf{x}) = \mathbf{x}^TA\mathbf{x}$ con $A$ simétrica. La clasificación del signo de $Q$ determina la geometría de las curvas de nivel (elipsoides, hiperboloides, paraboloides) y la naturaleza de los puntos críticos en optimización. El desarrollo completo de las formas cuadráticas y el criterio de Sylvester incluye la reducción a la forma canónica mediante la diagonalización ortogonal de $A$.
| Clasificación | Condición espectral | Criterio de Sylvester (menores $\Delta_k$) | Superficie cónica |
|---|---|---|---|
| Definida positiva | Todos $\lambda_i > 0$ | $\Delta_k > 0\ \forall k=1,\ldots,n$ | Elipsoide (mínimo local) |
| Definida negativa | Todos $\lambda_i < 0$ | $(-1)^k\Delta_k > 0\ \forall k$ | Elipsoide invertido (máximo local) |
| Semidefinida positiva | $\lambda_i \geq 0$, alguno $= 0$ | $\Delta_k \geq 0$, alguno $= 0$ | Paraboloide cilíndrico |
| Indefinida | Autovalores de ambos signos | Algún $\Delta_k < 0$ sin patrón | Hiperboloide (punto de silla) |
import numpy as np
# ═══════════════════════════════════════════════════════════
# Álgebra Lineal — FísicaIngeniería
# Gram-Schmidt, proyección ortogonal y mínimos cuadrados
# ═══════════════════════════════════════════════════════════
def gram_schmidt(V):
"""Ortogonalización de Gram-Schmidt.
V: columnas = vectores a ortonormalizar.
Devuelve Q ortonormal con las mismas columnas."""
Q = np.zeros_like(V, dtype=float)
for j in range(V.shape[1]):
u = V[:, j].copy()
for i in range(j):
u -= np.dot(Q[:, i], V[:, j]) * Q[:, i]
norm = np.linalg.norm(u)
if norm > 1e-12:
Q[:, j] = u / norm
return Q
# Vectores a ortonormalizar
V = np.array([[1, 1, 0],
[1, 0, 1],
[0, 1, 1]], dtype=float)
Q = gram_schmidt(V)
print("Base ortonormal Q (columnas):")
print(np.round(Q, 4))
print(f"\nVerificación QᵀQ = I: ||QᵀQ - I|| = {np.linalg.norm(Q.T @ Q - np.eye(3)):.2e}")
# ─────────────────────────────────────────────
# Mínimos cuadrados: Ax ≈ b
A = np.array([[1, 1],
[1, 2],
[1, 3],
[1, 4]], dtype=float)
b = np.array([1.1, 2.0, 2.9, 4.1])
# Solución vía ecuaciones normales
x_hat = np.linalg.solve(A.T @ A, A.T @ b)
print(f"\nMínimos cuadrados x̂ = {np.round(x_hat, 4)}")
# Proyección y residuo
b_hat = A @ x_hat
e = b - b_hat
print(f"Residuo ||e|| = {np.linalg.norm(e):.6f}")
print(f"Verificación e ⊥ col(A): ||Aᵀe|| = {np.linalg.norm(A.T @ e):.2e}")
# Clasificar forma cuadrática Q(x) = xᵀBx
B = np.array([[4, 2],
[2, 3]], dtype=float)
eigenvalues_B = np.linalg.eigvalsh(B)
print(f"\nAutovalores de B: {np.round(eigenvalues_B, 4)}")
if np.all(eigenvalues_B > 0):
print("Forma cuadrática: DEFINIDA POSITIVA")
elif np.all(eigenvalues_B < 0):
print("Forma cuadrática: DEFINIDA NEGATIVA")
else:
print("Forma cuadrática: INDEFINIDA")
5. Computación Científica: Álgebra Lineal con Python (NumPy)
NumPy implementa en C todas las operaciones de Álgebra Lineal de forma vectorizada:
multiplicación de matrices (@), descomposición espectral (np.linalg.eig),
factorización QR (np.linalg.qr) y descomposición en valores singulares SVD
(np.linalg.svd). Estas son las cuatro factorizaciones fundamentales que todo ingeniero
debe conocer y que Gilbert Strang denomina «las cuatro grandes.»
La computación numérica de Álgebra Lineal con Python
no sustituye la comprensión teórica, pero actúa como verificador instantáneo de cálculos a mano,
visualizador de conceptos abstractos y herramienta de producción para problemas de gran escala.
La API de numpy.linalg cubre el 95% de las necesidades de un ingeniero; para matrices
dispersas o problemas de gran escala se usa scipy.sparse.linalg.
| Factorización | Notación | NumPy | Aplicación principal | Coste |
|---|---|---|---|---|
| LU | $A = LU$ (con pivoteo) | scipy.linalg.lu |
Resolución de sistemas $A\mathbf{x}=\mathbf{b}$ | $O(n^3/3)$ |
| QR | $A = QR$ | np.linalg.qr |
Mínimos cuadrados, Gram-Schmidt | $O(2mn^2)$ |
| Espectral | $A = PDP^{-1}$ | np.linalg.eig |
Sistemas dinámicos, PCA, oscilaciones | $O(n^3)$ |
| SVD | $A = U\Sigma V^T$ | np.linalg.svd |
Compresión, pseudoinversa, PCA, redes neuronales | $O(\min(mn^2, m^2n))$ |
| Cholesky | $A = LL^T$ (si $A\succ 0$) | np.linalg.cholesky |
Simulación, mínimos cuadrados ponderados | $O(n^3/6)$ |
import numpy as np
# ═══════════════════════════════════════════════════════════
# Álgebra Lineal — FísicaIngeniería
# Las cuatro grandes factorizaciones con numpy.linalg
# ═══════════════════════════════════════════════════════════
# Matriz de ejemplo (cuadrada, bien condicionada)
A = np.array([
[ 4, 3, 2, 1],
[ 3, 4, 3, 2],
[ 2, 3, 4, 3],
[ 1, 2, 3, 4]
], dtype=float)
b = np.array([10, 15, 18, 15], dtype=float)
print("═" * 50)
print("1. SISTEMA LINEAL Ax = b")
x = np.linalg.solve(A, b)
print(f" Solución x = {np.round(x, 4)}")
print(f" Residuo ||Ax-b|| = {np.linalg.norm(A @ x - b):.2e}")
print("\n" + "═" * 50)
print("2. DESCOMPOSICIÓN ESPECTRAL (Eigendecomposition)")
eigenvalues, eigenvectors = np.linalg.eig(A)
idx = np.argsort(eigenvalues.real)[::-1]
eigenvalues = eigenvalues[idx]
eigenvectors = eigenvectors[:, idx]
for i, (lam, v) in enumerate(zip(eigenvalues, eigenvectors.T)):
print(f" λ{i+1} = {lam.real:.4f} | v{i+1} = {np.round(v.real, 3)}")
print("\n" + "═" * 50)
print("3. FACTORIZACIÓN QR")
Q, R = np.linalg.qr(A)
print(f" ||QᵀQ - I|| = {np.linalg.norm(Q.T @ Q - np.eye(4)):.2e}")
print(f" ||A - QR|| = {np.linalg.norm(A - Q @ R):.2e}")
print("\n" + "═" * 50)
print("4. SVD — Descomposición en Valores Singulares")
U, S, Vt = np.linalg.svd(A)
print(f" Valores singulares σᵢ = {np.round(S, 4)}")
print(f" Número de condición κ(A) = {S[0]/S[-1]:.2f}")
# Rango numérico
tol = 1e-10
rango = np.sum(S > tol)
print(f" Rango = {rango}")
# Pseudoinversa via SVD
A_pinv = np.linalg.pinv(A)
print(f"\n Pseudoinversa: ||A·A⁺·A - A|| = {np.linalg.norm(A @ A_pinv @ A - A):.2e}")
print("\n" + "═" * 50)
print("5. DETERMINANTE Y TRAZA")
print(f" det(A) = {np.linalg.det(A):.4f}")
print(f" tr(A) = {np.trace(A):.4f}")
print(f" Verificación: ∏λᵢ = {np.prod(eigenvalues.real):.4f}")
print(f" Verificación: Σλᵢ = {np.sum(eigenvalues.real):.4f}")
NumPy: operaciones densas de Álgebra Lineal (matrices pequeñas y medianas). SciPy: factorizaciones avanzadas (LU con pivoteo, Schur, Hessenberg), matrices dispersas y solucionadores iterativos. SymPy: cálculo simbólico exacto de determinantes, polinomios característicos, formas de Jordan. PyTorch/JAX: diferencación automática y álgebra lineal en GPU para aprendizaje automático.
6. Preguntas Frecuentes de Álgebra Lineal
Las tres preguntas más buscadas sobre Álgebra Lineal en buscadores y asistentes de IA tienen respuestas cortas y concretas que sirven como respuestas autónomas para búsquedas conversacionales. Aquí están desarrolladas con la precisión que exige un examen de ingeniería.
Sigue este protocolo en cinco pasos:
- Calcula el polinomio característico $p(\lambda) = \det(A-\lambda I)$ y factorízalo completamente sobre $\mathbb{R}$ (o $\mathbb{C}$).
- Identifica los autovalores distintos $\lambda_1,\ldots,\lambda_r$ y sus multiplicidades algebraicas $m_a(\lambda_i)$.
- Para cada autovalor, resuelve $(A-\lambda_i I)\mathbf{v}=\mathbf{0}$ y calcula la multiplicidad geométrica $m_g(\lambda_i) = n – \operatorname{rang}(A-\lambda_i I)$.
- Compara: si $m_g(\lambda_i) = m_a(\lambda_i)$ para todos los autovalores, $A$ es diagonalizable. Si existe algún $i$ con $m_g < m_a$, no lo es.
- Construye la diagonalización: $A = PDP^{-1}$ donde $P$ tiene los autovectores como columnas (agrupados por autovalor) y $D$ es diagonal con los autovalores.
Atajo: si los $n$ autovalores son distintos entre sí, la matriz es automáticamente diagonalizable sin necesidad de verificar los pasos 3 y 4.
El núcleo (kernel) de una matriz $A$ es el conjunto de vectores que $A$ transforma en cero: $\operatorname{Ker}(A) = \{\mathbf{x}: A\mathbf{x}=\mathbf{0}\}$. Su utilidad en ingeniería es directa en cinco contextos:
- Análisis de estructuras: los mecanismos de un sistema estructural (movimientos libres de carga) corresponden a vectores del núcleo de la matriz de rigidez.
- Control automático: los modos inobservables de un sistema lineal son vectores del núcleo de la matriz de observabilidad.
- Procesado de señales: el espacio nulo de una matriz de muestreo determina las componentes de la señal que se pierden irreversiblemente.
- Redes eléctricas: los vectores del núcleo de la matriz de incidencia nodal corresponden a los lazos independientes del grafo del circuito.
- Robótica: las configuraciones singulares de un robot paralelo son los vectores del núcleo de su matriz jacobiana.
Numéricamente, el núcleo se calcula eficientemente con la SVD: los vectores singulares derechos correspondientes a valores singulares nulos (o muy pequeños) forman una base del espacio nulo.
La proyección ortogonal de un punto $\mathbf{b}$ sobre un subespacio $W$ es la respuesta a: «¿cuál es el punto de $W$ más cercano a $\mathbf{b}$?». Geométricamente, es la sombra que deja $\mathbf{b}$ sobre $W$ cuando la fuente de luz es perpendicular a $W$.
El error $\mathbf{e} = \mathbf{b} – \hat{\mathbf{b}}$ es siempre perpendicular a todo vector de $W$: $\langle\mathbf{e}, \mathbf{w}\rangle = 0\ \forall\,\mathbf{w}\in W$. Esta perpendicularidad es la condición de optimalidad (condición de Karush-Kuhn-Tucker del problema de mínima distancia).
La aplicación más importante en ingeniería es la regresión lineal: ajustar una recta (o un hiperplano) a datos experimentales es equivalente a proyectar el vector de observaciones $\mathbf{b}$ sobre el subespacio columna de la matriz de diseño $A$. La solución $\hat{\mathbf{x}} = (A^TA)^{-1}A^T\mathbf{b}$ es exactamente la proyección ortogonal.
El determinante de una matriz cuadrada $A\in\mathbb{R}^{n\times n}$ mide el factor de escala de volumen que aplica la transformación lineal $f(\mathbf{x}) = A\mathbf{x}$: si $\det(A)=0$, la transformación colapsa el espacio $n$-dimensional en un subespacio de dimensión menor (al menos una columna es combinación lineal de las demás), y por tanto existe un vector no nulo $\mathbf{v}$ con $A\mathbf{v}=\mathbf{0}$, es decir, $\operatorname{Ker}(A)\neq\{\mathbf{0}\}$.
El sistema $A\mathbf{x}=\mathbf{b}$ tiene solución única $\Leftrightarrow$ $A$ es invertible $\Leftrightarrow$ $\det(A)\neq 0$ $\Leftrightarrow$ $\operatorname{rang}(A)=n$ $\Leftrightarrow$ $\operatorname{Ker}(A)=\{\mathbf{0}\}$. Estas cinco condiciones son equivalentes (Teorema Invertible, Lay §2.3).
En la práctica numérica, no se usa el determinante para decidir invertibilidad (es numéricamente inestable para matrices grandes). Se usa el número de condición $\kappa(A) = \sigma_{\max}/\sigma_{\min}$: si $\kappa\gg 1$, la matriz está mal condicionada y los errores numéricos se amplifican.
Los autovalores $\lambda_i$ sólo están definidos para matrices cuadradas y pueden ser complejos. Los valores singulares $\sigma_i$ están definidos para cualquier matriz rectangular $A\in\mathbb{R}^{m\times n}$ y son siempre reales y no negativos: $\sigma_i = \sqrt{\lambda_i(A^TA)}$.
Para matrices simétricas definidas positivas, los valores singulares coinciden con los autovalores. Para matrices asimétricas o rectangulares, son conceptos distintos. La SVD $A=U\Sigma V^T$ siempre existe y es única (salvo signos); la descomposición espectral $A=PDP^{-1}$ puede no existir (si $A$ no es diagonalizable).
En aplicaciones: los autovalores gobiernan la dinámica de sistemas lineales (estabilidad, oscilaciones); los valores singulares miden la geometría de la transformación (cómo deforma la bola unitaria) y son la herramienta correcta para compresión de datos, PCA y regularización numérica.
Un sistema lineal de EDOs $\dot{\mathbf{x}} = A\mathbf{x}$ con condición inicial $\mathbf{x}(0)=\mathbf{x}_0$ se resuelve exactamente mediante la exponencial de matriz: $\mathbf{x}(t) = e^{At}\mathbf{x}_0$. Si $A$ es diagonalizable: $A = PDP^{-1}$ con $D = \operatorname{diag}(\lambda_1,\ldots,\lambda_n)$, entonces $e^{At} = Pe^{Dt}P^{-1}$ y $e^{Dt} = \operatorname{diag}(e^{\lambda_1 t},\ldots,e^{\lambda_n t})$.
El cambio de variable $\mathbf{y} = P^{-1}\mathbf{x}$ desacopla el sistema: $\dot{\mathbf{y}} = D\mathbf{y}$ se convierte en $n$ ecuaciones escalares independientes $\dot{y}_i = \lambda_i y_i$, cada una con solución $y_i(t) = y_i(0)e^{\lambda_i t}$. La solución original es $\mathbf{x}(t) = P\mathbf{y}(t)$.
Los autovalores determinan el comportamiento asintótico: si $\operatorname{Re}(\lambda_i) < 0$ para todo $i$, el sistema es estable y $\mathbf{x}(t)\to\mathbf{0}$. Si algún $\operatorname{Re}(\lambda_i) > 0$, el sistema es inestable.
Glosario Completo de Álgebra Lineal
- Matriz Invertible
- Matriz cuadrada $A$ con $\det(A)\neq 0$. Equivale a: $\operatorname{rang}(A)=n$, $\operatorname{Ker}(A)=\{\mathbf{0}\}$, $A\mathbf{x}=\mathbf{b}$ tiene solución única.
- Autovalor (Eigenvalue)
- Escalar $\lambda$ con $A\mathbf{v}=\lambda\mathbf{v}$, $\mathbf{v}\neq\mathbf{0}$. Raíz del polinomio característico $\det(A-\lambda I)=0$.
- Subespacio Invariante
- Subespacio $W\subseteq V$ con $f(W)\subseteq W$: la transformación no saca vectores de $W$. El autoespacio de $\lambda_i$ es el subespacio invariante mínimo.
- Vector Ortogonal
- $\mathbf{u}\perp\mathbf{v} \Leftrightarrow \langle\mathbf{u},\mathbf{v}\rangle=0$. En $\mathbb{R}^n$ equivale a $\mathbf{u}^T\mathbf{v}=0$.
- Rango de una Matriz
- $\operatorname{rang}(A) = \dim\operatorname{Im}(A)$. Número de columnas (o filas) linealmente independientes. Igual al número de pivotes en la RREF.
- Nulidad
- $\operatorname{nul}(A) = \dim\operatorname{Ker}(A)$. Por el Teorema del Rango-Nulidad: $\operatorname{rang}(A) + \operatorname{nul}(A) = n$ (número de columnas).
- Forma de Jordan
- Descomposición $A=PJP^{-1}$ cuando $A$ no es diagonalizable. $J$ es casi diagonal con bloques de Jordan en la diagonal principal.
- Valores Singulares
- $\sigma_i = \sqrt{\lambda_i(A^TA)} \geq 0$. La SVD $A=U\Sigma V^T$ siempre existe para cualquier matriz $m\times n$, real o compleja.
- Pseudoinversa de Moore-Penrose
- $A^+ = V\Sigma^+U^T$. Generaliza la inversa a matrices rectangulares o singulares. Solución de mínimos cuadrados: $\hat{\mathbf{x}} = A^+\mathbf{b}$.
- Número de Condición
- $\kappa(A) = \sigma_{\max}/\sigma_{\min}$. Mide la sensibilidad de la solución a perturbaciones en los datos. $\kappa\gg 1$ indica mal condicionamiento.
- Proyección Ortogonal
- $P_W = A(A^TA)^{-1}A^T$ proyecta sobre $\operatorname{col}(A)$. Cumple $P_W^2=P_W$ (idempotente) y $P_W^T=P_W$ (simétrica).
- Forma Cuadrática Definida Positiva
- $Q(\mathbf{x})=\mathbf{x}^TA\mathbf{x}>0\ \forall\,\mathbf{x}\neq\mathbf{0}$. Equivale a: todos los autovalores $> 0$ o todos los menores de Sylvester $> 0$.
Bibliografía, Recursos y Cierre
Has recorrido las seis áreas principales del temario de Álgebra Lineal para ingeniería: espacios vectoriales con sus 10 axiomas, subespacios y bases; transformaciones lineales con el Teorema del Rango-Nulidad; diagonalización con el polinomio característico y los teoremas de Cayley-Hamilton; el espacio euclídeo con Gram-Schmidt, proyección ortogonal y formas cuadráticas; la computación con NumPy y las cuatro grandes factorizaciones; y el sistema de preguntas frecuentes. El siguiente paso es resolver problemas de Strang o Lay en cada sección y verificar con los scripts de Python incluidos.
Guía completada el 20 de mayo de 2026. Alineada con los temarios de Álgebra Lineal de las principales universidades politécnicas españolas e hispanoamericanas. Los simuladores interactivos funcionan en cualquier navegador moderno sin plugins adicionales.
Artículos satélite relacionados con Álgebra Lineal
- Espacios Vectoriales
- Independencia Lineal
- Bases y Dimensión
- Aplicaciones Lineales
- Núcleo e Imagen
- Matriz Asociada
- Autovalores y Autovectores
- Diagonalización
- Potencia de Matrices
- Cayley-Hamilton
- Gram-Schmidt
- Mínimos Cuadrados
- Formas Cuadráticas
- Semejanza Ortogonal
- Álgebra Lineal NumPy