Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y...

47
Taller de Matemáticas (MATLAB) 1 / 47 Taller de Matemáticas (MATLAB) Rafael Ramírez Ros Dedicación: 4 horas

Transcript of Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y...

Page 1: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 1 / 47

Taller de Matemáticas (MATLAB)

Rafael Ramírez Ros

Dedicación: 4 horas

Page 2: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 2 / 47

Contenidos

1 Vectores, matrices y polinomios

2 El juego de la vida

3 PageRank (Google)

Page 3: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 3 / 47

Vectores, matrices y polinomios

Índice

1 Vectores, matrices y polinomios

2 El juego de la vida

3 PageRank (Google)

Page 4: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 4 / 47

Vectores, matrices y polinomios

Operadores especiales

.* Multiplica componente a componente vectores omatrices

./ Divide componente a componente vectores omatrices

.ˆ Calcula potencias componente a componente devectores o matrices

a:b [a,a + 1,a + 2, . . . , c], con c ≤ b < c + 1.a:h:b [a,a + h,a + 2h, . . . , c], con c ≤ b < c + h.

Page 5: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 5 / 47

Vectores, matrices y polinomios

Matrices especiales

eye(n,m) Matriz n×m con unos en la diagonal y ceros fuerazeros(n,m) Matriz n ×m con todos los elementos nulosones(n,m) Matriz n ×m con todos los elementos igual a unorand(n,m) Matriz n ×m con elementos aleatorios

uniformente distribuidos en el intervalo [0,1]diag(v,k) Matriz con el vector v en la k -diagonal y el resto

de elementos igual a cero

En estos comandos, el segundo argumento es opcional.Las opciones por defecto son:

m = n (matrices cuadradas);k = 0 (diagonal “estándar”).

Page 6: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 6 / 47

Vectores, matrices y polinomios

Operadores sobre vectores

v’ Transponerlength(v) Longitud (número de componentes)[M,iM]=max(v) Valor máximo y su posición[m,im]=min(v) Valor mínimo y su posiciónmean(v) Promedioabs(v) Valor absoluto (o módulo en el caso complejo)sum(v) Suma de todas las componentes

prod(v) Producto de todas las componentes[u,iv]=sort(v) Ordena las componentes de menor a

mayor y da los índices tales que u=v(iv)

diag(v) Matriz diagonal con v en la diagonaldot(u,v) Producto escalarcross(u,v) Producto vectorial

Page 7: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 7 / 47

Vectores, matrices y polinomios

Operaciones sobre matrices (1)

A’ Transponersize(A) Vector [f,c], con f = # filas y c = # columnasmax(A) Vector fila con los máximos de cada columnamin(A) Vector fila con los mínimos de cada columnasum(A) Vector fila con las sumas de de cada columna

mean(A) Vector fila con los promedios de cada columnadet(A) Determinante

rank(A) Rangoinv(A) Inversa

null(A) Generadores (en columnas) de Nuc Adiag(A,k) Extraer la k -diagonaltriu(A,k) Extraer la parte k -triangular superiortril(A,k) Extraer la parte k -triangular inferior

Page 8: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 8 / 47

Vectores, matrices y polinomios

Operadores sobre matrices (2)

x=A\b Resolver el sistema lineal Ax = b, incluso cuandoes incompatible o indeterminado

poly(A) Polinomio característicoeig(A) VAPs de A en un vector columna

[S,D]=eig(A) Matriz diagonal D y matriz de cambio de baseS tales que D = S−1AS.

spy(A) Visualizar (y contar) los elementos no nulos

Page 9: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 9 / 47

Vectores, matrices y polinomios

Operadores sobre polinomios

roots(P) Raíces (en vector columna)polyder(P) Derivadapolyint(P) Integralpolyval(P,x) Evaluar el valor de P(x)conv(P,Q) Producto[C,R]=deconv(P,Q) División entera, donde P(x) es el

dividendo, Q(x) es el divisor, C(x) es el cociente yR(x) es el resto

poly(v) Polinomio mónico cuyas raíces son lascomponentes del vector v

