Alvaro Olarte
Para la transpuesta:
transpuesta = A.T; print("transpuesta de la matriz A: \r\n", transpuesta); ```transpuesta = A.T;print("transpuesta de la matriz A: \r\n", transpuesta);
El álgebra lineal es una rama fundamental de las matemáticas que se centra en el estudio de los vectores, las matrices y las transformaciones lineales. NumPy proporciona herramientas para resolver sistemas de ecuaciones lineales, realizar transformaciones geométricas y modelar problemas en diversas áreas de la ciencia y la ingeniería. Su aplicación es tan amplia que se encuentra en el corazón de múltiples disciplinas científicas y tecnológicas, facilitando desde la simulación de fenómenos físicos hasta la optimización de sistemas complejos.
Los vectores y las matrices, los bloques de construcción del álgebra lineal, nos permiten representar y manipular datos de manera eficiente, un vector puede representar una lista de valores que podrían ser coordenadas espaciales, mientras que una matriz puede representar una transformación que afecta a estos vectores. Las operaciones básicas del álgebra lineal, como la suma, la multiplicación y la transposición de matrices, forman la base de muchas técnicas avanzadas en la física, la ingeniería, la economía y la informática.
Conceptos básicos de álgebra lineal
Ejemplos aplicativos
Operaciones principales en álgebra lineal
Vamos a ver algunas de las operaciones más comunes en álgebra lineal utilizando matrices.
Suma de matrices
La suma de matrices se realiza elemento por elemento. Por ejemplo, si tenemos dos matrices A y B:
Código en NumPy para la suma de matrices:
import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) suma = A + B print("Suma de matrices:\n", suma)
Multiplicación de matrices
La multiplicación de matrices combina filas de una matriz con columnas de otra. Por ejemplo, si tenemos las mismas matrices A y B:
Código en NumPy para la multiplicación de matrices:
producto = np.dot(A, B) print("Producto de matrices:\n", producto)
Transposición de Matrices
La transposición de una matriz intercambia sus filas y columnas. Por ejemplo, la transposición de la matriz A es:
Determinante de una matriz
El determinante es un valor único que puede calcularse a partir de una matriz cuadrada. Por ejemplo, el determinante de la matriz AAA es:
Código en NumPy para el determinante de una matriz:
determinante = np.linalg.det(A) print("Determinante de A:", determinante)
Más operaciones de álgebra lineal con NumPy
NumPy ofrece una variedad de funciones que facilitan el trabajo con álgebra lineal. Aquí hay algunas más:
Inversa de una matriz
La matriz inversa de A:
inversa = np.linalg.inv(A) print("Inversa de A:\n", inversa)
Valores y vectores propios
Los valores propios y los vectores propios son fundamentales en muchas aplicaciones, como en la compresión de datos y el análisis de sistemas dinámicos.
valores_propios, vectores_propios = np.linalg.eig(A) print("Valores propios de A:\n", valores_propios) print("Vectores propios de A:\n", vectores_propios)
Resolución de sistemas de ecuaciones lineales
Para resolver un sistema de ecuaciones lineales AX=BAX = BAX=B:
B = np.array([1, 2]) X = np.linalg.solve(A, B) print("Solución del sistema AX = B:\n", X)
NumPy es una herramienta poderosa para manejar cálculos numéricos y operaciones de álgebra lineal en Python. Su eficiencia y facilidad de uso la convierten en una biblioteca indispensable para científicos de datos, ingenieros y desarrolladores. Desde la creación de arrays hasta la manipulación de imágenes, NumPy abre un mundo de posibilidades en diversas aplicaciones del mundo real.
Espero que este blog haya despertado tu interés y te haya dado una visión clara de cómo usar NumPy para realizar operaciones de álgebra lineal y mucho más. ¡Sigue explorando y experimentando con NumPy para descubrir todo su potencial! ⚡️
Alvaro Olarte
Para la transpuesta:
transpuesta = A.T; print("transpuesta de la matriz A: \r\n", transpuesta); ```transpuesta = A.T;print("transpuesta de la matriz A: \r\n", transpuesta);
Daniel Andres Rojas Paredes
el determinante esta asociado al volumen. piennsa en la esquina donde tu piso se une con 2 paredes. el determinante es una explrecion de la escala de volument que hay entre los vectores que se podrian dibujar en esa esquina . si es 0 quiere decir que los vectores estan todos realmente contenidos en un plano. por eso no puede haber volumen.
los vectores propios son aquellos que se escalan, sin cambiar su direccion, y en la proporcion de su valor propio asociado. todos los demas vectores que no son propios al ser multiplicados por la matriz no solo son escalados , su direccion cambia. me parecio muy graciosa la metafora que medio copilot pero aplican
Antonio Demarco Bonino
Una vez que estudie las matrices empecé a ver la película Matrix de una manera diferente ¿Estaremos en la Matrix? ¿Habrán ganado las máquinas? ¿Cuánto durará la paz entre la humanidad y las máquinas?
Julio Cesar Ibañez Mondaque
Matrix no tiene nada que ver con matrices
Roy Boris Sanchez Espinoza
Como lo aplico para un censo
Piensa en un censo como una matriz masiva: cada fila es un ciudadano y cada columna una variable, como edad o ingresos. NumPy no solo organiza esos datos, te permite realizar cálculos sobre miles de registros en una sola línea de código, evitando la lentitud de los bucles tradicionales.
¿Qué métrica específica te gustaría extraer de esa base de datos?
Jhon Alexander Mosquera Vanegas
Lo más útil de esta introducción es leer una matriz como una transformación que actúa sobre vectores y no solo como una tabla de números. Con esa lectura, un sistema de ecuaciones lineales se vuelve legible: la matriz A transforma lo desconocido X y produce un resultado B, y resolverlo es averiguar qué X produce ese B. El texto recuerda además que la economía figura entre las disciplinas donde estas operaciones son la base de técnicas avanzadas. Por eso conviene practicar primero con matrices pequeñas, verificar a mano el resultado y solo después pasar a problemas con más variables.
Luis Francisco Bran Hernández
#transposicion de matrices transpuestaa = np.transpose(a) transpuestab = np.transpose(b) print("la transpuesta de la matriz a es: \n",transpuestaa) print("la transpuesta de la matriz b es: \n",transpuestab)
Javier Perez
Juan Camilo Mesa Muñoz
Gracias por ampliar la info.
# Explicación de la Notación del Producto Hadamard (⊙)
## Diferencia entre Producto Hadamard y Producto Matricial Tradicional
### Producto Matricial Tradicional (· o ×)
El símbolo · o × se reserva tradicionalmente para el **producto matricial** (también llamado producto punto en contextos específicos), que sigue reglas específicas:
$$
A \cdot B = \begin{pmatrix}
a & b \\
c & d \\
\end{pmatrix} \cdot \begin{pmatrix}
e & f \\
g & h \\
\end{pmatrix} = \begin{pmatrix}
ae + bg & af + bh \\
ce + dg & cf + dh \\
\end{pmatrix}
$$
### Producto Hadamard (⊙)
El símbolo ⊙ se utiliza específicamente para el **producto elemento por elemento** (también conocido como producto Hadamard), donde:
$$
A \odot B = \begin{pmatrix}
a & b \\
c & d \\
\end{pmatrix} \odot \begin{pmatrix}
e & f \\
g & h \\
\end{pmatrix} = \begin{pmatrix}
a \times e & b \times f \\
c \times g & d \times h \\
\end{pmatrix}
$$
## ¿Por qué no usar el mismo símbolo?
1. **Operaciones diferentes**: Son operaciones matemáticamente distintas con reglas y aplicaciones diferentes.
2. **Propiedades diferentes**:
- El producto matricial no es conmutativo: A·B ≠ B·A
- El producto Hadamard sí es conmutativo: A⊙B = B⊙A
3. **Contextos de uso distintos**:
- El producto matricial se usa en transformaciones lineales
- El producto Hadamard se usa en procesamiento de señales y álgebra de matrices elemento-wise
## En programación (NumPy)
\# Producto Hadamard (elemento por elemento) A \* B \# Producto matricial tradicional A @ B # o np.dot(A, B)
La notación matemática diferenciada ayuda a evitar confusiones entre estas dos operaciones fundamentalmente distintas.
Jose Luis Alvarado Hernandez
¿Por qué es mejor usar np.dot multiplicando?
Porque existe una diferencia crucial entre multiplicar elementos uno a uno y realizar un producto matricial real. Si usas el operador * estándar en NumPy, simplemente multiplicas la posición superior izquierda de la matriz A con la misma posición de la matriz B. Sin embargo, en álgebra lineal y en modelos predictivos, necesitas combinar las filas de la primera matriz con las columnas de la segunda para encontrar relaciones complejas entre los datos. np.dot() realiza exactamente esta operación matemática profunda. Piensa en ello como calcular el costo total de un carrito de compras: no solo multiplicas precios aislados, sino que cruzas la lista de cantidades con la lista de precios unitarios para obtener un resultado consolidado.
LUIS CUYUBAMBA ZACARIAS
#Transpuesta
A_T = A.T
print("Matriz original:\n", A)
print("Matriz transpuesta:\n", A_T)
#Transpuesta
B_T = B.T
print("Matriz original:\n", B)
print("Matriz transpuesta:\n", B_T)
Cristian Alexander Vallejos De la rosa
matrix = np.array([[1,2,3],[4,5,6],[7,8,9]])
transposed_matrix = matrix.T
print(matrix)
print("T1", transposed_matrix)
print("T2", np.transpose(matrix))
[[1 2 3] [4 5 6] [7 8 9]] T1 [[1 4 7] [2 5 8] [3 6 9]] T2 [[1 4 7] [2 5 8] [3 6 9]]
César Alexander Herrera Zaldívar
A = np.array([[2,1,1],[1,3,2],[1,0,0]]) print(A) inversa =np.linalg.inv(A) print(inversa) identidad=np.dot(A, inversa) print(identidad)
César Alexander Herrera Zaldívar
A = np.array([[1,2,3],[4,5,6],[7,8,9]]) B = np.array([[7,8,9],[10,11,12],[7,8,9]]) sumar_matrices = A + B print("Suma de matrices de A y B es:", sumar_matrices) producto_punto=np.dot(A, B) print("producto punto de A y B es:", producto_punto) Transpuesta= np.transpose(producto_punto) print("Transpuesta del producto punto de A y B es:", Transpuesta) Determinante= np.linalg.det(Transpuesta) print("Determinante de la transpuesta del producto de A y B es:", Determinante)
Julian Valencia
Interesante post
LUIS FELIPE MORA LESMES
Muchas gracias excleente material y dinamica de entendimiento
Valerio Benjamin Beauregard Vidaña
Para los que al igual que yo, les quedó duda sobre los valores y vectores propios, acá dejo una descripción resumida de lo que entiendo de ambos terminos:
Valores propios (o eigenvalores)
Un valor propio (L) de una matriz cuadrada A es un escalar que satisface la ecuación:
Av = Lv
Donde:
• v es un vector propio no nulo.
• A es la matriz cuadrada de dimensión "n x n" .
• L es un escalar.
Vectores propios
Un vector propio (v) asociado a un valor propio L es un vector no nulo que, cuando se multiplica por la matriz A , no cambia de dirección, solo se escala por L. Matemáticamente:
Av = Lv
Esto significa que v es “invariante en dirección” bajo la transformación lineal representada por A .
Alvaro Olarte
Para la transpuesta:
transpuesta = A.T; print("transpuesta de la matriz A: \r\n", transpuesta);
Juan Camilo
creo que para la parte final en Resolución de sistemas de ecuaciones lineales en la parte de código si es necesario describir la matriz A para evitar confusiones, además que el ejemplo grafico del procedimiento siempre ayuda a recordar y interiorizar el proceso mejor
Para calcular la matriz inversa en NumPy, primero necesitamos una matriz cuadrada. Aquí hay un ejemplo:
Supongamos que tenemos la matriz A:
A = [[4, 7], [2, 6]]
Para obtener la matriz inversa, usamos la función np.linalg.inv():
import numpy as np A = np.array([[4, 7], [2, 6]]) inversa = np.linalg.inv(A) print("Matriz A:\n", A) print("Matriz inversa de A:\n", inversa)
Los resultados serían:
Matriz A: [[4 7] [2 6]] Matriz inversa de A: [[ 0.6 -0.7] [-0.2 0.4]]
Esto muestra cómo la matriz A se transforma en su inversa.