cuadros - facultad de ciencias de la universidad...

Post on 25-Sep-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

cuadros

February 28, 2019

Nuestro espacioLos lugares de la matriz son los puntos de (Zn)2.La idea es aplicar una transformación lineal para reordenar los números 1, 2, n2 que están origi-

nalmente colocados ordenadamente en una matriz n × n. La matriz n × n es como nuestro espaciode n2 puntos, los números que le colocamos se deben entender como objetos que están colocadosen los puntos. En la siguiente quedan repartidos los puntos de 1, . . . 25.

In [2]: AA=matrix(ZZ, 5, 5, lambda x, y: 5*x+y+1)print AAprint AA.nrows()

[ 1 2 3 4 5][ 6 7 8 9 10][11 12 13 14 15][16 17 18 19 20][21 22 23 24 25]5

Ahora aplicamos una transformación a la matriz, la transformación realmente es una matriz2 × 2 con coeficientes entre 1, . . . , n. £ Dónde quedará el punto marcado con el número 13? élestá en la fila 2 columna 2 entonces aplicamos la transformación al vector (2, 2) y donde nos dé,colocamos el número 13.

In [3]: def magn(nn,ta1,ta2):lote=[]rima=[]for ka in range(nn^2):

lote.append(ka+1)rima.append(0)

aa=matrix(nn,nn,lote)be=matrix([ta1,ta2]) #esta es la transformaciónfor i in range(nn):

for j in range(nn): #vamos a recorrer todos los i,jtu=vector(ZZ,[i,j]) # este vector columna indica el puesto en que vamosfu=be*tuxu=fu[0]%nn;yu=fu[1]%nn # a las componentes de fu les saca

#residuo módulo nn

1

rima[yu+nn*xu]=aa[i][j]#aquí el número que está en (i,j) pasa al puesto determinado por betona=matrix(ZZ,nn,nn,rima)return tona

In [4]: magn(6,[1,1],[5,5])

Out[4]: [32 0 0 0 0 0][ 0 0 0 0 0 33][ 0 0 0 0 34 0][ 0 0 0 35 0 0][ 0 0 36 0 0 0][ 0 31 0 0 0 0]

In [5]: def sumfi(aa,nn):for ii in range(nn):

lupita=0for jj in range(nn):

lupita+=aa[ii][jj]print lupita

def sumco(aa,nn):for ii in range(nn):

lupita=0for jj in range(nn):

lupita+=aa[ii][jj]print lupita

In [6]: sumfi(magn(6,[1,2],[1,3]),6)

931299312993129

In [7]: magn(3,[1,1],[2,1])

Out[7]: [1 6 8][9 2 4][5 7 3]

In [8]: magn(3,[1,1],[1,1])

Out[8]: [8 0 0][0 9 0][0 0 7]

In [9]: magn(6,[1,1],[0,1])

2

Out[9]: [ 1 32 27 22 17 12][ 7 2 33 28 23 18][13 8 3 34 29 24][19 14 9 4 35 30][25 20 15 10 5 36][31 26 21 16 11 6]

In [10]: magn(6,[1,1],[2,1])

Out[10]: [ 1 12 17 22 27 32][33 2 7 18 23 28][29 34 3 8 13 24][19 30 35 4 9 14][15 20 25 36 5 10][11 16 21 26 31 6]

In [11]: def modula(XX,nn):ss=XX.nrows()tt=XX.ncols()ruta=[]for ii in range(ss):

for jj in range(tt):ruta.append(XX[ii][jj]%nn)

rota=matrix(ss,tt,ruta)return rota

In [12]: def colorea(XX,nn):gg=Graphics()A=vector(QQ,[0,0]);B=vector(QQ,[1,0])C=vector(QQ,[1,1]);D=vector(QQ,[0,1])coll=['blue','red','yellow','green','orange','magenta','brown','gray','purple','white','black']ss=XX.nrows()tt=XX.ncols()for ii in range(ss):

for jj in range(tt):V=vector(QQ,[jj,ii])E=A+V;F=B+VG=C+V;H=D+Vlito=XX[ii][jj]%nnpp=polygon2d([E,F,G,H],color=coll[lito])gg+=pp

return gg

In [13]: colorea(magn(6,[1,1],[2,1]),6)

Out[13]:

3

In [14]: colorea(magn(7,[5,1],[2,1]),2).show(axes=False)

4

