Capítulo 2

Espacios Vectoriales

2.1 Definición de Espacio Vectorial

Un espacio vectorial V sobre un cuerpo F\mathbb{F} es un conjunto cerrado bajo suma y multiplicación escalar, cumpliendo 8 axiomas (asociatividad, conmutatividad, distributividad, existencia de neutro e inverso, etc.).

Ejemplos

  • Rn\mathbb{R}^n — vectores de n componentes
  • Rm×n\mathbb{R}^{m \times n} — matrices de m×n
  • Pn\mathbb{P}_n — polinomios de grado ≤ n
  • C[a,b]\mathcal{C}[a,b] — funciones continuas

Subespacios

Un subconjunto UVU \subseteq V es subespacio si contiene el vector cero y es cerrado bajo suma y multiplicación escalar.

Ej: planos y rectas por el origen en R3\mathbb{R}^3.

2.2 Combinación Lineal e Independencia

Un vector v\mathbf{v} es combinación lineal de v1,,vk\mathbf{v}_1, \ldots, \mathbf{v}_k si existen escalares tales que:

v=λ1v1++λkvk\mathbf{v} = \lambda_1 \mathbf{v}_1 + \cdots + \lambda_k \mathbf{v}_k

Los vectores son linealmente independientes si la única combinación lineal que da cero tiene todos los coeficientes cero:

λ1v1++λkvk=0    λi=0  i\lambda_1 \mathbf{v}_1 + \cdots + \lambda_k \mathbf{v}_k = 0 \implies \lambda_i = 0 \;\forall i
python
import numpy as np

v1 = np.array([1, 0, 2])
v2 = np.array([0, 1, 1])
v3 = np.array([2, 1, 5])  # v3 = 2*v1 + 1*v2 → dependiente

# Para verificar independencia: calcular el rango
mat = np.column_stack([v1, v2, v3])
rango = np.linalg.matrix_rank(mat)
print(f"Rango: {rango} (columnas: 3)")
print("Los vectores son", "independientes" if rango == 3 else "dependientes")

# Bases canónicas de R^n
e1 = np.array([1, 0, 0])
e2 = np.array([0, 1, 0])
e3 = np.array([0, 0, 1])
print(f"Base canónica: rango = {np.linalg.matrix_rank(np.column_stack([e1,e2,e3]))}")

2.3 Base y Dimensión

Base

Un conjunto de vectores B es una base de V si:

  • • B es linealmente independiente
  • • B genera V (todo vector es combinación lineal de B)

Dimensión

La dimensión dim(V)\dim(V) es el número de vectores en cualquier base de V.

dim(Rn)=n\dim(\mathbb{R}^n) = n,dim(Rm×n)=mn\dim(\mathbb{R}^{m \times n}) = mn

python
# Cambio de base
import numpy as np

# Expresar vector v en base B
B = np.array([[1, 0], [1, 1]])  # base
v = np.array([3, 2])  # en base canónica

# Coordenadas en base B: x = B^{-1} v
coords = np.linalg.solve(B, v)
print(f"v en base B: {coords}")

# Verificar: B @ coords = v
print(f"Reconstrucción: {B @ coords}")