Page 10: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 10 / 47

Vectores, matrices y polinomios

Operadores lógicos, igualdades y desigualdades

&& AND lógico|| OR lógico~ Negación lógica (~ se obtiene pulsando AltGr + 4)

== ¿Es igual?~= ¿Es diferente?<= ¿Es menor o igual?>= ¿Es mayor o igual?

find Sirve para encontrar todos los índices de unvector (o matriz) que cumplen una condición dada.Por ejemplo, si x = (x1, . . . , xn) ∈ Rn, entoncesind=find(x<3) nos da la lista de todos losíndices tales que xj < 3.

Page 11: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 11 / 47

Vectores, matrices y polinomios

Cargar datos

El comando A=imread(’imagen.png’) sirve paracargar imágenes en formato PNG en la práctica del juegode la vida.El comando load(’fichero.txt’,’ascii’) sirvepara cargar un fichero de datos en formato texto (porejemplo, una nube de punto).

Page 12: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 12 / 47

Vectores, matrices y polinomios

Errores comúnes

Confundir vectores columna y vectores fila.Sumar o restar objetos de tamaños diferentes.Multiplicar matrices de tamaños incompatibles.Operar componente a componente con vectores detamaños diferentes.Olvidar el punto en los operadores .*, ./ y .ˆ paraoperar componente a componente.Escribir &, | o = en vez de &&, || o ==.El nombre de una función no coincide con el nombre delfichero-M donde está implementada.No guardar los ficheros en la carpeta adecuada.No desempaquetar un carpeta de ficheros de datos.No indentar el código y olvidar algún end.

Page 13: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 13 / 47

El juego de la vida

Índice

1 Vectores, matrices y polinomios

2 El juego de la vida

3 PageRank (Google)

Page 14: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 14 / 47

El juego de la vida

Control de flujo

if...end Condicional: Si se cumple una condición, ejecutaun conjunto de instrucciones.

if...else...end Condicional: Si se cumple una condición,ejecuta un conjunto de instrucciones; de locontrario, ejecuta otro conjunto de instrucciones.

for...end Bucle: Ejecuta repetidamente un conjunto deinstrucciones, mientras un “contador” toma losvalores de las componentes de un vector dado.

while...end Bucle: Ejecuta repetidamente un conjunto deinstrucciones mientras se cumple una condición.

Page 15: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 15 / 47

El juego de la vida

¿Quién? & ¿Por qué?

Es un autómata celularbidimensional inventado por elmatemático británico J. H.Conway en 1970.Objetivo: Mostrar que reglassimples pueden generarcomportamientoscomplicados (movimiento,crecimiento, competición,autoreplicacción, extinción,etcétera), similares a la vida.

Page 16: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 16 / 47

El juego de la vida

Universo & Estados

El Universo del juego está formado por una cuadrículateóricamente infinita de celdas cuadradas.Cada celda puede estar viva (=1) o muerta (=0).En la práctica, solo simulamos Universos finitos, luegocada estado se codifica como una matriz m × n cuyoselementos son 1’s y 0’s.

Page 17: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 17 / 47

El juego de la vida

Reglas de evolución

La generación original es la generación g = 0.Cada generación evoluciona a partir de la anteriormediante una regla.La regla original de Conway es la regla B3/S23:

1 Una celda muerta con 3 vecinos, nace (Born). De locontrario, sigue muerta.

2 Una celda viva con 2 o 3 vecinos, Sobrevive. De locontrario, muere.

Hay muchas otras reglas: B36/S23, B3678/S235678,B34/S34, B35678/S5678, etcétera.

Page 18: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 18 / 47

El juego de la vida

Vecinos

Dos formas de definir los vecinos de la celda (i0, j0):(a) Moore: |i − i0| ≤ r & |j − j0| ≤ r .(b) Von Neumann: |i − i0|+ |j − j0| ≤ r .En general, usaremos la definición de Moore con r = 1, encuyo caso cada celda tiene 8 vecinas.

Page 19: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 19 / 47

El juego de la vida

Estados especiales

