def __init__(self, nombre, usuario, contra): self.nombre = nombre self.usuario = usuario self.contra = contra self.siguente = None self.anterior = None self.loper = operaciones.listaopera() self.matiz = matriz.matriz() self.trans = matriz.matriz()
def insertar(self, nombre, filas, columnas): nuevo = matriz(nombre, filas, columnas) if self.primero is None: self.primero = nuevo else: temporal = self.primero while temporal.siguiente is not None: temporal = temporal.siguiente temporal.siguiente = nuevo nuevo.anterior = temporal
def __init__(self, info, clave): self.info = info self.clave = clave self.siguiente = None self.anterior = None self.sesion = 0 self.contenedor_cola = None self.archivo_cargado = 0 self.cola = cola.Cola() self.matriz = matriz.matriz() ## self.matriz = clase_matriz.mat() print("Nueva instancia de nodo")
def relat(): ''' relat --> gera o relatório com a matriz de input o autovalor e autovetor de maor módulo. ** sem argumentos opcionais ou obrigatórios. ''' M0 = mat.matriz() #chama o módulo matriz inicial X0 = mat.Interacao() # chama o módulo do chute incial X_final, Lambd_final = pm.metodo_das_potencias(prec=1e-3) with open('PYTENCYS.txt', 'w') as arq: #cria o arquivo; w: write arq.write('PYTENCYS'.center(60, '#') + '\n') arq.write(f'Matriz do usuário: \n{M0}') arq.write(f'\nChute inicial: \n{X0}\n') arq.write(f'O autovetor final é: \n{X_final}\n') arq.write(f'O autovalor final é: \n{Lambd_final}\n') arq.write('#' * 60)
def metodo_das_potencias(prec): ''' Cálculo dos valores de maior módulo pelo método das potências. Argumentos: - obrigatórios: prec - o usuário deverá colocar a precisão que a interação deverá ter. Restrições: O usuário deverá colocar matrizes quadradas n dimensionais diagonalizáveis. ''' A = mat.matriz() print(A) X = mat.Interacao() Y = A.dot(X.T) # multiplica a matriz A pela transposta de X lambd = max(Y) # separa o valor de maior módulo X = (1 / lambd) * Y # calcula o autovetor lambd_anterior = lambd + 1 #pra rodar erro = abs(lambd - lambd_anterior) print(Y) print(X) while erro > prec: #laço de interações Y = A.dot(X) lambd_anterior = lambd lambd = max(Y) X = (1 / lambd) * Y erro = abs(lambd - lambd_anterior) print(Y) print(f'autovetor:{X}') print(f'autovalor: {lambd}') print('--------------') Lambd_final = lambd print(f'O autovalor final é: {Lambd_final}') #retorna o lambda final X_final = X print(f'O autovetor final é:\n {X_final}') #retorna o autovetor final return X_final, Lambd_final
def abrir(): filename = askopenfilename() tree = ET.parse(filename) root = tree.getroot() for elemento in root: n = matriz() # print(elemento.tag) #tag for subelemento in elemento: #print('> ' + subelemento.text) #valores -> text if subelemento.tag == 'nombre': nombre = subelemento.text if subelemento.tag == 'filas': filas = subelemento.text if subelemento.tag == 'columnas': columnas = subelemento.text if subelemento.tag == 'imagen': imagen = subelemento.text contadorColumnas = 0 contadorFilas = 0 for k in imagen: if (k == '-'): n.insertar(contadorFilas, contadorColumnas, '-') contadorColumnas = contadorColumnas + 1 if (k == '*'): n.insertar(contadorFilas, contadorColumnas, '*') contadorColumnas = contadorColumnas + 1 if (k == '\n'): contadorFilas = contadorFilas + 1 contadorColumnas = 1 nodo = lista.insertarFinal(nombre, filas, columnas, n) nodo.imagen = n listaCombo.append(nombre) #lista.mostrarMatriz() lista.crearImagen()
def RotacionTranspuesta(): n = matriz() ContadorFilas = 1 contadorColumnas = 1 print("rotando Imagen") nodo = lista.getNodo(comboExample.get()) filas = lista.getFilas(comboExample.get()) columnas = lista.getColumnas(comboExample.get()) print("el numero de filas es: " + str(filas)) print("el numero de columnas es: " + str(columnas)) NuevaImagen = nodo.imagen.rotacion() print(NuevaImagen) #contadorRotacion = int(filas) for k in NuevaImagen: if (k == '*'): n.insertar(ContadorFilas, contadorColumnas, '*') ContadorFilas = ContadorFilas + 1 #fila 1, columna 1 || fila 2, columna 1 if (k == '-'): n.insertar(ContadorFilas, contadorColumnas, '-') ContadorFilas = ContadorFilas + 1 if (k == '\n'): ContadorFilas = 1 contadorColumnas = contadorColumnas + 1 #n.recorrerFilas() nombre = comboExample.get() + "RotadaTranspuesta" nodo = lista.insertarFinal(nombre, contadorColumnas, filas, n) nodo.imagen = n listaCombo.append(comboExample.get() + 'RotadaTranspuesta') lista.crearImagen() listaReporte.insertar("Se roto la imagen de manera Traspuesta \n" + "Nombre de la matriz: " + comboExample.get() + "\nA la hora: " + str(now.date()) + " " + str(now.time())) listaReporte.mostrar()
def pulsar(): n = matriz() contadorColumnas = 1 print("rotando Imagen") nodo = lista.getNodo(comboExample.get()) filas = lista.getFilas(comboExample.get()) print("el numero de filas es: " + str(filas)) NuevaImagen = nodo.imagen.rotacion() print(NuevaImagen) contadorRotacion = int(filas) for k in NuevaImagen: if (k == '*'): n.insertar(contadorRotacion, contadorColumnas, '*') contadorColumnas = contadorColumnas + 1 if (k == '-'): n.insertar(contadorRotacion, contadorColumnas, '-') contadorColumnas = contadorColumnas + 1 if (k == '\n'): contadorRotacion = contadorRotacion - 1 contadorColumnas = 1 #n.recorrerFilas() nombre = comboExample.get() + "RotadaHorizontal" nodo = lista.insertarFinal(nombre, contadorColumnas, filas, n) nodo.imagen = n listaCombo.append(comboExample.get() + 'RotadaHorizontal') lista.crearImagen() listaReporte.insertar("Se roto la imagen de manera Horizontal \n" + "Nombre de la matriz: " + comboExample.get() + "\nA la hora: " + str(now.date()) + " " + str(now.time())) listaReporte.mostrar()
from tkinter import * from ListaSimple import ListaSimple from tkinter import filedialog import xml.etree.ElementTree as ET from matriz import matriz import subprocess window = Tk() ls = ListaSimple() listbox = Listbox(window) ma = matriz() def operacones_lista(): ls.push(1) ls.push(2) ls.push(3) ls.push(4) ls.push(5) #ls.print() def ayuda_convertir_lista(arreglo): aux = [] for i in arreglo: aux.append(i.strip()) contador = 0 for i in aux: if i == '': aux.pop(contador) contador = contador + 1
# -*- coding: utf-8 -*- """ Created on Sat Oct 21 10:45:42 2017 @author: Felipe """ import matriz as mtz A = mtz.matriz(mtz.digitar_matriz()) M, I = A.inv_gj() print(I)
import matriz as mtz import numpy as np escolha = int( input("(1) Para digitar.\n(2) Arqruivo *.txt .\nPor favor escolha:")) if escolha == 1: A = mtz.matriz(mtz.digitar_matriz()) elif escolha == 2: A = mtz.matriz(mtz.txt_matriz()) print("A matriz é:\n", A) print("Atividade 1 - Eliminação Gaussiana e Retrosubstituição") print("Atividade 2 - Problema de Valores de Contorno") print("Atividade 3 - Redução a forma escalonada em linha") print("Atividade 4 - Consistência e Sistemas Homogênios") print("Atividade 5 - Multiplicação de Matrizes") print("Atividade 6 - Verificar se é inversível e inversa.") atividade = int(input("Digite uma atividade:")) if atividade == 1: print("A forma esclonada da matriz é:\n", np.asmatrix(A.eliminacao_gaussiana())) print("Os valores de X1, X2, X3:\n", A.retrosubstituicao()) elif atividade == 2: print(A.valoresContorno()) elif atividade == 3: A.escalonada_linha()
def __init__(self, nombre,filas, columnas, imagen): self.nombre = nombre self.filas = filas self.columnas = columnas self.imagen = matriz() self.siguiente = None
def AgregarTriangulo(): n = matriz() LimparFila1 = 0 LimpiarFila2 = 0 LimpiarColumna1 = 0 LimpiarColumna2 = 0 EElementos = 0 LimparFila1 = CordenadaFila1.get("1.0", "end") LimpiarFila2 = CordenadaFila2.get("1.0", "end") LimpiarColumna1 = CordenadaColumna1.get("1.0", "end") LimpiarColumna2 = CordenadaColumna2.get("1.0", "end") EElementos = Elementos.get("1.0", "end") ContadorColumnas = 1 ContadorFilas = 1 fila1 = int(LimparFila1) fila2 = int(LimpiarFila2) columna1 = int(LimpiarColumna1) columna2 = int(LimpiarColumna2) #elementos = int(EElementos) MaximoHorizontal = columna1 nodo = lista.getNodo(comboExample.get()) NuevaImagen = nodo.imagen.rotacion() print(NuevaImagen) for k in NuevaImagen: if (k == '*'): if ((ContadorFilas >= fila1 and ContadorFilas <= fila2) and (ContadorColumnas >= columna1 and ContadorColumnas <= MaximoHorizontal)): print("contador FIla: " + str(ContadorFilas) + " Contador Columnas: " + str(ContadorColumnas)) n.insertar(ContadorFilas, ContadorColumnas, '*') ContadorColumnas = ContadorColumnas + 1 else: #print("contador FIla: "+ str(ContadorFilas) +" Contador Columnas: "+ str(ContadorColumnas)) n.insertar(ContadorFilas, ContadorColumnas, '*') ContadorColumnas = ContadorColumnas + 1 if (k == '-'): if ((ContadorFilas >= fila1 and ContadorFilas <= fila2) and (ContadorColumnas >= columna1 and ContadorColumnas <= MaximoHorizontal)): #print("maximo horizontal " + str(MaximoHorizontal)) print("contador FIla: " + str(ContadorFilas) + " Contador Columnas: " + str(ContadorColumnas)) n.insertar(ContadorFilas, ContadorColumnas, '*') ContadorColumnas = ContadorColumnas + 1 else: n.insertar(ContadorFilas, ContadorColumnas, '-') #print("contador FIla: "+ str(ContadorFilas) +" Contador Columnas: "+ str(ContadorColumnas)) ContadorColumnas = ContadorColumnas + 1 if (k == '\n'): if (ContadorFilas >= fila1 and ContadorFilas <= fila2): MaximoHorizontal = MaximoHorizontal + 1 ContadorFilas = ContadorFilas + 1 ContadorColumnas = 1 nombre = comboExample.get() + "Triangulo" nodo = lista.insertarFinal(nombre, ContadorFilas, ContadorColumnas, n) nodo.imagen = n listaCombo.append(comboExample.get() + 'Triangulo') lista.crearImagen() listaReporte.insertar("Se agrego un Triangulo en: " + "Fila 1: " + CordenadaFila1.get("1.0", "end") + "," + "columna 1: " + CordenadaColumna1.get("1.0", "end") + "," + "fila 2: " + CordenadaFila2.get("1.0", "end") + "," + "columna 2: " + CordenadaColumna2.get("1.0", "end") + "," + "\n" + "Nombre de la matriz: " + comboExample.get() + "\n En el momento: " + str(now.date()) + " " + str(now.time())) listaReporte.mostrar()
def LineaVertical(): n = matriz() LimparFila1 = 0 LimpiarFila2 = 0 LimpiarColumna1 = 0 LimpiarColumna2 = 0 EElementos = 0 LimparFila1 = CordenadaFila1.get("1.0", "end") #LimpiarFila2 = CordenadaFila2.get("1.0","end") LimpiarColumna1 = CordenadaColumna1.get("1.0", "end") #LimpiarColumna2 = CordenadaColumna2.get("1.0","end") EElementos = Elementos.get("1.0", "end") ContadorColumnas = 1 ContadorFilas = 1 fila1 = int(LimparFila1) #fila2 = int(LimpiarFila2) columna1 = int(LimpiarColumna1) #columna2 =int(LimpiarColumna2) elementos = int(EElementos) MaximoVertical = fila1 + elementos nodo = lista.getNodo(comboExample.get()) NuevaImagen = nodo.imagen.rotacion() print(NuevaImagen) for k in NuevaImagen: if (k == '*'): if ((ContadorFilas >= fila1 and ContadorFilas < MaximoVertical) and ContadorColumnas == columna1): print("contador FIla: " + str(ContadorFilas) + " Contador Columnas: " + str(ContadorColumnas)) n.insertar(ContadorFilas, ContadorColumnas, '*') ContadorColumnas = ContadorColumnas + 1 else: n.insertar(ContadorFilas, ContadorColumnas, '*') ContadorColumnas = ContadorColumnas + 1 if (k == '-'): if ((ContadorFilas >= fila1 and ContadorFilas < MaximoVertical) and ContadorColumnas == columna1): print("contador FIla: " + str(ContadorFilas) + " Contador Columnas: " + str(ContadorColumnas)) n.insertar(ContadorFilas, ContadorColumnas, '*') ContadorColumnas = ContadorColumnas + 1 else: n.insertar(ContadorFilas, ContadorColumnas, '-') ContadorColumnas = ContadorColumnas + 1 if (k == '\n'): ContadorFilas = ContadorFilas + 1 ContadorColumnas = 1 nombre = comboExample.get() + "LVertical" nodo = lista.insertarFinal(nombre, ContadorFilas, ContadorColumnas, n) nodo.imagen = n listaCombo.append(comboExample.get() + 'Lvertical') lista.crearImagen() listaReporte.insertar("Se agrego una linea Vertical en: " + "fila : " + CordenadaFila1.get("1.0", "end") + "," + "columna : " + CordenadaColumna1.get("1.0", "end") + "," + "Numero De elementos: " + Elementos.get("1.0", "end") + "," + "\n" + " Nombre de la matriz: " + comboExample.get() + "\n A la hora: " + str(now.date()) + " " + str(now.time())) listaReporte.mostrar()
import matriz as mtz from sympy import * A = mtz.matriz(mtz.txt_matriz()) def nao_singular(A): det = A.determinante() if det != 0: return True else : return False identidade = A.identidade() print(identidade)
def __init__(self, main_window): self.m = matriz() self.matris = Lista_matriz() self.operac = Lista_ope() self.errores = Lista_error() self.fecha = date.today() self.main_window = main_window self.main_window.title("Principal") self.main_window.geometry("700x550") self.main_window.config(bg="#A6FA3E") self.frameB = Frame(self.main_window, pady=5, bg="#014A42") self.frameB.grid(row=0, column=0, sticky="ew", padx=10, pady=10) self.frame2 = Frame(self.main_window, pady=5, bg="#014A42") self.frame2.grid(row=1, column=0, pady=20, padx=10, sticky="nsew", rowspan=5) self.img = ImageTk.PhotoImage( Image.open( "C:/Users/jezeh/OneDrive/Escritorio/IPC2/Proyecto2_ipc2/vacia.jpg" )) self.lab1 = Label(self.frame2, image=self.img).grid(row=1, column=0, padx=10, pady=10, sticky="nsew") self.img2 = ImageTk.PhotoImage( Image.open( "C:/Users/jezeh/OneDrive/Escritorio/IPC2/Proyecto2_ipc2/vacia.jpg" )) self.lab2 = Label(self.frame2, image=self.img2) self.lab2.grid(row=1, column=1, padx=10, pady=10, sticky="nsew") self.labO = Label(self.frame2, text="Imagen Original") self.labO.grid(row=0, column=0, padx=10, pady=10, sticky="nsew") self.labE = Label(self.frame2, text="editada") self.labE.grid(row=0, column=1, padx=10, pady=10, sticky="nsew") self.b1 = Button(self.frameB, text="CARGAR ARCHIVO", width=20, command=self.ventanaCargar) self.b1.grid(row=0, column=0, padx=5) self.b2 = Button(self.frameB, text="OPERACIONES", width=20, command=self.ventanaOperaciones) self.b2.grid(row=0, column=2, padx=5) self.b3 = Button(self.frameB, text="REPORTE", width=20, command=self.reporte) self.b3.grid(row=0, column=3, padx=5) self.b4 = Button(self.frameB, text="AYUDA", width=20, command=self.ayuda) self.b4.grid(row=0, column=4, padx=5)
def LimpiarArea(): n = matriz() LimparFila1 = 0 LimpiarFila2 = 0 LimpiarColumna1 = 0 LimpiarColumna2 = 0 LimparFila1 = CordenadaFila1.get("1.0", "end") LimpiarFila2 = CordenadaFila2.get("1.0", "end") LimpiarColumna1 = CordenadaColumna1.get("1.0", "end") LimpiarColumna2 = CordenadaColumna2.get("1.0", "end") fila1 = int(LimparFila1) fila2 = int(LimpiarFila2) columna1 = int(LimpiarColumna1) columna2 = int(LimpiarColumna2) print(str(LimparFila1)) print(str(LimpiarFila2)) print(str(LimpiarColumna1)) print(str(LimpiarColumna2)) ContadorFilas = 1 ContadorColumnas = 1 nodo = lista.getNodo(comboExample.get()) NuevaImagen = nodo.imagen.rotacion() print(NuevaImagen) for k in NuevaImagen: if (k == '*'): if ((ContadorFilas >= fila1 and ContadorFilas <= fila2) and (ContadorColumnas >= columna1 and ContadorColumnas <= columna2)): #print("FIlas: "+ str(ContadorFilas)) #print("Limpiar columna: "+ str(ContadorColumnas)) n.insertar(ContadorFilas, ContadorColumnas, '-') ContadorColumnas = ContadorColumnas + 1 else: n.insertar(ContadorFilas, ContadorColumnas, '*') ContadorColumnas = ContadorColumnas + 1 if (k == '-'): n.insertar(ContadorFilas, ContadorColumnas, '-') ContadorColumnas = ContadorColumnas + 1 if (k == '\n'): ContadorFilas = ContadorFilas + 1 ContadorColumnas = 1 #n.recorrerFilas() nombre = comboExample.get() + "Borrada" nodo = lista.insertarFinal(nombre, ContadorFilas, ContadorColumnas, n) nodo.imagen = n listaCombo.append(comboExample.get() + 'Borrada') lista.crearImagen() listaReporte.insertar("Se limpio el area de " + "fila 1: " + CordenadaFila1.get("1.0", "end") + "," + "columna 1: " + CordenadaColumna1.get("1.0", "end") + "," + "fila 2: " + CordenadaFila2.get("1.0", "end") + "," + "columna 2: " + CordenadaColumna2.get("1.0", "end") + "," + "\n" + "Nombre de la matriz: " + comboExample.get() + "\n A la hora: " + str(now.date()) + " " + str(now.time())) listaReporte.mostrar()