Espacio columna, rango e independencia

Matemática · Lección 3

L2 Derivación Fase F1 Libro MML §2.5–2.7 Prereqs La matriz como transformación

Objetivo

Al terminar esta lección se puede:

  1. 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.
  2. Definir el núcleo y demostrar que es un subespacio.
  3. 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.
  4. 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:

  1. Escribir rango_por_escalonamiento(A, tol) que calcule el rango por eliminación gaussiana con pivoteo parcial, sin usar matrix_rank ni svd. Compararla contra NumPy en cincuenta matrices aleatorias, incluidas algunas de rango deficiente construidas a propósito.
  2. 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/.
  3. 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_rank necesita 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:

  1. 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. §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?
  3. §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