Los estados estacionarios (también llamados fijos) nocambian de una generación a otra.Los estados oscilatorios se repiten tras un número(llamado periodo) de generaciones.Las naves espaciales (en inglés, “gliders”) son estadosque reaparecen en otra posición tras completar su periodo.Las pistolas (en inglés, “guns”) son estados que disparanun “glider” tras completar su periodo.

Podéis visualizar todos los ejemplos de las siguientes páginasusando este fichero-M.

Page 20: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 20 / 47

El juego de la vida

Estados estacionarios

Algunos ejemplos con la formulación de Conway son:

Page 21: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 21 / 47

El juego de la vida

Estados oscilatorios

Ejemplos de periodo dos con la formulación de Conway son:

Page 22: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 22 / 47

El juego de la vida

Pulsar

El pulsar es un estado oscilatorio de periodo tres en laformulación de Conway:

Page 23: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 23 / 47

El juego de la vida

Pentadecathlon

El pentadecathlon es un estado oscilatorio de periodo quinceen la formulación de Conway:

Page 24: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 24 / 47

El juego de la vida

Naves espaciales (“Gliders”) & Pistolas (“Guns”)

El ejemplo más famoso de pistola con la formulación deConway es la “Gospel gun”:

Page 25: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 25 / 47

El juego de la vida

Preguntas

Calcular el número de celdas vivas tras 50 generaciones con laregla B3/S23 y la definición de vecinos de Moore con r = 1 (esdecir, con la formulación de Conway), tomando comogeneración original (g = 0) las matrices 51× 51 cuyoselementos son todos igual a cero excepto los situados:

1 En filas pares.2 En filas y columnas pares.3 En filas o columnas pares.4 En las k -diagonales con −1 ≤ k ≤ 1.5 En los elementos (i , j) tales que 2 ≤ i , j ≤ 26.

Ídem con las matrices 51× 51 dadas por

6 a(i , j) = round[cos

(π58

√(i − 26)2 + (j − 26)2

)].

7 rng(1234);A=round(rand(51));

Page 26: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 26 / 47

El juego de la vida

Respuestas

Las siguientes respuestas se han encontrado usando estefichero-M. Aquí, g denota la generación.

1 1275, es un estado estacionario desde g = 0.2 0, se extingue toda vida en g = 1.3 100, entra en un estado estacionario cuando g = 1.4 8, entra en un estado estacionario cuando g = 25.5 28, entra en un estado oscilatorio cuando g = 436 48, entra en un estado oscilatorio cuando g = 7.7 523, sin entrar en estados estacionarios ni oscilatorios en

las primeras 50 (de hecho, tampoco en la primeras 2000)generaciones.

Page 27: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 27 / 47

El juego de la vida

Más preguntas

Tomar como generación original la matriz 341× 244 que seobtiene al cargar con el comando imread la imagen B&N enformato PNG dada en este enlace.

1 Calcular 100 generaciones con la regla B3/S23 y ladefinición de vecinos de Moore con r = 1 (formulación deConway) y responder a las siguientes preguntas.a) ¿Cuántas celdas vivas hay en la última generación?b) ¿Cuántas generaciones, sin contar la original, ha estado viva

la celda (150,120)?c) ¿Cuántas veces ha cambiado de estado la celda (60,70)?d) ¿En qué generación entre la 10 y la 100 había más celdas

vivas? ¿Y cuántas celdas vivas había en esa generación?

2 Ídem usando la regla B3678/S235678.3 Ídem usando la regla B3/S23 y la definición de vecinos de

Von Neumann con r = 1.

Page 28: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 28 / 47

El juego de la vida

Y más respuestas

1 Con regla B3/S23 y definición de Moore:a) Hay 4302 celdas vivas en la última generación (g = 100).b) La celda (150,120) ha estado viva 14 generaciones.c) La celda (60,70) ha cambiado 9 veces de estado.d) En la generación 12, con 11470 celdas vivas.

2 Con regla B3678/S235678 y definición de Moore:a) Hay 62255 celdas vivas en la última generación.b) La celda (150,120) ha estado viva 99 generaciones.c) La celda (60,70) ha cambiado 0 veces de estado.d) En la generación 100, con 62255 celdas vivas.

