Conceptos básicos de álgebra lineal y configuración del entorno de trabajo

1

Presentación del curso y la necesidad del Álgebra Lineal

2

Anaconda + Python, Creación de un entorno y actualización de paquetes

3

Uso de Jupyter Notebook

4

Creando las bases, escalares, vectores y matrices. ¿Qué es un tensor? ¿Cómo se representa?

Realiza operaciones básicas

5

Dimensión de un escalar, vector, matriz o tensor

6

Transposición, suma de matrices y escalares

7

Suma de matrices y vectores (broadcasting)

Operaciones con matrices

8

Producto interno entre una matriz y un vector

9

Producto interno entre dos matrices

10

Propiedades de las matrices: la multiplicación de matrices es asociativa y distributiva, no es conmutativa

11

Transposición de un producto de matrices

12

Cómo comprobar la solución de un sistema de ecuaciones lineal

13

Tipos especiales de matrices: Identidad, Inversa, Singulares

14

Aplicación de la inversa de una matriz para resolver un sistema de ecuaciones lineales

Sistema de ecuaciones lineales

15

Ejemplos de sistemas sin solución, con una solución y con infinitas soluciones

16

Graficar vectores

17

¿Qué es una combinación líneal?

18

¿Qué es un espacio y un subespacio?

19

Vectores linealmente independientes

20

Validar que una matriz tenga inversa

Normas

21

Qué es una norma y para qué se usa. Desigualdad Triangular

22

Tipos de normas: norma 0, norma 1, norma 2, norma infinito y norma L2 al cuadrado

23

El producto interno como función de una norma y su visualización

Matrices y vectores especiales

24

La matriz diagonal y la matriz simétrica: sus propiedades

25

Vectores ortogonales, matrices ortogonales y sus propiedades

26

Matrices ortogonales y sus propiedades

Otras funciones de álgebra lineal

27

El determinante y la traza

28

Cierre del curso. Continua con el Curso de Álgebra Lineal Aplicada a Machine Learning.

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Cómo comprobar la solución de un sistema de ecuaciones lineal

12/28
Recursos

En esta clase aprenderemos cómo plantear un sistema de ecuaciones de forma matricial y realizar el proceso para comprobar su solución. Al final nos preguntaremos si existe una operación o elemento para realizar la **división **entre matrices para obtener la solución de un sistema de ecuaciones.

Aportes 24

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

tengan cuidado. lo que el profesor puso al final de x =b/? es un error tremendo a pesar de que lo hace solo con fines educativos. Realmente la división de vectores o matrices “NO EXISTE”.

ACLARACION: Al final de la clase el profesor hace un despeje dudoso ya que se esta trabajando con matrices, como tenemos Ax = b = (Matriz 2x2)(Matriz 2x1) = (Matriz 2x1). Lo correcto para despejar la matriz (o vector) x seria multiplicar por la izquierda la inversa de A y por tanto nos quedaria como: x = A_inv * b

import numpy as np
A = np.array([[-3,1],[-2,1]])
b = np.array([5,3])
A_inv = np.linalg.inv(A) 

El valor de x es

x =  A_inv.dot(b)
print(x)

output

array([-2., -1.])

Lo cual coincide analíticamente con nuestros resultados.

Equivalencia entre sistemas de ecuaciones y multiplicación de matrices

Si alguien quiere resolver el sistema de ecuaciones con NumPy, aquí está el código:

A = np.matrix([[-3, 1], [-2,1]])
b = np.matrix([[5],[3]])
x = (A**-1)*b
print(x)

Sistema de Ecuaciones lineales:
Podemos resolver un sistema de ecuaciones lineales a través de una operación matricial. La ventaja de este método es que es mucho más ordenado y transferible a la computadora.
La representación matricial AX=B es equivalente a un sistema de ecuaciones puesto que el producto interno también se puede ver como combinaciones lineales.

Nota:
Representación gráfica de rectas a través de matplotlib (plt)

