Exemple #1
0
def inversoAditivoVector(v1):
    """
    La función inverso aditivo de un vector complejo recibe una lista de
    longitud n que a su vez contienen listas de longitud 2 y devuelve cada
    posición del vector multiplicada por el complejo [-1,0]
    """
    res = []
    for i in range(len(v1)):
        res.append(lc.producto(v1[i][0], [-1, 0]))
    return res
Exemple #2
0
def productoEscalarMatriz(m1, ec1):
    """
    La función producto de un escalar por una matriz complejo recibe un escalar
    (lista de longitud 2) y una matriz (listas de longitud n que contienen listas
    de longitud n y a su vez tienen listas de longitud 2) y devuelve la operación
    de multiplicar el escalar por cada elemento del vector
    """
    res = []
    for i in range(len(m1)):
        for j in range(len(m1[0])):
            res.append(lc.producto(m1[i][j], ec1))
    return res
Exemple #3
0
def inversoAditivoMatriz(m1):
    """
    La función inversa aditiva de una matriz recibe una matriz (lista de
    longitud n que contiene una lista de longitud n y que a su vez contiene complejos,
    es decir listas de longitud 2) y devuelve cada posición de la matriz multiplicada
    por el complejo [-1,0]
    """
    res = []
    for i in range(len(m1)):
        for j in range(len(m1[0])):
            res.append(lc.producto(m1[i][j], [-1, 0]))
    return res
Exemple #4
0
def productoTensorial(m1, m2):
    """
    La función producto tensorial recibe dos matrices y como resultado
    devuelve la operación de hacer producto tensorial entre las dos matrices
    """
    filasm1, filasm2 = len(m1), len(m2)
    columnasm1, columnasm2 = len(m1[0]), len(m2[0])
    mr = [[[0, 0] for i in range(columnasm1*columnasm2)]for j in range(filasm1*filasm2)]
    for i in range(len(mr)):
        for j in range(len(mr[0])):
            mr[i][j] = lc.producto(m1[i//filasm2][j//columnasm2], m2[i%filasm2][j%columnasm2])
    return mr
Exemple #5
0
def productoMatrices(m1, m2):
    """
    la función producto de matrices recibe dos matrices de números complejos y retorna
    la operación de multiplicar las matrices, para esto se requiere que el número de
    columnas de la primera matriz sea igual al número de filas de la segunda, y se opera
    multiplicando filas de la primera matriz con las columnas de la segunda matriz
    """
    filasm1, filasm2 = len(m1), len(m2)
    columnasm1, columnasm2 = len(m1[0]), len(m2[0])
    if columnasm1 == filasm2:
        mr = [[[0, 0] for columnas in range(columnasm2)]for filas in range(filasm1)]
        for i in range(filasm1):
            for j in range(columnasm2):
                for k in range(filasm2):
                    mr[i][j] = lc.suma(mr[i][j],lc.producto(m1[i][k], m2[k][j]))
        return mr
    else:
        return "Syntax Error"