3 Con regla B3/S23 y definición de Von Neumann:a) Hay 66 celdas vivas en la última generación.b) La celda (150,120) nunca ha estado viva 0 generaciones.c) La celda (60,70) ha cambiado 1 vez de estado.d) En la generación 10, con 1931 celdas vivas.

Page 29: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 29 / 47

El juego de la vida

Universo toroidal

N=North, S=South, E=East, W=West, NE=Northeast,NW=Northwest, SE=Southeast y SW=Southwest

Page 30: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 30 / 47

PageRank (Google)

Índice

1 Vectores, matrices y polinomios

2 El juego de la vida

3 PageRank (Google)

Page 31: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 31 / 47

PageRank (Google)

VAPs & VEPs: Definiciones

Sea A una matriz real n × n.Un vector v es un VEP de VAP λ de la matriz cuando

Av = λv , v 6= 0.

Los VAPs y VEPs pueden ser reales o complejos.Si v es un VEP, cualquier múltiplo no nulo suyo también.Si λ es un VAP real, entonces:

La recta r = [v ] es A-invariante;La matriz A contrae, preserva o expande la dirección v si|λ| < 1, |λ| = 1 o |λ| > 1, respectivamente.

La mayoría de las matrices tienen n VAPs diferentes. Enesos casos, notaremos por λ1, . . . , λn y v1, . . . ,vn losVAPs y VEPs de la matriz.

Page 32: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 32 / 47

PageRank (Google)

VAPs & VEPs: Ejemplo

Consideramos la matriz A =

(1/4 −3/4−1 1/2

).

Los VAPs de A son las raíces del polinomio característico

QA(λ) = det(A− λId) = λ2 − 3λ/4− 5/8.

VAPs: λ1 = 5/4 y λ2 = −1/2.

VEPs: v1 =

(3−4

)y v2 =

(11

).

La matriz A expande la dirección v1 por un factor λ1 = 5/4y contrae la dirección v2 por un factor |λ2| = 1/2. Además,cambia el sentido de la dirección v2, pues λ2 < 0.

Page 33: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 33 / 47

PageRank (Google)

Método de la potencia

Objetivo: Dada una matriz cuadrada A ∈Mn×n(R) cuyosVAPs λ1, . . . , λn cumplen la condición

|λ1| > |λ2| ≥ · · · ≥ |λn|,

queremos calcular el VAP dominante λ1 y su VEP v1.Método: Fijado un vector inicial no nulo x0 ∈ Rn,calculamos las iteraciones

xk =Axk−1

‖Axk−1‖, ∀k ≥ 1.

Teorema: limk→+∞

xk = v1 para casi todo vector inicial x0.

Page 34: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 34 / 47

PageRank (Google)

Método de la potencia: Ejemplo

Matriz: A =

(1/4 −3/4−1 1/2

). Vector inicial: x0 =

(1−1

).

Calculamos las iteraciones xk =Axk−1‖Axk−1‖ y obtenemos que

x1 ≈(

0.5547−0.8321

),x2 ≈

(0.6178−0.7863

),x3 ≈

(0.5928−0.8053

),

x4 ≈(

0.6029−0.7978

),x5 ≈

(0.5989−0.8009

),x6 ≈

(0.6005−0.7997

),

x7 ≈(

0.5998−0.8001

),x8 ≈

(0.6001−0.7999

),x9 ≈

(0.6000−0.8000

).

Finalmente, v1 =

(3/5−4/5

)≈ x9 es el VEP normalizado.

¿Por qué el método no funciona cuando x0 =

(11

)?

Page 35: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 35 / 47

PageRank (Google)

Matrices estocásticas: Definición & Teorema

Una matriz cuadrada es estocástica por columnas si suselementos son ≥ 0 y cada columna suma uno. Un vector esestocástico si sus componentes son ≥ 0 y suman uno.

Teorema

Si M es una matriz estocástica por columnas con todos suselementos > 0, entonces:

