Suma
Mismo tamaño, elemento a elemento.
Capítulo 1
Un sistema de m ecuaciones con n incógnitas se escribe como:
O más compacto: .
Mismo tamaño, elemento a elemento.
A(m×n) · B(n×p) = C(m×p).
Intercambia filas y columnas.
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print("A + B:
", A + B)
print("A @ B:
", A @ B) # multiplicación matricial
print("A.T:
", A.T) # transpuesta
# Resolver Ax = b
b = np.array([5, 11])
x = np.linalg.solve(A, b)
print("Solución:
", x)
# Verificar
print("A @ x =
", A @ x) # debería dar bAlgoritmo para resolver sistemas transformando la matriz a forma escalonada:
import numpy as np
A = np.array([[2, 1, -1],
[-3, -1, 2],
[-2, 1, 2]], dtype=float)
b = np.array([8, -11, -3])
# Eliminación Gaussiana con numpy
_, pivots = np.linalg.vector_norm(A, axis=1), ...
# numpy ya tiene solve, pero veamos los pasos:
# Matriz aumentada
aug = np.hstack([A, b.reshape(-1, 1)])
print("Forma escalonada:")
# Usando eliminación con librería sympy para ver pasos
from sympy import Matrix, pprint
M = Matrix(np.hstack([A, b.reshape(-1, 1)]))
pprint(M.rref()[0]) # forma reducidaSi , entonces la solución es . Solo existe si A es cuadrada y .
A = np.array([[1, 2], [3, 4]])
A_inv = np.linalg.inv(A)
print("A^{-1}:
", A_inv)
print("A @ A^{-1}:
", A @ A_inv) # ≈ identidad
# Para sistemas sobredeterminados (más ecuaciones que incógnitas)
# Solución de mínimos cuadrados: x = (A^T A)^{-1} A^T b
A_over = np.array([[1, 1], [1, 2], [1, 3]])
b_over = np.array([2, 3, 4])
x_ls, *_ = np.linalg.lstsq(A_over, b_over, rcond=None)
print("Mínimos cuadrados:", x_ls)