In [15]: magn(7,[2,1],[3,1])

Out[15]: [ 1 13 18 23 35 40 45][46 2 14 19 24 29 41][42 47 3 8 20 25 30][31 36 48 4 9 21 26][27 32 37 49 5 10 15][16 28 33 38 43 6 11][12 17 22 34 39 44 7]

In [16]: colorea(magn(7,[2,1],[3,1]),7)

Out[16]:

5

In [17]: colorea(magn(7,[2,1],[3,1]),3).show(axes=False)

6

In [18]: magn(7,[2,4],[3,1])

Out[18]: [ 1 47 37 34 24 21 11][16 13 3 49 39 29 26][31 28 18 8 5 44 41][46 36 33 23 20 10 7][12 2 48 38 35 25 15][27 17 14 4 43 40 30][42 32 22 19 9 6 45]

In [19]: sumfi(magn(7,[2,4],[3,1]),7)

175175

7

175175175175175

In [20]: sumco(magn(7,[2,4],[3,1]),7)

175175175175175175175

In [21]: sumfi(magn(8,[2,4],[3,1]),7)

302037903200361

In [22]: magn(8,[2,1],[1,3])

Out[22]: [ 1 27 53 15 33 59 21 47][60 22 48 2 28 54 16 34][55 9 35 61 23 41 3 29][42 4 30 56 10 36 62 24][37 63 17 43 5 31 49 11][32 50 12 38 64 18 44 6][19 45 7 25 51 13 39 57][14 40 58 20 46 8 26 52]

In [23]: KK.<u>=GF(9)

In [24]: for ii in KK:print ii,

0 u u + 1 2*u + 1 2 2*u 2*u + 2 u + 2 1

In [25]: u^3

8

Out[25]: 2*u + 1

In [26]: u^2==u+1

Out[26]: True

In [27]: magn(9,[2,1],[1,1])

Out[27]: [ 1 75 68 61 54 38 31 24 17][18 2 76 69 62 46 39 32 25][26 10 3 77 70 63 47 40 33][34 27 11 4 78 71 55 48 41][42 35 19 12 5 79 72 56 49][50 43 36 20 13 6 80 64 57][58 51 44 28 21 14 7 81 65][66 59 52 45 29 22 15 8 73][74 67 60 53 37 30 23 16 9]

In [28]: KK.<u>=GF(9) #aquí se presentan los datos módulo 9 y se trabaja en GF(9)def mag9s(ta1,ta2):

lote=[]rima=[]for ka in range(9^2):

lote.append(ka+1)rima.append(0)

aa=matrix(9,9,lote)be=matrix(KK,[ta1,ta2])te=[]for ru in KK:

te.append(ru)for i in range(9):

for j in range(9):tu=vector(KK,[te[i],te[j]])fu=be*tux=fu[0];y=fu[1]#print x,yfor kk in range(9):

if x==te[kk]:xu=kk

for jj in range(9):if y==te[jj]:

yu=jjrima[xu+9*yu]=mod(aa[i][j],9)

tona=matrix(ZZ,9,9,rima)return tona

In [29]: mag9s([u,u+1],[u,u+2])

Out[29]: [1 6 7 8 0 2 3 4 5][2 1 5 7 3 6 4 0 8]

9

[3 0 1 6 8 4 7 5 2][4 3 2 1 7 0 5 8 6][5 7 4 3 1 8 2 6 0][6 2 8 5 4 1 0 3 7][7 8 3 0 6 5 1 2 4][8 5 0 4 2 7 6 1 3][0 4 6 2 5 3 8 7 1]

In [30]: colorea(mag9s([u,u+1],[u,u+2]),9)

Out[30]:

In [31]: KK.<u>=GF(9)def magicls9(ta1,ta2):

10

lote=[]rima=[]for ka in range(9^2):

lote.append(ka+1)rima.append(0)

aa=matrix(9,9,lote)be=matrix(KK,[ta1,ta2])te=[0,1,2,u,u+1,u+2,2*u,2*u+1,2*u+2]for i in range(9):

for j in range(9):tu=matrix(KK,[[te[i]],[te[j]]])fu=be*tux=fu[0];y=fu[1]#print x,yfor kk in range(9):

if x[0]==te[kk]:xu=kk

for jj in range(9):if y[0]==te[jj]:

yu=jjrima[xu+9*yu]=mod(aa[i][j],9)

