¿Qué es un sistema de ecuaciones y cómo se resuelve?
Un sistema de ecuaciones es un conjunto de ecuaciones con varias incógnitas. Este sistema puede tener cero, una o infinitas soluciones. En situaciones donde el sistema tiene una solución única, esto indica que existe una matriz inversa y que la matriz es cuadrada con vectores linealmente independientes. Cuando buscamos una solución X tal que minimice una norma específica, podemos recurrir a un método llamado pseudo inversa.
¿Cómo aplicar la pseudo inversa para resolver un sistema?
La pseudo inversa es útil para encontrar una solución X que minimice la norma de a por X menos B en un sistema de ecuaciones lineales. Esto es importante en sistemas sobre determinados, donde hay más ecuaciones que incógnitas.
Visualización inicial con Python
Para abordar este problema con código, se pueden seguir estos pasos:
Configuración de entorno y librerías: Inicialmente, se importa numpy como np y se utiliza matplotlib para visualizar gráficamente.
import numpy as np
import matplotlib.pyplot as plt
Definición del dominio: Se establece un rango de valores de X para evaluar las ecuaciones del sistema:
x = np.linspace(-5,5,1000)
Definición de funciones: Se crean las funciones correspondientes a las tres ecuaciones del sistema:
y1 =-4* x +3y2 =2* x +5y3 =-3* x +1
Graficación del sistema
Las ecuaciones se grafican para visualizar su intersección:
El punto solución no siempre se encuentra en el centro del "triángulo" formado por las ecuaciones debido al diferente peso que cada una ejerce sobre él, como una suerte de centro de gravedad.
La pseudo inversa proporciona una herramienta efectiva para manejar sistemas sobre determinados, ayudándonos a encontrar soluciones óptimas que norman la minimización. Siguiendo este enfoque, podemos comprender y resolver problemas complejos en la matemática aplicada. ¡Sigue adelante y continúa aprendiendo!
Me gustaria que haya un proyecto para integrar todo esto en algo. Me resultan muy interesantes las clases, pero para ser aun mejor estaria bueno un proyecto integrador de todos los temas.
Opino lo mismo
Hola Damian
¿Qué tal un proyecto donde expongas la descomposición SVD?
¡Puedes agregarle creatividad a tu gusto!
Se quiere hallar la solucion del sistema de ecuaciones Ax = b, tal que x hace que ||Ax-b||_2 sea minima.
En principio el sistema de ecuaciones es sobredeterminado, lo que implica que las tres rectas no van a cruzarse en un mismo punto.
La solucion dada a través de la pseudo inversa es tal que obedece a los pesos de las ecuaciones. Cada ecuacion como tal ejerce un efecto de gravedad que mueve el punto hacia ella.
Sinceramente, con lo que hemos visto, no hemos llegado a alguna conclusión que relacione el algoritmo de la pseudoinversa de svd con el sistema de ecuaciones lineales y peor aún con sistemas que siendo sobredeterminados se consiga la solución más óptima. Hay un gran hueco de información que si bien puede escapar del objetivo que tiene el docente -supongo-, tampoco esta bien entregar fórmulas y métodos de la nada (hablo de esta clase y la anterior) y no advertir o incentivar sus demostraciones en recursos adicionales o al menos hacerlas un poco más intuitivas.
Por eso quiero advertir (lo que recomendaría -advertir o bocetear- incluir en una actualización de este curso) que la raiz de que los sistemas sobredeterminados tengan aun asi solución (la menos problemática) es similar a la demostración de la regresión lineal. Pensar en que cuando trazabamos una recta que mejor se aproxime a nuestra data se hacia en base al procedimiento de mínimos cuadrados y luego derivando e igualando a 0 para encontrar esos parametros de la recta. Pues hay un procedimiento equivalente en algebra lineal (mínimos cuadrados y proyecciones) que da sentido a lo que hemos visto en estas dos últimas clases.
Revise el libro de Strang G., Linear algebra and its applications, por no entender la base de estas 2 clases, puede ser pesado así que recomiendo buscar explicaciones extras en internet con las palabras claves de mínimos cuadrados si es que gustan.
Buen aporte!
El método de pseudo inversa para encontrar una solución que se acerque para un sistema sobredeterminado da un punto que según el peso de la ecuación.
Esta clase me ayudo mucho a comprender la clase anterior.
hola a todos, una consulta: de donde saco los valores de la matriz o mas bien como llego a ellos? gracias
Ya me respondí solo.
Por las dudas respondo jajaja
El saco esos valores despejando los lamdas, paso los numeros con X al otro lado nada mas, por eso se les cambia el signo
El método de pseudo inversa :
Permite encontrar una solución aproximada para un sistema sobre-determinado.
Codigo :
X= np.linspace(-5,5,1000)# Textotext =("El método de PseudoInversa :\n""Permite encontrar una solución\n""aproximada para un sistema sobre-\n""determinado.")# SistemaSobredeterminadoY1=-4*X+3Y2=2*X+5Y3=-3*X+1# ResultadoM2= np.array([[4,1],[-2,1],[3,1]])VS= np.array([[3,5,1]]).TM2I= np.linalg.pinv(M2)VR=M2I.dot(VS)# GraficandoSistema de Ecuacionesplt.title('Sistema de Ecuaciones Indeterminadas')plt.plot(X,Y1, label= r'$Y_{1} = -4X + 3$')plt.plot(X,Y2, label= r'$Y_{2} = 2X + 5$')plt.plot(X,Y3, label= r'$Y_{3} = -3X + 1$')plt.scatter(VR[0],VR[1])plt.text(-2,-2, text, size=15, ha="left", va="top", bbox=dict(boxstyle="square", ec=(1.,0.5,0.5), fc=(1.,0.8,0.8),))plt.xlim(-2.5,2.5)plt.ylim(-6,6)plt.legend()plt.show()
Algunas aplicaciones de la pseudo_inversa:
Resolver problemas de ajuste óptimo, como la regresión lineal, donde se busca minimizar el error entre los datos observados y los estimados por un modelo lineal.
Encontrar la solución de norma mínima (euclídea) de un sistema de ecuaciones lineales con múltiples soluciones, lo que puede ser útil para reducir el ruido o la complejidad de los datos.
Extender el concepto de inversa a operadores lineales en espacios vectoriales de dimensión infinita, lo que tiene aplicaciones en análisis funcional y ecuaciones diferenciales
Todo esto en escencia matematica es resolver el problema de minimos cuadrados donde minimizamos el error cuadratico respecto al espacio (datos) y nuestro hiperplano (regresion lineal, polinomial)
import numpy as np
import matplotlib.pyplot as plt
#pseudo inversa Moore Penrose
matriz_pse = np.linalg.pinv(matriz)
resultado= matriz_pse.dot(b)
#GRAFIQUE
x = np.linspace(-5,5,1000)
plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)
plt.scatter(resultado[0], resultado[1])
plt.xlim(-2, 2.5)
plt.ylim(-8, 10)
plt.show()
print(resultado)
Este comentario debería estar de primero jejeje
Que significa encontrar un punto que minimice la norma 2?"
La norma 2 es la distancia lineal (la de toda la vida), el punto que minimiza esta norma es el punto que tiene menor distancia (en este caso a las rectas que tenemos)
Muchas gracias Josue por refrescármelo
Cuando dice que un sistema solo puede tener 0, 1 o infinitas soluciones esta mal. Un sistema puede tener ninguna (0), una o más, es decir multiples soluciones finitas, o infinitas soluciones. Pequeña correccion.
Es correcto lo que él dice, al menos en un espacio euclidiano, claro. Lo dice en el contexto de sistemas lineales, y hasta donde sé en un espacio euclidiano un par de rectas no pueden intersectarse en más de 1 punto.
En el contexto de la clase, estas equivocado. Un par de rectas solo pueden encontrarse en 3 situaciones posibles:
Ser paralelas y no tocarse jamás. Sería el caso de 0 soluciones.
Ser la misma recta. Sería el caso de infinitas soluciones.
Ser dos rectas diferentes no paralelas. En ese caso llegará el momento en ue ambas rectas se toquen, lo que sería el caso de una solución única.
No existe el caso en el que dos o más rectas se toquen un número finito de veces mayor a 1.
@Vayahh, Genial, Esto Nunca lo he visto. en mis clases de Algebra Lineal d'Universidad. Este Profesor es Asombroso, mE Gusta mucho cuando dice, Contra Nuestra intucion el punto resultado no esta en el centro del triangulo , ps las ecuaCIones tienen distintos pesos. y atraen el centro de gravedad a las pendientes mas significativas. Ufff, esto si que tieen Gran Potencial en ML.
++USANDO LA PSEUDO INVERSA PARA RESOLVER UN SISTEMA SOBREDETERMINADO++
Un Sistema de Ecuaciones Ax = b, puede tener cero soluciones, una solución o infinitas soluciones.
Existe una solución cuando tenemos inversa y ya sabemos calcularlo. Estamos con una matriz cuadrada y todos sus vectores son linealmente independientes.
Cuando tenemos dos variables "X y Y" y tres ecuaciones, estamos hablando de un sistema sobre-determinado.
El punto que está devolviendo la gráfica, no está en el centro del triángulo. Esto se puede entender porque las ecuaciones tienen distinto peso, cada una está tirando el punto más cerca de ella, está como ejerciendo un centro de gravedad, moviendolo.
Gracias
La solución de sistemas sobredeterminados (más ecuaciones que incógnitas) es común en estadística, machine learning y procesamiento de señales. Cuando el sistema no tiene solución exacta, usamos la pseudo-inversa de Moore-Penrose para obtener una solución por mínimos cuadrados.
🧮 Ejemplo de sistema sobredeterminado
Supón que tienes el sistema:
A⋅x=bA \cdot x = b
Donde:
AA es una matriz m×nm \times n, con m>nm > n (más ecuaciones que incógnitas).
No siempre hay solución exacta, pero queremos minimizar el error ∥Ax−b∥2\|Ax - b\|^2.
La solución por mínimos cuadrados es:
x=A+⋅bx = A^+ \cdot b
Donde A+A^+ es la pseudo-inversa de Moore-Penrose de AA.
✅ Implementación en Python con NumPy
import numpy as np
# Matriz A (más filas que columnas)
A = np.array([
[1, 1],
[1, 2],
[1, 3]
])
# Vector b
b = np.array([1, 2, 2])
# Cálculo de la pseudo-inversa de A
A_pseudo = np.linalg.pinv(A)
# Solución por mínimos cuadrados
x = A_pseudo @ b
print("Solución x:")
print(x)
# Verificación: Aproximación de Ax
print("Aproximación Ax:")
print(A @ x)
🔍 Salida esperada:
Solución x:
[0.5 0.5]
Aproximación Ax:
[1. 1.5 2. ]
Esto minimiza la distancia entre el vector real b=[1,2,2]b = [1, 2, 2] y la estimación AxAx.
📌 Alternativas con np.linalg.lstsq (más estable):
x_lstsq, residuals, rank, s = np.linalg.lstsq(A, b, rcond=None)
print("Solución con lstsq:", x_lstsq)
🔧 ¿Dónde se usa?
Ajuste de modelos lineales
Reconstrucción de imágenes
Solución de ecuaciones inconsistentes en sistemas reales
¿Hacer esto es equivalente a hallar un punto P(x, y) que minimice la suma de las distancias de éste a las tres rectas?
En libros de algebra lineal se demuestra así como dices salvo que elevando los resultados al cuadrado para evitar la raiz de las normas.
Cuando tienes un sistema de ecuaciones sobredeterminado, es decir, un sistema con más ecuaciones que incógnitas, puedes utilizar la pseudoinversa de Moore-Penrose para encontrar una solución aproximada de mínimos cuadrados.
Supongamos que tienes un sistema de ecuaciones lineales de la forma Ax = b, donde A es una matriz de tamaño m x n (más filas que columnas), x es un vector columna de tamaño n (incógnitas) y b es un vector columna de tamaño m (valores conocidos). Si el sistema no tiene una solución exacta, puedes utilizar la pseudoinversa para encontrar una solución aproximada.
El procedimiento para resolver el sistema utilizando la pseudoinversa es el siguiente:
Calcular la pseudoinversa de Moore-Penrose de la matriz A:A⁺ =(AᵀA)⁻¹Aᵀ.Multiplicar la pseudoinversa por el vector b: x =A⁺b._
Esto me recuerda al cálculo para hallar el punto medio de un triángulo. Aunque este algoritmo es más poderoso que el que se usa en geometría. Muy interesante.
La verdad de los mejores cursos que he tomado en platzi.