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
Exemple #3
0
    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")
Exemple #4
0
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)
Exemple #5
0
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
Exemple #10
0
# -*- 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()
Exemple #15
0
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)

Exemple #16
0
    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()