tona=matrix(ZZ,9,9,rima)return tona

In [32]: colorea(magicls9([u,u+1],[u,u+2]),9)

Out[32]:

11

In [33]: colorea(magicls9([2*u,u+1],[u+1,u]),9)

Out[33]:

12

In [34]: colorea(magicls9([2*u,u+1],[u,2*u]),9)

Out[34]:

13

In [35]: colorea(magicls9([u,u+2],[u+1,u]),9)

Out[35]:

14

In [36]: colorea(magn(7,[2,1],[3,1]),2).show(axes=False)

15

In [37]: colorea(magn(7,[2,2],[3,1]),2).show(axes=False)

16

In [38]: colorea(magn(7,[2,4],[3,1]),2).show(axes=False)

17

In [39]: colorea(magn(7,[2,3],[3,4]),2).show(axes=False)

18

In [40]: colorea(magn(7,[2,1],[3,6]),2).show(axes=False)

19

In [41]: colorea(magn(7,[2,1],[5,1]),2).show(axes=False)

20

In [42]: colorea(magn(7,[2,6],[6,1]),2).show(axes=False)

21

In [43]: V=vector([1,1])P=vector([0,0])@interactdef subespacios(n=input_box(default=7),W=vector([1,1]),P=vector([0,0])):

gg=Graphics()A=vector(QQ,[0,0]);B=vector(QQ,[1,0])C=vector(QQ,[1,1]);D=vector(QQ,[0,1])coll=['blue','red','yellow','green','orange','magenta','brown','gray','purple','white','black']for ii in range(n):

for jj in range(n):V=vector(QQ,[jj,ii])E=A+V;F=B+VG=C+V;H=D+V

22

pp=polygon2d([E,F,G,H],color='red',edgecolor="black")gg+=pp

v0=W[0]; v1=W[1]p0=P[0];p1=P[1]for ii in range(n):

lu=(v0*ii+p0)%nla=(v1*ii+p1)%nV=vector(QQ,[lu,la])E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='blue')gg+=qq

gg.show(axes=False)

SW50ZXJhY3RpdmUgZnVuY3Rpb24gPGZ1bmN0aW9uIHN1YmVzcGFjaW9zIGF0IDB4N2Y4MDk0NDQ4NDg4PiB3aXRoIDMgd2lkZ2V0cwogIG46IEV2YWxUZXh0KHZhbHVlPXUnNycsIGRlc2NyaXDigKY=

In [44]: input_box?

In [45]: KK.<u>=GF(9)@interactdef subespacios(W=vector([1,1]),P=vector([0,0])):

qu=[]gg=Graphics()A=vector(QQ,[0,0]);B=vector(QQ,[1,0])C=vector(QQ,[1,1]);D=vector(QQ,[0,1])coll=['blue','red','yellow','green','orange','magenta','brown','gray','purple','white','black']te=[0,1,2,u,u+1,u+2,2*u,2*u+1,2*u+2]for ii in range(9):

for jj in range(9):V=vector(QQ,[jj,ii])E=A+V;F=B+VG=C+V;H=D+Vpp=polygon2d([E,F,G,H],color='red',edgecolor="black")gg+=pp

v0=W[0]; v1=W[1]p0=P[0];p1=P[1]for ii in KK:

#iy=te[ii]lu=v0*ii+p0la=v1*ii+p1qu.append([lu,la])for TT in qu:

xx=TT[0]yy=TT[1]for jj in range(9):

if xx==te[jj]:

23

tu=jjif yy==te[jj]:

ta=jjV=vector(QQ,[tu,ta])E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='blue')gg+=qq

print qugg.show(axes=False)

SW50ZXJhY3RpdmUgZnVuY3Rpb24gPGZ1bmN0aW9uIHN1YmVzcGFjaW9zIGF0IDB4N2Y4MDhlMTE5NDg4PiB3aXRoIDIgd2lkZ2V0cwogIFc6IEV2YWxUZXh0KHZhbHVlPXUnKDEsIDEpJywgZGXigKY=

In [46]: for ii in KK:print 2*ii,

0 2*u 2*u + 2 u + 2 1 u u + 1 2*u + 1 2

In [47]: U=vector([1,1,0,0])W=vector([0,0,1,1])@interactdef subespa4(U=vector([1,1,0,0]),W=vector([0,0,1,1])):

qu=[]gg=Graphics()A=vector(QQ,[0,0]);B=vector(QQ,[1,0])C=vector(QQ,[1,1]);D=vector(QQ,[0,1])coll=['blue','red','yellow','green','orange','magenta','brown','gray','purple','white','black']te=[0,1,2,u,u+1,u+2,2*u,2*u+1,2*u+2]for ii in range(9):

for jj in range(9):V=vector(QQ,[jj,ii])E=A+V;F=B+VG=C+V;H=D+Vpp=polygon2d([E,F,G,H],color='red',edgecolor="black")gg+=pp

v0=W[0]; v1=W[1]p0=P[0];p1=P[1]for ii in range(3):

for jj in range(3):la=(ii*U[0]+jj*W[0])%3le=(ii*U[1]+jj*W[1])%3li=(ii*U[2]+jj*W[2])%3lo=(ii*U[3]+jj*W[3])%3qu.append([la,le,li,lo])

for TT in qu:xx=TT[0]

24

yy=TT[1]zz=TT[2]ww=TT[3]tu=xx*3+yyta=zz*3+wwV=vector(QQ,[tu,ta])#print V,E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='blue',edgecolor="black")gg+=qq

print qugg.show(axes=False)

SW50ZXJhY3RpdmUgZnVuY3Rpb24gPGZ1bmN0aW9uIHN1YmVzcGE0IGF0IDB4N2Y4MDhlMDJlYjkwPiB3aXRoIDIgd2lkZ2V0cwogIFU6IEV2YWxUZXh0KHZhbHVlPXUnKDEsIDEsIDAsIDApJyzigKY=

In [48]: W=matrix([[1,1,0,0],[0,0,1,1]])1+W[0][1]*2+W[1][3]

Out[48]: 4

In [49]: U=vector([1,1,0,0])W=vector([0,0,1,1])Z=vector([0,1,0,1])@interactdef subespa4(U=vector([1,1,0,0]),W=vector([0,0,1,1]),Z=vector([0,1,0,1])):

qu=[]gg=Graphics()A=vector(QQ,[0,0]);B=vector(QQ,[1,0])C=vector(QQ,[1,1]);D=vector(QQ,[0,1])coll=['blue','red','yellow','green','orange','magenta','brown','gray','purple','white','black']te=[0,1,2,u,u+1,u+2,2*u,2*u+1,2*u+2]for ii in range(9):

for jj in range(9):V=vector(QQ,[jj,ii])E=A+V;F=B+VG=C+V;H=D+Vpp=polygon2d([E,F,G,H],color='red')gg+=pp

v0=W[0]; v1=W[1]p0=P[0];p1=P[1]for ii in range(3):

for jj in range(3):for kk in range(3):

la=(ii*U[0]+jj*W[0]+kk*Z[0])%3le=(ii*U[1]+jj*W[1]+kk*Z[1])%3li=(ii*U[2]+jj*W[2]+kk*Z[2])%3

25

lo=(ii*U[3]+jj*W[3]+kk*Z[3])%3qu.append([la,le,li,lo])

for TT in qu:xx=TT[0]yy=TT[1]zz=TT[2]ww=TT[3]tu=xx*3+yyta=zz*3+wwV=vector(QQ,[tu,ta])#print V,E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='blue')gg+=qq

print qugg.show(axes=False)

SW50ZXJhY3RpdmUgZnVuY3Rpb24gPGZ1bmN0aW9uIHN1YmVzcGE0IGF0IDB4N2Y4MDhkZmE1YTI4PiB3aXRoIDMgd2lkZ2V0cwogIFU6IEV2YWxUZXh0KHZhbHVlPXUnKDEsIDEsIDAsIDApJyzigKY=

A continuación se dibujará el subespacio de (Z3)4 definido por un vector u es decir se dibuja{u}⊥ y sus dos coclases, cada uno tiene 27 elementos.

In [1]: def productint(U,V):re=(U[0]*V[0]+U[1]*V[1]+U[2]*V[2]+U[3]*V[3])%3return re

U=vector([1,1,0,0])@interactdef subespar(U=vector([1,1,0,0])): #se trabajará con (Z_3)^2

ruru=range(3)tt=cartesian_product([ruru,ruru,ruru,ruru])qu=[uu for uu in tt if productint(uu,U)==0]qv=[uu for uu in tt if productint(uu,U)==1]gg=Graphics()A=vector(QQ,[0,0]);B=vector(QQ,[1,0])C=vector(QQ,[1,1]);D=vector(QQ,[0,1])coll=['blue','red','yellow','green','orange','magenta','brown','gray','purple','white','black']for ii in range(9):