1 El VAP dominante de M es λ1 = 1.2 Existe un único VEP estocástico v1 de VAP λ1 = 1.3 Simplificamos el método de la potencia: Si escogemos el

vector inicial estocástico x0 = (1/n, . . . ,1/n)t y calculamoslas iteraciones xk = Mxk−1, entonces

Todas las iteraciones xk son vectores estocásticos.v1 = limk→+∞ xk .

Page 36: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 36 / 47

PageRank (Google)

Matrices estocásticas: Ejemplo

Consideramos la matriz estocástica M =

(1/2 3/41/2 1/4

).

Escogemos el vector inicial estocástico x0 =

(0.50.5

).

Aplicamos el método de la potencia simplificado: Sicalculamos las iteraciones xk = Mxk−1, obtenemos que

x1 ≈(

0.62500.3750

), x2 ≈

(0.59380.4062

), x3 ≈

(0.60160.3984

),

x4 ≈(

0.59960.4004

), x5 ≈

(0.60010.3999

), x6 ≈

(0.60000.4000

).

Nota: Todas las iteraciones son vectores estocásticos.

Finalmente, v1 =

(3/52/5

)≈ x6 es el VEP estocástico.

Page 37: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 37 / 47

PageRank (Google)

Matriz de conectividad: Definición

Un grafo dirigido (también llamado digrafo) es un conjuntode nodos (también llamados vértices) conectados porflechas.n = número de nodos.La matriz de conectividad del digrafo es C = (cij) donde

cij =