x = xp.arange(0,5,1) #genera un intervalo de datos con (inicio, fin, pasos)
y = 3*x + 2 #genera los las coordenadas y a traves de las coordenadas x
plt.figure() #genera el grafico
plt,plot(x,y) #genera el grafico con las coordenadas indicadas (se puede generar mas de una)
plt.xlim(0,5) #limites del eje x
plt.ylim(-5,-5,) #limites del eje y
plt.axvline(x=0, color = 'grey') #eje vertical
plt.axhline(y=0, color = 'grey') #eje horizontal

este curso ha estado bastante interesante, le deberian poner en el titulo numpy porque si se aprende bastante de np y sus funciones

Por si a alguien le interesa, hasta aca todo se puede hacer con Deepnote en lugar de Jupyter.

Otra forma de resolver ecuaciones usando la librería numpy:

  • 3*x + y = 1
  • 1x + 2y = 0
	import numpy as np

	ig = np.array([1,0])
	coe = np.array([[3,1],[1,2]])

	solv = np.linalg.solve(coe, ig)

	x = solv[0]
	y = solv[1]

	{'x':x,'y':y}

Hacer las operaciones con matrices ofrece una gran ventaja para resolverlas de forma computacional. De hecho, es una de sus principales aplicaciones.
Al tener todo expresado como matrices, el sistema de ecuaciones se convierte en una simple ecuación que se resuelve con un despeje. Debido a que no existe tal cosa como “división de matrices” lo que se hace es obtener la matriz inversa.

import numpy as np
import numpy.linalg as lin	#librería para obtener la inversa
import matplotlib.pyplot as plt
A = np.array([ [-3, 1], [-2, 1] ])
C = np.array([ [5], [3] ])
B = lin.inv(A) @ C
print(B)

Como resultado de este despeje, es la matriz B que es la que contiene las incógnitas.

[[-2.]
 [-1.]]
  • El hecho que las dos funciones tengan un punto donde se crucen hacen verdadera la solución de las dos ecuaciones al mismo tiempo.
%matplotlib inline 
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-5,5)

y_1 = 3*x + 5 
y_2 = 2*x + 3

plt.figure()

plt.plot(x, y_1)
plt.plot(x, y_2)

plt.xlim(-5, 5)
plt.ylim(-5, 5)

plt.axvline(x=0, color='grey')
plt.axhline(y=0, color='grey')

A = np.array([[-3, 1],[-2, 1]])
print(A)

b = np.array([[5],[3]])
print(b)

sol_1 = np.array([-2, -1])
print(sol_1)

print(A.dot(sol_1))


Me sorprende lo fácil que hace ver cómo se grafica una ecuación de 2 incognitas en plt.

Otra opción para resolver sistemas de ecuaciones con matrices es con el uso de determinantes les dejo un ejemplo por si a alguien le interesa:

Para resolver el sistema con Python:

import numpy as np

A = np.array([[-3, 1],
              [-2, 1]])

res_vec = np.array([[5],
                    [3]])

x = np.linalg.solve(A, res_vec)
print(x)

buena explicacion

x = np.arange(-5,5) - para que pone eso si después vuelve a definir el rango de -5 a 5 en
plt.xlim(-5,5)
plt.ylim(-5,5)

Muy buena explicación

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.arange(-5,5,0.5)
y_1 = 3x+5
y_2 = 2
x+3
plt.figure()
plt.plot(x,y_1)
plt.plot(x,y_2)
plt.xlim(-5,5)
plt.ylim(-5,5)

plt.axvline(x=0, color=‘grey’)
plt.axhline(y=0, color=‘grey’)```

print("-3x +y = 5")
print("-2x +y = 3")
print("|-3 1|.|x|=|5|")
print("|-2 1|.|y|=|3|\n")

-3x +y = 5
-2x +y = 3
|-3 1|.|x|=|5|
|-2 1|.|y|=|3|

A.dot(sol_1) == b
array([ True, True])
print(A.dot(sol_1))
[5 3]

X=inv(A)*B

La verdad no me gusto la clase, pense que iba a mostrar la forma de calcular la solucion de manera automatica con matrices y python.

Me gusto la clase, bastante intrigado por la siguiente.

Todo este tema de algebra lineal por fín le veo la aplicación y su posible programación. Se pone más interesante el tema…

Lo que realmente se hace es multiplicar a ambos lados de la igualdad por la matriz inversa