Espacio columna, rango e independencia
Matemática · Lección 3
Objetivo
Al terminar esta lección se puede:
- Definir el espacio columna de una matriz y su rango, y demostrar que Ax=b tiene solución si y solo si b pertenece a ese espacio.
- Definir el núcleo y demostrar que es un subespacio.
- Demostrar el teorema del rango-nulidad, \operatorname{rango}(A)+\dim\ker(A)=n, y leer en él qué se pierde cuando el rango no es completo.
- Demostrar que el conjunto de soluciones de Ax=b, cuando tiene alguna, es una traslación del núcleo, y reconocer la colinealidad exacta en una matriz de diseño.
De dónde viene
- Matemática 1: la combinación lineal, el span y la independencia. El espacio columna no es más que el span de las columnas, con un nombre propio porque se usa constantemente.
- Matemática 2: que Av es una combinación lineal de las columnas de A con los coeficientes de v. Toda esta lección es esa frase llevada a sus consecuencias.
Para qué sirve después
- Matemática 5 y 6: cuando b no está en el espacio columna —que es lo normal—, lo más cerca que se puede llegar es su proyección, y eso es mínimos cuadrados. El rango columna completo es exactamente la condición de unicidad de la Proposición 6.3.
- Matemática 7: Gram-Schmidt construye una base ortonormal del espacio columna.
- Matemática 9: el núcleo de A-\lambda I es el eigenespacio de \lambda; que sea no trivial es la definición de eigenvalor.
- Estadística 13: dos predictores linealmente dependientes hacen inidentificables sus coeficientes, y esta lección dice por qué con precisión.
Notación
| Símbolo | Se lee | Significado |
|---|---|---|
| A | A | Matriz m\times n: m filas, n columnas |
| \operatorname{col}(A) | espacio columna de A | El conjunto de todos los Ax posibles: el span de las columnas |
| \ker(A) | núcleo de A | El conjunto de los x con Ax=0 |
| \operatorname{rango}(A) | rango de A | La dimensión de \operatorname{col}(A) |
| n | ene | El número de columnas de A, que es la dimensión del espacio de entrada |
| m | eme | El número de filas, que es la dimensión del espacio de llegada |
1. El alcance de una matriz
La lección 2 dejó establecido que Ax es la combinación lineal de las columnas de A con los coeficientes de x. Recorrer todos los x posibles genera, entonces, todas las combinaciones lineales posibles de las columnas.
Definición 3.1 (espacio columna). \operatorname{col}(A) = \{Ax : x\in\mathbb{R}^n\}, que es el span de las columnas de A. Es un subespacio de \mathbb{R}^m: contiene al cero y es cerrado bajo sumas y múltiplos, porque A0=0, Ax+Ay=A(x+y) y cAx = A(cx).
Definición 3.2 (rango). \operatorname{rango}(A) = \dim\operatorname{col}(A): cuántas direcciones independientes hay entre las columnas. Siempre \operatorname{rango}(A)\le\min(m,n), y se dice que A tiene rango columna completo si \operatorname{rango}(A)=n.
Proposición 3.3 (cuándo hay solución). El sistema Ax=b tiene al menos una solución si y solo si b\in\operatorname{col}(A).
Demostración. Si existe x con Ax=b, entonces b es de la forma Ax y por la Definición 3.1 pertenece a \operatorname{col}(A). Recíprocamente, si b\in\operatorname{col}(A), por definición existe algún x con Ax=b, que es una solución. ∎
La proposición es casi una tautología, y aun así es la que gobierna la mitad de lo que viene: el espacio columna es todo lo que el modelo puede producir, y la pregunta de si un objetivo es alcanzable se convierte en una pregunta de pertenencia. El visual deja mover b y cambiar el rango para ver cómo se encoge el alcance.
Con rango 2 el alcance es todo el plano y cualquier b tiene solución exacta. Con rango 1 se encoge a una recta, y con rango 0 al origen: la matriz no puede producir nada. En los dos últimos casos el punto verde —la proyección de la lección 5— es lo más cerca que se puede llegar.
2. El núcleo, y lo que la matriz aniquila
Definición 3.4 (núcleo). \ker(A) = \{x\in\mathbb{R}^n : Ax = 0\}, el conjunto de vectores que la matriz manda al origen.
Proposición 3.5. \ker(A) es un subespacio de \mathbb{R}^n.
Demostración. Contiene al cero, porque A0=0. Si Ax=0 y Ay=0, entonces A(x+y)=Ax+Ay=0 y A(cx)=cAx=0 para todo escalar c; el conjunto es cerrado bajo sumas y múltiplos. ∎
Cuando el rango baja, el núcleo crece, y lo hacen en cantidades exactamente complementarias. Ese es el teorema central de la lección.
Teorema 3.6 (rango-nulidad). Para toda A de tamaño m\times n, \operatorname{rango}(A) + \dim\ker(A) = n.
Demostración. Sea k=\dim\ker(A) y tómese una base \{u_1,\dots,u_k\} del núcleo. Extiéndase a una base de todo \mathbb{R}^n añadiendo \{w_1,\dots,w_{n-k}\}; siempre se puede, porque todo conjunto independiente se completa a una base. La demostración consiste en ver que las imágenes \{Aw_1,\dots,Aw_{n-k}\} son una base de \operatorname{col}(A).
Generan. Cualquier x\in\mathbb{R}^n se escribe x=\sum_i a_iu_i + \sum_j b_jw_j. Aplicando A y usando Au_i=0, Ax = \sum_j b_j\,Aw_j, de modo que todo elemento de \operatorname{col}(A) es combinación de los Aw_j.
Son independientes. Supóngase \sum_j c_jAw_j = 0. Por linealidad, A\big(\sum_j c_jw_j\big)=0, así que \sum_j c_jw_j\in\ker(A) y por tanto se escribe como \sum_i d_iu_i para ciertos d_i. Entonces \sum_j c_jw_j - \sum_i d_iu_i = 0 es una combinación lineal nula de vectores de una base de \mathbb{R}^n, de modo que todos los coeficientes son cero; en particular todos los c_j.
Hay n-k vectores en esa base, luego \operatorname{rango}(A) = n-k = n-\dim\ker(A). ∎
Léase en una matriz de datos: si hay n=10 predictores y el rango es 8, el núcleo tiene dimensión 2, y eso significa que hay dos direcciones de combinaciones de predictores que no cambian ninguna predicción. Los coeficientes en esas direcciones son inidentificables: el ajuste devolverá unos números cualesquiera de entre infinitos igual de válidos, sin avisar.
Proposición 3.7 (la forma del conjunto de soluciones). Si Ax_0=b, entonces el conjunto de todas las soluciones de Ax=b es \{x_0 + z : z\in\ker(A)\}. En particular, la solución es única si y solo si \ker(A)=\{0\}, es decir si y solo si A tiene rango columna completo.
Demostración. Si z\in\ker(A) entonces A(x_0+z) = Ax_0 + Az = b+0 = b, así que todo punto de ese conjunto es solución. Recíprocamente, si Ax_1=b, entonces A(x_1-x_0)=b-b=0, de modo que z=x_1-x_0\in\ker(A) y x_1=x_0+z. La unicidad equivale entonces a que el único z posible sea el cero, y por el Teorema 3.6 eso ocurre exactamente cuando \operatorname{rango}(A)=n. ∎
Conviene fijarse en la estructura: el conjunto de soluciones no es un subespacio —no contiene al cero salvo si b=0— sino un subespacio trasladado. Esa es la razón de que un sistema tenga cero, una o infinitas soluciones, y nunca exactamente dos.
3. Dependencia lineal en una matriz de datos
El rango deficiente exacto no aparece por casualidad en datos medidos: aparece cuando una columna se construye a partir de otras. Y hay que ser preciso con qué significa «a partir de otras».
Lo que sí produce rango deficiente exacto es una construcción muy común: incluir todas las categorías de una variable indicadora junto con el intercepto.
La última línea es el Teorema 3.6 hecho carne: el rango es 3 con cuatro columnas, luego el núcleo tiene dimensión 1, y ahí está su generador. Sumarle ese vector a cualquier vector de coeficientes da otro que predice exactamente lo mismo: subir el intercepto en una unidad y bajar las tres indicadoras en una se cancela en cada fila.
Ejercicios
Ejercicio 1 — Rango y núcleo
Calcular el rango de la matriz y deducir la dimensión de su núcleo con el Teorema 3.6.
np.linalg.matrix_rank(A) da el rango. El teorema dice rango + dim ker = n, donde n es el número de columnas: A.shape[1]. La segunda fila es el doble de la primera.
Ejercicio 2 — ¿Está b en el alcance?
Decidir si el sistema tiene solución exacta comparando rangos, que es la Proposición 3.3 llevada a la práctica.
Teorema de Rouché-Frobenius: hay solución exactamente cuando agregar b como columna extra no aumenta el rango. Compara matrix_rank(A) contra matrix_rank(aumentada).
Reto
En proyectos/notebooks/F1-retos.ipynb, sección Mat 3:
- Escribir
rango_por_escalonamiento(A, tol)que calcule el rango por eliminación gaussiana con pivoteo parcial, sin usarmatrix_ranknisvd. Compararla contra NumPy en cincuenta matrices aleatorias, incluidas algunas de rango deficiente construidas a propósito. - Armar una matriz de diseño con intercepto y las indicadoras completas de una variable de cuatro categorías. Confirmar que el rango es 4 y no 5, y encontrar a mano el generador del núcleo. Después ajustar un modelo lineal con esa matriz: ¿falla, avisa, o devuelve coeficientes en silencio? Anotar la respuesta en
50-Errores/. - Generar A de 100\times20 con rango exacto 15 y calcular sus valores singulares. ¿Cuántos son «cero»? ¿Qué tan cerca de cero, en realidad? Eso explica por qué
matrix_ranknecesita una tolerancia, y por qué el rango numérico no es una propiedad binaria.
Del libro
Mathematics for Machine Learning cubre este material en §2.5 Linear Independence, §2.6 Basis and Rank y §2.7 Linear Mappings. El libro tiene copyright y no es descargable desde el entorno en que se escribió esta página, así que se cita número y título y no se le atribuye ninguna frase.
Preguntas para leer §2.5–2.7 con lápiz:
- MML define el rango para filas y para columnas por separado y después demuestra que coinciden. ¿En qué punto de la demostración del Teorema 3.6 se usaría ese hecho, si se quisiera enunciar el teorema en términos de filas?
- §2.6 define base y dimensión. ¿Qué parte de la demostración del Teorema 3.6 depende de que toda familia independiente se pueda extender a una base?
- §2.7 trata las aplicaciones lineales en abstracto, sin matrices. ¿Qué es el núcleo y qué es la imagen en ese lenguaje, y cómo se traduce el Teorema 3.6?
Para el Cerebro
Nota nueva en 10-Conceptos/espacio-columna.md, enlazada a [[combinacion-lineal]], [[proyeccion-ortogonal]] y [[minimos-cuadrados]]. El Teorema 3.6 conviene rehacerlo a mano: es el primero del plan cuya demostración construye una base en vez de calcular, y ese salto conviene darlo despacio una vez.
¿Qué es el espacio columna de A?::El conjunto de todos los Ax posibles: el span de las columnas
¿Qué es el rango?::La dimensión del espacio columna: cuántas direcciones independientes hay entre las columnas
¿Cuándo tiene solución Ax = b?::Exactamente cuando b está en col(A) (Proposición 3.3)
¿Qué es el núcleo de A?::El conjunto de los x con Ax = 0; es un subespacio
¿Qué dice el teorema del rango-nulidad?::rango(A) + dim ker(A) = n, el número de COLUMNAS
¿Cómo se demuestra?::Extendiendo una base del núcleo a una base del espacio de entrada y viendo que las imágenes de los vectores añadidos son base de col(A)
¿Qué forma tiene el conjunto de soluciones de Ax = b?::x₀ + ker(A): un subespacio trasladado, no un subespacio
¿Cuándo es única la solución?::Cuando ker(A) = {0}, es decir con rango columna completo
¿Por qué un sistema nunca tiene exactamente dos soluciones?::Porque si tiene dos, su diferencia está en el núcleo, y entonces hay infinitas
¿Crea colinealidad exacta una columna derivada como peso/altura²?::No: la dependencia tiene que ser lineal, y una división no lo es
¿Qué sí crea rango deficiente exacto?::Incluir todas las indicadoras de una categoría junto con el intercepto: suman uno en cada fila
Fuentes
Lo que esta página demuestra sola. Las Proposiciones 3.3, 3.5 y 3.7 y el Teorema 3.6 se demuestran aquí, a partir de la linealidad de A y de la noción de base de la lección 1. Se comprueban además numéricamente: que una columna derivada de forma no lineal —el índice de masa corporal a partir de peso y altura— no baja el rango, y que las indicadoras completas junto al intercepto sí lo bajan, con el generador del núcleo escrito explícitamente y comprobado. El visual es el de la versión anterior, al que se le añadieron identificadores a los botones para que el gate de visuales pueda accionarlos.
Lo que se usa de otras lecciones sin repetir. La combinación lineal, el span y la independencia son la lección 1. Que Ax combina las columnas de A es la lección 2. Que toda familia independiente se extiende a una base se usa en la demostración del Teorema 3.6 y viene de la lección 1.
Lo que se enuncia sin demostrar. Que el rango por filas y por columnas coinciden; aquí solo se usa el de columnas, y la igualdad no hace falta en ninguna demostración de esta página.
Lo que viene de los libros.
- Mathematics for Machine Learning (Deisenroth, Faisal & Ong, Cambridge University Press, 2020), §2.5 Linear Independence, §2.6 Basis and Rank y §2.7 Linear Mappings — citadas por número y título, sin transcribir texto.
Lo que es mío, no del libro. La Proposición 3.7 presentada como «el conjunto de soluciones es el núcleo trasladado» y usada para explicar por qué un sistema nunca tiene dos soluciones; y los dos ejemplos de la sección 3, que separan la dependencia lineal de la mera relación funcional entre columnas.
Índices verificados el 12-09-2026 contra el índice publicado del PDF oficial.
→ Siguiente: Producto interno, norma y ángulo