def productoVectoresComplejos(vec1, vec2): '''retorna un numero complejo siendo el producto entre dos arreglso complejos''' res = [0, 0] if (len(vec1) == len(vec2)): for i in range(len(vec1)): res = co.suma_i(res, co.product_i(vec1[i], vec2[i])) else: print("Longitudes de vecetores no son validas") return (res)
def sumaMatricesComplejas(matrizA, matrizB): """metodo q retorna la suma entre dos matrices""" matRes = [] for i in range(len(matrizA)): fila = [] for j in range(len(matrizA[i])): c = co.suma_i(matrizA[i][j], matrizB[i][j]) fila.append(c) matRes.append(fila) return (matRes)
def valorEsperado(matriz,ket): valor = [0,0] ketModule = [] for state in ket: ketModule.append([[pow(co.module_i(state),2),0]]) produMatriz = co.multiplicarMatrices(matriz,ketModule) for i in produMatriz: valor = co.suma_i(valor,i[0]) return (valor[0])
def sumaVectoresComplejos(a, b): """Metodo q suma dos vectores complejos; a y b de tipo array""" if (len(a) == len(b)): vecRes = [] for i in range(len(a)): res = co.suma_i(a[i], b[i]) vecRes.append(res) return (vecRes) else: print("Los vectores deben tener la misma longitud")
def multiplicarMatrices(matrizA, matrizB): '''Retorna la multiplicación entre matrices''' if len(matrizA[0]) == len(matrizB): ret = generateEmptyMatrix(len(matrizA), len(matrizB[0])) #ret = [0,0] for i in range(len(matrizA)): for j in range(len(matrizB[0])): ret[i][j] = [0, 0] for k in range(len(matrizA[0])): ret[i][j] = co.suma_i( ret[i][j], co.product_i(matrizA[i][k], matrizB[k][j])) if len(ret) == 1: return (ret[i][j]) return (ret) else: return (0)