#9 Metodo de Gauss para resolver un sistema de Ecuaciones

SOLUCIÓN DE UN SISTEMA DE ECUACIONES LINEALES
Introducción. Un sistema de ecuaciones es un conjunto de n ecuaciones con n incógnitas x1, x2,.., xn para las cuales existe una solución común

Ejemplo: el sistema:

2X1-7X2+4X3=9
X1+9X2+6X3=25
-3X1+8X2+5X3=6

Tiene solución x1=4, x2=1 y x3=2, ya que estos valores satisfacen todas las ecuaciones simultáneamente. La matriz del sistema es la matriz formada por los coeficientes del sistema y la matriz aumentada es la matriz que contiene además de los coeficientes del sistema los términos independientes. En el ejemplo la matriz aumentada del sistema es :

Matriz aumentada
col1 col2 col3 b
[1,] 2 -7 4 9
[2,] 1 9 6 25
[3,] -3 8 5 6
SOLUCION DE UN SISTEMA POR EL METODO DE GAUSS
GAUSS (matemático alemán del siglo 18, su nombre completo es Carl Frederick Gauss) diseno un método para resolver un sistema de ecuaciones lineales basados en tres operaciones elementales en la matriz aumentada que no cambian la solucion del sistema. Estas operaciones son:
1) Intercambiar 2 filas
2) Multiplicar una fila por un numero
3) Cambiar una fila por el resultado de multiplicar otra fila por un numero y sumárselo a la primera.
Basados en estas operaciones, Gauss elaboro un Algoritmo para resolver un sistema de ecuaciones lineales, el cual tiene dos etapas: Etapa de eliminación y Etapa de Sustitución Regresiva
Etapa de eliminación
Se establece la fila k (k=1,2..n-1, siendo n el numero de filas) como fila pivote, y se busca un multiplicador que haga 0 al primer elemento de la fila i=k+1, este multiplicador es m=A[i,k]/A[k,k], luego se multiplica m por la fila k y el resultado se resta de la fila i, esto es:
A[i,j]=A[i,j]-m*A[k,j], j=k+1,… (n+1).
Siguiendo este algoritmo se obtiene un sistema triangular superior (Escalonado)
Ejemplo: Ver
http://www.ecoribera.org/ciencias/matematicas/2-bachillerato/142-sistemas-lineales-de-4-ecuaciones-con-4-incognitas

Etapa de Sustitución Regresiva
Una vez obtenido el sistema escalonado, se comienza de la ultima fila y se determina la solucion de la ultima incognita: x[n]=b[n]/A[n,n], Luego se obtienen las otras incognitas en forma regresiva desde la penultima fila hasta la primera, usando la formula
x(i)= (1/a(i,i) )[b[i]- suma desde j=i hasta n de a[i,j]*x[j], i=n-1,n-2,…1

PROGRAMA EN PYTHON
Código fuente
import numpy as np
def Gauss (a,b):
n = len(b)
for k in range(0,(n-1)):
for i in range(k+1,n):
if (a[i,k] != 0.0):
m= a[i,k]/a[k,k]
a[i,k+1:n] = a[i,k+1:n] – m*a[k,k+1:n] b[i] = b[i] – mb[k]
if(a[n-1,n-1]==0 and a[n-1,n]!=0):
print(‘Sistema incompatible’)
exit
if(a[n-1,n-1]==0 and a[n-1,n]==0):
print(‘Sistema compatible indeterminado’)
exit
for k in range((n-1),-1,-1):

and a[n-1,n]!=0):
print(‘Sistema incompatible’)
exit
if(a[n-1,n-1]==0 and a[n-1,n]==0):
print(‘Sistema compatible indeterminado’)
exit
for k in range((n-1),-1,-1):
b[k] = (b[k]-np.dot(a[k,k+1:n],b[k+1:n]))/a[k,k]
return b
A=np.array([[1,1,-1],[4,-1,5],[2,2,-3]])
B=np.array([7,4,0])
print(“\nGauss Ejercicio #1”)
print(Gauss(A,B))

Leave a comment

Design a site like this with WordPress.com
Get started