Resolver sistemas de ecuaciones lineales con Python’s Numpy

R

Numpy una biblioteca se puede utilizar para realizar una variedad de operaciones matemáticas / científicas, como encontrar productos de matriz de puntos y cruzados, valores de seno y coseno, Transformación de Fourier y manipulación de formas, etc. La palabra Numpy es una notación abreviada de “Numeric Python”.

En este artículo, verá cómo resolver un sistema de ecuaciones lineales utilizando la biblioteca Numpy Python.

¿Qué es un sistema de ecuación lineal?

Wikipedia define un ecuaciones lineales del sistema como:

En matemáticas, un sistema de ecuaciones lineales (o un sistema lineal) es una colección de dos o más ecuaciones lineales que involucran el mismo conjunto de variables.

El objetivo final de resolver un sistema de ecuaciones lineales es obtener los valores de las variables desconocidas. Aquí hay un ejemplo de un sistema de ecuaciones lineales con dos variables desconocidas, x y y:

Ecuación 1:

4x  + 3y = 20
-5x + 9y = 26

Para resolver el sistema anterior de ecuaciones lineales, necesitamos los valores de la x y y variables. Hay varias formas de resolver un sistema de este tipo, como Eliminación de variables, Regla de Cramer, Técnica de reducción de filas y Solución matricial. En este artículo, cubriremos la solución matricial.

En la solución matricial, el sistema de ecuaciones lineales a resolver se representa en forma de matriz. AX = B. Por ejemplo, podemos representar la Ecuación 1 en forma de matriz de la siguiente manera:

A = [[ 4   3]
     [-5   9]]

X = [[x]
     [y]]

B = [[20]
     [26]]

Por el valor de x y y variables en la Ecuación 1, necesitamos encontrar los valores en la matriz X. Para hacer eso, podemos tomar el producto escalar inverso de la matriz Ay la matriz B Como se muestra abajo:

X = inverse(A).B

Si no está familiarizado con cómo obtener una matriz inversa, consulte este enlace para comprender cómo hacerlo manualmente encontrar la inversa de matriz. Para comprender el producto de matriz de puntos, consulte Este artículo.

Resolver un sistema de ecuaciones lineales con Numpy

Por el artículo anterior, sabemos que necesitamos realizar dos operaciones para resolver un sistema de ecuaciones lineales: inversión de una matriz y producto de una matriz de puntos. La biblioteca Numpy de Python admite ambas operaciones. Si aún no tiene una biblioteca Numpy instalada, puede hacer lo siguiente pip orden:

$ pip install numpy

Ahora veremos cómo resolver un sistema de ecuaciones lineales con la biblioteca Numpy.

Usando los métodos inv () y dot ()

Primero, encontramos la inversa de la matriz A que definimos en el artículo anterior.

Primero creemos la matriz A y Python. Para crear una matriz, el array se puede utilizar el método del módulo Numpy. Una matriz se puede considerar como una lista de listas en las que cada lista representa una fila.

En el siguiente script creamos una lista llamada m_list, que además contiene dos listas: [4,3] y [-5,9]. Estas listas son los dos conjuntos de la matriz A. Para crear la matriz A y Numpy, el m_list reenviado al array método como se muestra a continuación:

import numpy as np

m_list = [[4, 3], [-5, 9]]
A = np.array(m_list)

Para obtener una matriz inversa, la matriz se pasa al linalg.inv() Método del módulo Numpy:

inv_A = np.linalg.inv(A)

print(inv_A)

El siguiente paso es encontrar el producto escalar entre el inverso de la matriz Ay la matriz B. Es importante mencionar que un producto de matriz de puntos solo se puede hacer entre las matrices si las dimensiones internas de las matrices son las mismas es decir, el número de columnas de la matriz de la izquierda debe coincidir con el número de filas de la matriz de la derecha.

Para obtener el producto escalar con la biblioteca Numpy, el linalg.dot() función utilizada. El siguiente script encuentra el producto escalar entre el inverso de la matriz A y la matriz B, que es la solución de la Ecuación 1.

B = np.array([20, 26])
X = np.linalg.inv(A).dot(B)

print(X)

Salida:

[2. 4.]

Seo 2 y 4 son los valores respectivos sin saberlo x y y en la Ecuación 1. Para verificar, si conecta 2 en lugar de lo desconocido x y 4 en lugar de lo desconocido y en una ecuación 4x + 3y, verá que el resultado será 20.

Ahora resolvemos un sistema de tres ecuaciones lineales, como se muestra a continuación:

4x + 3y + 2z = 25
-2x + 2y + 3z = -10
3x -5y + 2z = -4

La ecuación anterior se puede resolver utilizando la biblioteca Numpy de la siguiente manera:

Ecuación 2:

A = np.array([[4, 3, 2], [-2, 2, 3], [3, -5, 2]])
B = np.array([25, -10, -4])
X = np.linalg.inv(A).dot(B)

print(X)

En el guión de arriba está el linalg.inv() y el linalg.dot() los métodos están encadenados. La variable X la solución para la Ecuación 2 está ahí, y se imprime de la siguiente manera:

[ 5.  3. -2.]

El valor de lo desconocido x, yy z que son 5, 3 y -2, respectivamente. Puede insertar estos valores en la Ecuación 2 y verificar su precisión.

Usando el método de solución ()

En los dos ejemplos anteriores, usamos linalg.inv() y linalg.dot() métodos para encontrar la solución del sistema de las ecuaciones. sin embargo, el linalg.solve() método, que se puede utilizar para encontrar la solución del sistema de ecuaciones lineales directamente:

A = np.array([[4, 3, 2], [-2, 2, 3], [3, -5, 2]])
B = np.array([25, -10, -4])
X2 = np.linalg.solve(A,B)

print(X2)

Salida:

[ 5.  3. -2.]

Verá que la salida es la misma que antes.

Un ejemplo del mundo verdadero

Veamos cómo se puede utilizar un sistema de ecuaciones lineales para resolver problemas de la vida real.

Por ejemplo, un vendedor de frutas vendió 20 mangos y 10 naranjas en un día por un total de $ 350. Al día siguiente vendió 17 mangos y 22 naranjas por $ 500. Si los precios de la fruta se mantuvieron sin cambios en ambos días, ¿cuál fue el precio de un mango y una naranja?

Este problema se puede resolver fácilmente con un sistema de dos ecuaciones lineales.

Digamos que el precio del mango es uno x y el precio es una naranja y. El problema anterior se puede convertir de la siguiente manera:

20x + 10y = 350
17x + 22y = 500

La solución del sistema de ecuaciones se muestra arriba:

A = np.array([[20, 10], [17, 22]])
B = np.array([350, 500])
X = np.linalg.solve(A,B)

print(X)

Y aquí está la salida:

[10. 15.]

El resultado muestra que el precio de un mango es de $ 10 y el precio de una naranja es de $ 15.

Conclusión

El artículo explica cómo resolver un sistema de ecuaciones lineales utilizando la biblioteca Numpy Python. Puedes usar cualquiera de ellos linalg.inv() y linalg.dot() métodos en una cadena para resolver un sistema de ecuaciones lineales, o puede solve() método. El solve() el método es la mejor manera.

.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad