#10 METODO DE CRAMER

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

Leave a comment

Design a site like this with WordPress.com
Get started