{1, si una flecha llega al nodo i desde el nodo j ;0, de lo contrario.

C es una matriz cuadrada n × n cuyos elementos solopueden ser 0 o 1.En la fila i se listan las flechas que entran al nodo i .En la columna j se listan las flechas que salen del nodo j .

Page 38: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 38 / 47

PageRank (Google)

Matriz de conectividad: Ejemplo

C =

0 0 0 0 0 1 0 01 0 0 0 0 1 0 00 0 0 1 0 1 0 00 0 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 1 0 1 0 0 0 10 0 0 0 0 0 0 0

Page 39: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 39 / 47

PageRank (Google)

Matriz de Google

Dada una matriz de conectividad C y un coeficiente de“fricción” d ∈ [0,1), construimos la matriz de Google M,que es una matriz estocástica por columnas con todos suselementos > 0, en dos pasos:

1 Convertimos C en una matriz estocástica por columnas A.Si una columna de C es identicamente cero, ponemostodos sus elementos igual a 1/n. En caso contrario,divididos todos sus elementos por la suma de la columna.

2 M = d · A + 1−dn

1 · · · 1...

. . ....

1 · · · 1

.

Si d = 1, entonces M = A. Si d = 0, entonces todos loselementos de M son iguales a 1/n.Google suele usar el valor d = 0.85.

Page 40: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 40 / 47

PageRank (Google)

Matriz de Google: Ejemplo

Si C es la anterior matriz de conectividad 8× 8, entonces:

1 A =

0 0 1/8 0 1/8 1/3 1/8 01/2 0 1/8 0 1/8 1/3 1/8 00 0 1/8 1/2 1/8 1/3 1/8 00 0 1/8 0 1/8 0 1/8 0

1/2 0 1/8 0 1/8 0 1/8 00 0 1/8 0 1/8 0 1/8 00 1 1/8 1/2 1/8 0 1/8 10 0 1/8 0 1/8 0 1/8 0

.

2 M = d · A + 1−d8

1 · · · 1...

. . ....

1 · · · 1

.

Page 41: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 41 / 47

PageRank (Google)

PageRank

Algoritmo para ordenar n páginas web por importancia:1 Construir la matriz de conectividad C mirando los enlaces.2 Construir la matriz de Google M descrita en la página

anterior tomando el coeficiente de fricción d = 0.85.3 Escoger el vector columna inicial x0 = (1/n, . . . ,1/n)t .4 Aplicar el método de la potencia simplificado xk = Mxk−1

durante un número máximo de iteraciones o hasta que sealcance una tolerancia deseada.

5 La importancia de la página i es aproximadamente (en ellímite, exactamente) igual al valor de la componente i delvector final.

Nota: La suma de todas las importancias es igual a uno.

Page 42: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 42 / 47

PageRank (Google)

Fullereno C60 (“Buckyball”)

La molécula fullereno C60está formada por 60 átomosde carbono que forman unpoliedro cuyas caras son 12pentágonos y 20 hexágonos.Podemos verla como ungrafo con 60 nodos cuyas 90aristas son flechas en ambossentidos (bidireccionales).En MATLAB basta escribir» C = buckypara obtener su matriz deconectividad.

Page 43: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 43 / 47

PageRank (Google)

Preguntas sobre la “Buckyball”

Decir cuáles son las páginas más y menos importantes, quéimportancia tienen e interpretar el resultado para las siguientesmatrices de conectividad:

1 La matriz del fullereno C60:» C = bucky;

2 La matriz del fullereno C60 con un enlace unidireccionaladicional que va de la página 10 a la página 50:» C=bucky; C(50,10)=1;

3 La matriz del fullereno C60 tras eliminar los dos sentidosdel enlace que conecta las páginas 7 y 30:» C=bucky; C(7,30)=0; C(30,7)=0;

Aplicar el algoritmo PageRank con coef. de fricción d = 0.85,vector inicial x0 = (1/60, . . . ,1/60)t y tolerancia 1.e-6.

Page 44: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 44 / 47

PageRank (Google)

Respuestas sobre la “Buckyball”

1 Todas las páginas tienen la misma importancia: 1/60. Elalgoritmo solo necesita una iteración. Interpretación: En lamolécula C60 cada nodo está conectado a tres nodos,luego todos los nodos son indistinguibles.

2 Las páginas más importantes son la 50 (pues recibe unenlace más que las demás) con importancia 0.0213; y laspáginas 49, 46 y 59 (pues son enlazadas por la 50) todascon importancia 0.0184. Las páginas menos importantesson la 6 y la 9 ambas con importancia 0.0146.

3 Las páginas menos importantes son la 7 y la 30 (puesreciben un enlace menos que las demás), ambas conimportancia 0.0124. Las páginas más importantes son las29, 8, 26 y 6, todas con importancia 0.0174.

Page 45: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 45 / 47

PageRank (Google)

Manipulación del PageRank: Preguntas

Consideramos el grafo con 11 nodos de la siguiente página.

1 Escribir su matriz de conectividad C.2 Ordenar las páginas de más a menos importante, dando la

importancia de cada una.3 El dueño de la página C quiere arrebatarle el primer

puesto a la página B y decide pagar para que las páginasD, E y F enlacen a C. ¿Consigue su objetivo?

4 ¿Y si, además, también paga un enlace de la página A?

Nota: La numeración de las páginas es

A = 1, B = 2, C = 3, D = 4, E = 5, F = 6

y las cinco nodos que no reciben enlaces son las páginas 7–11.

Page 46: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 46 / 47

PageRank (Google)

Manipulación del PageRank: Figura

Page 47: Taller de Matemáticas (MATLAB)...Taller de Matemáticas (MATLAB) 5/47 Vectores, matrices y polinomios Matrices especiales eye(n,m) Matriz n m con unos en la diagonal y ceros fuera

Taller de Matemáticas (MATLAB) 47 / 47

PageRank (Google)

Manipulación de PageRank: Respuestas

1 C =

0 0 0 1 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 0 00 1 0 0 0 0 0 0 0 0 00 0 0 0 1 0 0 0 0 0 00 0 0 0 0 1 1 1 1 1 10 0 0 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0

.

2 B, C, E, F, D, A y el resto empatadas, con importancias0.384, 0.343, 0.081, 0.039, 0.039, 0.033 y 0.016.

3 No, pues la modificación c34 = c35 = c36 = 1 hace que lasimportancias de B y C sean 0.389 y 0.378.

4 Sí, pues la modificación c31 = c34 = c35 = c36 = 1 haceque las importancias de B y C sean 0.3975 y 0.3978.