Método de Cramer
El método de Cramer es un método muy popular para la solución de sistemas de ecuaciones lineales compatibles determinados, mediante el cálculo de determinantes. El lenguaje python te permite resolver un sistema de cualquier numero de ecuaciones, gracias a la poderosa función det() que calcula el determinante de una matriz, la cual esta en la libreria np en el modulo de linalg. Ejemplo:
Resolver el sistema: x+4y+2z=7; x-y+2z=4; -x+5y-3z=0
SOLUCION EN PYTHON
import numpy as np
a=np.array([[1,1,-1],[4,-1,5],[2,2,-3]])
b=np.array([7,4,0])
d=np.linalg.det(a)
ax=a.copy();
ax.T[0]=b
print(“Ax”)
print(ax)
dy=np.linalg.det(ax)
x=dy/d
print(“x:”,round(x,3))
ay=a.copy()
ay.T[1]=b
print(“Ay”)
print(ay)
dy=np.linalg.det(ay)
y=dy/d
print(“y”,round(y,3))
az=a.copy()
az.T[2]=b
print(“Az”)
print(az)
dz=np.linalg.det(az)
z=dz/d
print(“z”,round(z,3))
Nota: Como puede observarse las instrucciones para x, y z son repititivas, por lo tanto podríamos usar un ciclo for para reemplazar esta repiticion, para ello, insertamos un vector de las incógnitas x, el cual inicializamos con ceros
N=len(b); x=np.zeros(N)
Luego introducimos un ciclo for, para hallar cada incognita
El programa con n incógnitas quedaría aun mas sencillo,
Usando estas ideas el programa anterior lo podemos modificar para resolver un sistema de n incognitas asi
import numpy as np
a=np.array([[1,1,-1],[4,-1,5],[2,2,-3]])
b=np.array([7,4,0]) # Nota La matriz a puede ser de cualquier dimension, aqui la ejemplificamos con una 3×3
d=np.linalg.det(a)
N=len(b); x=np.zeros(N)
for i in range(N)
ai=a.copy();
ai.T[i]=b
di=np.linalg.det(ai)
x[i]=di/d
print(x)
Nota: Colocar las identaciones del for donde corresponden, ya que el wordpress no permite colocarlas