Documente Academic
Documente Profesional
Documente Cultură
Definicin:
Cdigo de la implementacin:
def determinante(matriz):
ma = []
l = len(matriz[0])
for linea in matriz:
1
SIC-316 ARQUITECTURA DE COMPUTADORES
ma.append(linea[0:l-1])
return np.linalg.det(ma)
def generarArchivo(n):
sis=open("matriz10.csv","w")
vector=""
i =0
for i in range(n):
j =0
for j in range (n+1):
if (j!=n):
vector+=str (r.random ()*100)+";"
else:
vector+=str (r.random ()*100)+"\n"
sis.write(str(vector))
vector=""
sis.close ()
def eliminacionGaussiana(matriz):
n = len(matriz)
k= 1
i=0
while(k<n):
if(matriz[i][i]==0): #verifico si el pivote es cero
matriz[i] = evitarCeros(matriz,i)#llamo al metodo anterior para que el pivote sea
diferente de cero
2
SIC-316 ARQUITECTURA DE COMPUTADORES
k=n-2
i=n-1
while(i>=0): #misma operacion anterior, solo que se hacen ceros los elementos que estan
arribas del pivote y se empieza desde el ultimo, es decir de manera ascendente
for j in range(k,-1,-1):
matriz[j]= matriz[j]-matriz[j][i]*matriz[i]
k-=1
i-=1
soluciones = []
soltxt = open("soluciones.txt","w") #guardo en un archivo
i=0
for i in range(n): #guardo los resultados en una lista
soluciones.append("x"+str(i+1)+" = "+str(matriz[i][n]))
soltxt.write("x"+str(i+1)+" = "+str(matriz[i][n])+"\n")
return matriz,soluciones
def leerArchivo(): #leo un archivo csv, esta implementacion solo funciona con elementos enteros
en la matriz
matriz = []
archivo = open("matriz10.csv","r")
for line in archivo:
n = len(line)
matriz.append(line[0:n-1].split(";"))
matriz = np.array(matriz,dtype=float)
return matriz
if(len(matriz)==len(matriz[0]-1)):
return True
3
SIC-316 ARQUITECTURA DE COMPUTADORES
else:
return False
if __name__=="__main__":
n = s.argv[1]
generarArchivo(int(n))
print "******************************Calculador de Sistema de
Ecuaciones******************************************************\n"
sistema = leerArchivo()
print sistema
print len(sistema[0])
print
"\n*****************************************************************************
****************************************\n"
print "-> Matriz Obtenida desde el archivo de extension .csv\n",sistema
if(determinante(sistema)!=0):
matriz,sol = eliminacionGaussiana(sistema)
print
"*******************************************RESULTADOS**********************
****************************************\n"
print "-> se ha guardado en un archivo \n"
ar = open("soluciones.txt","r")
print ar.read()
print
"\n*****************************************************************************
****************************************\n"
print "-> Matriz Gaussiana \n",matriz
print
"\n*****************************************************************************
****************************************\n"
print "-> Determinante De la Matriz\n",determinante(sistema)
print
"\n*****************************************************************************
****************************************\n"
else:
print
"\n*****************************************************************************
****************************************\n"
print "tiene infinitas soluciones o no tiene solucion"
print "\n*******************************************Guardando en Archivo la Matriz
Gaussiana***********************************\n"
4
SIC-316 ARQUITECTURA DE COMPUTADORES