Cómo resolver ecuaciones lineales en Python sin Numpy – Resuelto

Introducción

En este artículo aprenderemos cómo resolver ecuaciones lineales en Python sin la necesidad de utilizar la librería NumPy. Aprenderemos a resolver ecuaciones de la forma Ax = b, donde A es una matriz de coeficientes, x es el vector de incógnitas y b es el vector de constantes.

Implementación en Python

Para resolver ecuaciones lineales en Python sin NumPy, podemos utilizar la librería estándar de Python junto con algunas funciones y métodos propios de Python.

Primero, definimos la matriz de coeficientes A y el vector de constantes b. Luego, utilizamos el método de eliminación de Gauss para resolver el sistema de ecuaciones.

def gauss_elimination(A, b):

n = len(A)

for i in range(n):

# Pivoteo parcial

max_row = i

for k in range(i+1, n):

if abs(A[k][i]) > abs(A[max_row][i]):

max_row = k

A[i], A[max_row] = A[max_row], A[i]

b[i], b[max_row] = b[max_row], b[i]

# Eliminación hacia adelante

for k in range(i+1, n):

factor = A[k][i] / A[i][i]

for j in range(i, n):

A[k][j] -= factor * A[i][j]

b[k] -= factor * b[i]

# Sustitución hacia atrás

x = [0] * n

for i in range(n-1, -1, -1):

x[i] = (b[i] - sum(A[i][j] * x[j] for j in range(i+1, n))) / A[i][i]

return x

# Ejemplo de uso

A = [[2, 1, -1], [-3, -1, 2], [-2, 1, 2]]

b = [8, -11, -3]

solution = gauss_elimination(A, b)

print(solution)

En el ejemplo anterior, definimos la matriz de coeficientes A y el vector de constantes b. Luego, llamamos a la función gauss_elimination para resolver el sistema de ecuaciones y obtener la solución.

Con este método, podemos resolver ecuaciones lineales en Python sin la necesidad de utilizar la librería NumPy. ¡Espero que este artículo haya sido útil!

Rodrigo Olivares
Rodrigo Olivares

Rodrigo Olivares es un Ingeniero en Informática y estratega web que comparte en su canal de YouTube y en sus sitios web personales mas de 15 años de experiencia trabajando en diseño de sitios web, SEO, monetización e Inteligencia Artificial (IA)

Artículos: 554