def determinante(matriz1): sumar=0,0 if len(matriz1)>2: for x in range(len(matriz1)): matriz2=cofactores(matriz1,x,0) rta=imaginar.multiplicacion(matriz1[x][0],determinante(matriz2)) if x%2!=0: rta=imaginar.multiplicacion((-1,0),rta) sumar=imaginar.suma(sumar,rta) return sumar if len(matriz1)==2: r1=imaginar.multiplicacion(matriz1[0][0],matriz1[1][1]) r2=imaginar.resta(r1,imaginar.multiplicacion(matriz1[0][1],matriz1[1][0])) else: r2=matriz1[0][0] return r2
def multiplicacion_escalar_matrices(escalar,matriz): matriz2=[] n=len(matriz) for x in range(n): m=[] for y in range(n): m.append(imaginar.multiplicacion(escalar,matriz[x][y])) matriz2.append(m) return matriz2
def producto_tensor(m1,m2): lista=[] for x in range(len(m1)): for y in range(len(m1)): lis=[] for k in range(len(m2)): for z in range(len(m2)): lis.append(imaginar.multiplicacion(m1[x][y],m2[k][z])) lista.append(lis) return lista
def distancia_matrices(matriz1,matriz2): suma=(0,0) for x in range(len(matriz1)): for y in range(len(matriz1[0])): s=imaginar.resta(matriz1[x][y],matriz2[x][y]) s=imaginar.multiplicacion(s,s) suma=imaginar.suma(suma,s) return (suma[0]+suma[1])**(1/2)
def adjunta(matriz1): lista=[] for x in range(len(matriz1)): lis=[] for y in range(len(matriz1)): k=determinante(cofactores(matriz1,x,y)) if (x+y)%2!=0: k=imaginar.multiplicacion((-1,0),k) lis.append(k) lista.append(lis) return lista
def multiplicacion_matriz(matriz1,matriz2): lista=[] for x in range(len(matriz1)): lis=[] for y in range(len(matriz2[0])): sumar=(0,0) for z in range(len(matriz2)): k=imaginar.multiplicacion(matriz1[x][z],matriz2[z][y]) sumar=imaginar.suma(sumar,k) lis.append(sumar) lista.append(lis) return lista
def producto_escalar(c,v1): for x in range(len(v1)): v1[x]=imaginar.multiplicacion(c,v1[x]) return v1
def test_multiplicacion(self): self.assertEqual(imaginar.multiplicacion((2, 3), (4, 5)), (-7, 22))