for jj in range(9):V=vector(QQ,[jj,ii])E=A+V;F=B+VG=C+V;H=D+Vpp=polygon2d([E,F,G,H],color='red',edgecolor="red")gg+=pp

for TT in qu:xx=TT[0]

26

yy=TT[1]zz=TT[2]ww=TT[3]tu=xx*3+yyta=zz*3+wwV=vector(QQ,[tu,ta])#print V,E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='blue')gg+=qq

for TT in qv:xx=TT[0]yy=TT[1]zz=TT[2]ww=TT[3]tu=xx*3+yyta=zz*3+wwV=vector(QQ,[tu,ta])#print V,E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='magenta',edgecolor="magenta")gg+=qq

print qugg.show(axes=False)

SW50ZXJhY3RpdmUgZnVuY3Rpb24gPGZ1bmN0aW9uIHN1YmVzcGFyIGF0IDB4N2YyMGZlMmY0YWEwPiB3aXRoIDEgd2lkZ2V0CiAgVTogRXZhbFRleHQodmFsdWU9dScoMSwgMSwgMCwgMCknLCDigKY=

In [51]: ruru=range(3)tt=cartesian_product([ruru,ruru,ruru,ruru])nulis=Set([uu for uu in tt if (uu[0]^2+uu[1]^2+uu[2]^2+uu[3]^2)%3==0])las=Set([uu for uu in tt if (uu[0]+uu[1]+uu[2])%3==0])rojis=las.intersection(nulis)

In [52]: rojis

Out[52]: {(2, 0, 1, 2), (1, 1, 1, 0), (0, 1, 2, 2), (0, 1, 2, 1), (1, 0, 2, 2), (1, 0, 2, 1), (2, 1, 0, 2), (0, 2, 1, 1), (0, 0, 0, 0), (2, 2, 2, 0), (0, 2, 1, 2), (1, 2, 0, 1), (2, 1, 0, 1), (1, 2, 0, 2), (2, 0, 1, 1)}

In [53]: def productint8(U,V):#ahora con 8^2 o sea (Z_2) ^6re=0for ii in range(6):

re+=(U[ii]*V[ii])%2return re%2

U=vector([1,1,0,0,1,0])@interact

27

def subespar8(U=vector([1,1,0,0,1,0])):ruru=range(2)tt=cartesian_product([ruru,ruru,ruru,ruru,ruru,ruru])qu=[uu for uu in tt if productint8(uu,U)==0]qv=[uu for uu in tt if productint8(uu,U)==1]gg=Graphics()A=vector(QQ,[0,0]);B=vector(QQ,[1,0])C=vector(QQ,[1,1]);D=vector(QQ,[0,1])coll=['blue','red','yellow','green','orange','magenta','brown','gray','purple','white','black']for ii in range(8):

for jj in range(8):V=vector(QQ,[jj,ii])E=A+V;F=B+VG=C+V;H=D+Vpp=polygon2d([E,F,G,H],color='red',edgecolor="red")gg+=pp

for TT in qu:tu=TT[0]*2^2+TT[1]*2+TT[2]ta=TT[3]*2^2+TT[4]*2+TT[5]V=vector(QQ,[tu,ta])#print V,E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='blue')gg+=qq

for TT in qv:tu=TT[0]*2^2+TT[1]*2+TT[2]ta=TT[3]*2^2+TT[4]*2+TT[5]V=vector(QQ,[tu,ta])#print V,E=A+V;F=B+VG=C+V;H=D+Vqq=polygon2d([E,F,G,H],color='magenta',edgecolor="magenta")gg+=qq

print len(qu),qugg.show(axes=False)

SW50ZXJhY3RpdmUgZnVuY3Rpb24gPGZ1bmN0aW9uIHN1YmVzcGFyOCBhdCAweDdmODA4Zjg1YTIzMD4gd2l0aCAxIHdpZGdldAogIFU6IEV2YWxUZXh0KHZhbHVlPXUnKDEsIDEsIDAsIDAsIDHigKY=

In [54]: productint8([0,0,0,0,0,1],[1,0,1,0,1,1])

Out[54]: 1

In [55]: binomial(4,2)

Out[55]: 6

28

top related