Vous êtes sur la page 1sur 13

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/216456908

Aplicaciones del Álgebra Lineal en la vida cotidiana

Conference Paper · January 2009

CITATIONS READS
0 20,723

2 authors, including:

Alberto Cano
Virginia Commonwealth University
68 PUBLICATIONS   452 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

building bridge between data mining and process mining View project

Emerging Trends in Data Analysis (EMERALD) View project

All content following this page was uploaded by Alberto Cano on 17 October 2015.

The user has requested enhancement of the downloaded file.


Aplicaciones del Álgebra Lineal en la vida cotidiana

Aplicaciones del Álgebra Lineal en la vida cotidiana

Ángela Rojas Matas1, Alberto Cano Rojas2


1
Dpto. Matemáticas, Universidad de Córdoba, ma1romaa@uco.es
2
Alumno de Ingeniería Informática, Universidad de Córdoba, i52caroa@uco.es

Resumen
Con frecuencia los alumnos nos preguntan ¿y esto para qué sirve?. Los profesores de
Matemáticas debemos preocuparnos no sólo por los aspectos teóricos de las
Matemáticas sino también por sus aplicaciones prácticas. En este trabajo se muestra
cómo el Álgebra Lineal se encuentra detrás de muchas actividades de nuestra vida
cotidiana: cuando hacemos una búsqueda en Google, cuando utilizamos el formato
JPEG, o cuando oímos un CD de música.

PALABRAS CLAVE: Álgebra Lineal, aplicaciones.

1. Introducción
Las Matemáticas en las Escuelas de Ingeniería se suelen presentar excesivamente
teóricas y alejadas de las aplicaciones reales (Martínez de la Rosa et al., 2005). Es
frecuente escuchar por los pasillos a los alumnos hacer la pregunta: ¿y esto para qué me
sirve?.

Como matemáticos, no sólo debemos conocer la parte teórica de nuestra ciencia sino
también los usos prácticos de las Matemáticas. Como profesores debemos estar
preparados para contestar a la pregunta anterior con conocimientos y con entusiasmo.

En nuestro caso, el primer día de curso se aprovecha, no sólo para comentar el programa
de la asignatura Álgebra Lineal y los criterios de evaluación, sino también para
presentar un resumen de las múltiples e interesantes aplicaciones de los contenidos
matemáticos que van a aprender.

Por otro lado, debemos fomentar el aprendizaje autónomo del alumno en las actividades
académicas dirigidas dentro de la metodología de los créditos ECTS. Pensamos que este
tipo de actividades se deben dedicar, no sólo a la resolución de la clásica relación de
problemas de Matemáticas, sino también a la realización de este tipo de trabajos en
grupos de alumnos, favoreciendo de camino el trabajo colaborativo.

Con esto perseguimos que los alumnos aprendan Matemáticas sabiendo en qué áreas
relacionadas con sus estudios se utilizan, para que así valoren más los conocimientos
que están adquiriendo.

Con este tipo de actividades pretendemos conseguir los siguientes objetivos:

 Un proceso de enseñanza-aprendizaje más motivador e interesante para los


alumnos.

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

 Integrar los contenidos matemáticos de nuestras asignaturas en áreas de interés


para la titulación.

 Incentivar la búsqueda de información.


En la sección 2 de este trabajo se expone una aplicación del Álgebra Lineal en el
algoritmo de búsqueda de Google, en la sección 3 una aplicación en el formato de
compresión de imágenes JPEG y en la sección 4 una aplicación en los códigos
detectores y correctores de errores.

2. Álgebra Lineal y Google


Es raro el día en el que no utilizamos Google para hacer algún tipo de búsqueda. Google
es el buscador más utilizado en Internet. Fue diseñado por Sergei Brin y Lawrence Page
en 1998 cuando eran estudiantes de Doctorado de Informática en la Universidad de
Standford (Page et al. 1998).

Figura 1: Logotipo de Google.

Pues bien, el éxito de Google se debe a un algoritmo llamado “Page Rank” que tiene
mucho que ver con el Álgebra Lineal. Este algoritmo asigna una puntuación de
importancia a cada una de las páginas web, de modo que cuando se hace una búsqueda
mediante palabras clave, el buscador nos proporciona una serie de páginas que
contienen esas palabras clave pero que además están ordenadas de modo que las más
relevantes, las más importantes, serán mostradas en las primeras posiciones.

El algoritmo PageRank de Google asigna un valor numérico a cada página Web de


acuerdo a su importancia. Este valor se calcula de forma automática, sin intervención
humana. La importancia de una página Web se cuantifica teniendo en cuenta los
hiperenlaces o hipervínculos que contienen todas las páginas Web que componen
Internet.

Entonces, en un primer intento, se podría tomar como valor de la importancia xi de la


página i como el número de enlaces que se hacen desde el resto de páginas hacia i. En
este sentido, podríamos construir una matriz A definida de la siguiente forma:

1 si hay un enlace desde la página j a la página i


ai j  
0 en caso contrario

Supongamos que tenemos una colección de 4 páginas Web como la mostrada en la


figura 2:

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

Figura 2: Red compuesta por 4 páginas web

En este caso, la matriz A sería:

0 0 1 1
 
1 0 0 0
A
1 1 0 1
 
1 1 0 0 

Entonces tendríamos:

x1  2; x 2  1; x3  3; x 4  2

si la importancia xi se mide como el número de enlaces que recibe la página i.

De manera que la página 3 sería la más importante, seguida de un empate entre las
páginas 1 y 4, y, por último, la menos importante sería la página 2.

La estrategia seguida parece que no es todo lo “democrática” que debería, porque


existirán páginas con muchos enlaces y páginas con pocos. Si una página Pj enlaza con
n j páginas, parece lógico pensar que el voto de Pj deberá repartirse entre las n j
1
páginas, de modo que cada enlace que sale de ella tendrá un peso igual a .
nj

Esto nos lleva a considerar más razonable el usar la matriz “normalizada” siguiente:

 0 0 1 1/ 2
 
1 / 3 0 0 0 
A
1/ 3 1/ 2 0 1/ 2
 
1 / 3 1 / 2 0 0 

para el cálculo de la importancia de cada página que compone la red de la figura 2.

También parece razonable pensar que el enlace desde una página importante debe tener
más peso que el enlace desde una página poco importante. Entonces la importancia de
cada página viene determinada analizando los enlaces que se hacen hacia ella y la

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

importancia de cada uno de estos enlaces. Si una página Pj (que contiene n j enlaces)
enlaza a una página i, esto debe hacer que aumente la importancia xi de Pi con la
xj
cantidad .
nj

Volviendo al ejemplo de la figura 2, el vector de importancias debe satisfacer:

1 
x1  x3  x4 
2

1 
x 2  x1
3 

1 1 1 
x3  x1  x 2  x 4
3 2 2 
1 1 
x 4  x1  x 2 
3 2 

Simplificadamente: X  A X .

Buscamos un vector X que verifique el sistema anterior. Este sistema es compatible


indeterminado y su solución es:

1 3 1
x1  k ; x 2  k ; x3  k ; x 4  k
3 4 2

donde k puede tomar cualquier valor. Averiguamos el valor de k de modo que todas las
componentes del vector solución sumen 1 y obtenemos:

12  12 4 9 6 
k   , , ,   (0.387, 0.129, 0.290, 0.194)
31  31 31 31 31 

Observar que el ranking de páginas de la figura 2 ha cambiado. Parece sorprendente que


la página 3 que es enlazada desde las otras tres páginas ha dejado de ser la más
importante. Para comprender esto, hay que observar que la página 3 enlaza solamente
con la página 1 y, por lo tanto, dedica todo su voto a esta página. Esto unido al voto de
la página 2 da como resultado que la página 1 sea la más importante en el ranking.

Como hemos visto, el problema del cálculo del vector de importancias queda reducido a
la resolución de un sistema: X  A X , equivalente a ( A  I ) X   .

Recordemos que dada una matriz A, se dice que un vector X es una autovector de dicha
matriz asociado al autovalor  si se verifica que: A X   X . Por lo tanto, el vector de
importancias debe ser el autovector de la matriz A asociado al autovalor   1 .

La matriz A será en la práctica enorme ya que en Internet hay billones de páginas Web,
por lo tanto, el cálculo del autovector anterior será muy costoso computacionalmente.

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

Como dice Cleve Moler (2002) “The world’s largest matrix computation”. Más detalles
sobre el algoritmo pueden encontrarse en Fernández Gallardo (2004).

3. Álgebra Lineal y compresión JPEG


Una imagen digital es una matriz. Por ejemplo, en la figura 3 se muestra una imagen en
escala de grises de tamaño 256  256 :

Figura 3: Una imagen digital en escala de grises en formato BMP a la izquierda de la figura y en formato
JPEG a la derecha

El nivel de gris de cada píxel se almacena en 1 byte (8 bits) que va desde el 0


correspondiente al negro hasta el 255 correspondiente al blanco. De manera que en este
caso, necesitamos 256  256  65536 bytes. De hecho, si tenemos almacenada esa
imagen en formato mapa de bits, es decir, almacenando todos y cada uno de los
elementos de dicha matriz, tendremos un fichero digital que ocupará 64 kB de memoria
(recordar que 1 kB son 1024 bytes). Por ejemplo, con el formato “BMP”, es decir, con
el formato de mapa de bits de Windows la imagen anterior ocupa 65kB. Un poco más
de lo previsto inicialmente porque, además de guardar todos los elementos de la matriz
anterior (uno detrás de otro), se almacena también en el fichero digital una cabecera con
información sobre el tamaño de la matriz. Sin embargo, si esa imagen se guarda con
formato “JPEG” podemos comprobar cómo sólo ocupa 2’57 kB de memoria.

Es llamativa la diferencia en bytes entre un formato y otro. Éste es un factor importante


a tener en cuenta. Así, por ejemplo, si queremos que una página Web se cargue
rápidamente es importante colocar en ella imágenes de este tipo que “pesan” menos.
Esto también se aplica al correo electrónico, cuando adjuntamos imágenes y en otras
situaciones habituales. Vamos a ver a continuación brevemente en qué consiste el
formato JPEG.

En el formato JPEG se divide la imagen en bloques 8  8 y se somete cada bloque a una


transformación matricial ortogonal de la siguiente forma:

B  T t AT (1)

siendo A una subimagen 8  8 de la imagen original y T una matriz ortogonal.

Las columnas de la matriz T son una base ortonormal de 8, elegida de tal forma que la
matriz B resultante de (1) tiene la particularidad de concentrar los elementos de mayor

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

magnitud en la esquina superior izquierda de la matriz transformada y el resto de la


matriz son números prácticamente nulos.

Dicha base podría ser la llamada base wavelet de Haar, formada por los vectores
ortogonales dos a dos siguientes:

1 1 1 0 1 0 0 0


               
1 1 1 0   1 0 0 0
1 1   1 0 0 1 0 0
               
1 1   1 0 0   1 0 0
1 ,   1,  0 ,  1 ,  0 ,  0 ,  1 , 0
               
1   1 0 1 0 0   1 0
               
1   1 0   1 0 0 0 1
1   1 0   1 0 0 0   1
               

Haciendo los vectores unitarios, dividiendo cada vector por su norma, obtendremos la
base ortonormal. Formamos la matriz T escribiendo los vectores de la base anterior:

 1 1 1
2 0 1 0 0 0 
 8 8 2 
 1
8
1
8
1
2 0  1
2
0 0 0 
 1 1  2 1 0 0 1 0 0 
 8 8 2 
 1
8
1
8
 12 0 0  1
2
0 0 
T  

1
8
 1
8
0 1
2 0 0 1
2
0 
 1
8
 1
8
0 1
2 0 0  1
2
0 
 

1
8
 1
8
0  2 1 0 0 0 1
2 
 1  1 0  12 0 0 0  1 2 
 8 8

El hecho de escoger la base ortonormal tiene una razón muy evidente: la matriz T así
construida tiene la particularidad de ser ortogonal, es decir: T 1  T t . Esto, como
veremos a continuación, simplifica el proceso.

La transformación dada en (1), usando esta matriz T, concentra los elementos de mayor
magnitud (en valor absoluto) en la parte superior izquierda de la matriz transformada B.

Por ejemplo:

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

1 1 1 1 2 2 2 2  32  8 0 0 0 0 0 0
   
1 1 1 1 2 2 2 2   20 4 0 0 0 0 0 0
1 1 1 1 2 2 2 2  0 0 0 0 0 0 0 0
   
1 1 1 1 2 2 2 2  0 0 0 0 0 0 0 0
Tt   T 
5 5 5 5 8 8 8 8  0 0 0 0 0 0 0 0 
5 5 5 5 8 8 8 8  0 0 0 0 0 0 0 0
   
5 5 5 5 8 8 8 8  0 0 0 0 0 0 0 0
5 5 5 5 8 8 8 
8  0 
  0 0 0 0 0 0 0

En la realidad, muchos bloques 8  8 de imágenes reales tendrán sus elementos no nulos


concentrados en la parte superior izquierda y una gran cantidad de números
prácticamente despreciables en el resto.

La transformación inversa de (1) nos permite recuperar la subimagen A tal y como era
originalmente:

A  T BTt (2)

Como se puede observar, se ha aprovechado el hecho de que la matriz T es ortogonal, es


decir que: T 1  T t para obtener (2).

Si en la matriz transformada B ponemos a cero todos aquellos elementos


suficientemente pequeños, por debajo de un umbral dado, obtendremos otra matriz B * .
Lógicamente, al hacer la transformación inversa, no se recupera la matriz original A
sino una aproximación suya A* :

A*  T B * T t (3)

En la imagen BMP de la figura 3, hemos llevado a cabo las ideas anteriores. La imagen
original I A , se descompone en bloques 8  8 , a cada bloque se le aplica la transformada
descrita obteniendo la matriz I B . Todos aquellos elementos de I B que estén en valor
absoluto por debajo de 3.5, por ejemplo, se ponen a cero. De esta forma en la matriz
resultante final I B* se obtiene un total de 56078 ceros. Eso son muchos ceros, ya que la
matriz transformada I B* tiene 256  256  65536 elementos. Esto supone que más del
85’5% de los elementos de I B* son ceros. Después, a cada bloque 8  8 de la imagen
transformada I B* , se le calcula la transformada inversa, dada por la fórmula (3),
obteniendo de esta forma una aproximación I *A de la imagen original. El resultado se
muestra en la figura 4.

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

Figura 4: Imagen recuperada con un 85’5% de ceros en la transformada

Por otro lado, se disponen de métodos para almacenar una secuencia de números con
muchos ceros seguidos. Supongamos, por ejemplo, que tenemos un vector de 18
componentes del tipo:

( 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

Pues bien, en lugar de almacenar las 18 componentes una tras otra, podemos guardar:
(5, 2, Z16), usando tres caracteres (1, 6 y Z) para almacenar los 16 ceros. Esta idea se
aplica en el formato JPEG para almacenar los elementos de la matriz I B* .

Resumiendo, el formato JPEG es un formato de compresión “con pérdidas” ya que no


se recupera la imagen original tal y como era, sino una aproximación suya.

Un idea similar se usa para guardar un fichero de audio WAV en un fichero MP3.

Más detalles sobre la transformada wavelet de Haar pueden encontrarse en Adams


(2006), un trabajo de un alumno americano para su asignatura de Álgebra Lineal.

4. Álgebra Lineal y Códigos Detectores-Correctores de Errores.


Existen ocasiones donde se transmite una gran cantidad de bits por canales donde se
pueden producir algún tipo de interferencia como se indica en la figura 5.

Ocurren
Interferencias

Satélite envía 1101 Antena recibe 1100

Figura 5: Proceso de transmisión de una secuencia binaria

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

Nos interesa, por lo tanto, alguna forma de codificar la información a transmitir de


modo que se puedan detectar y corregir errores.

No sólo se aplican este tipo de códigos en la transmisión vía satélite sino que también
los estamos usando con frecuencia aún sin darnos cuenta. Así por ejemplo, la música de
un CD se graba con este tipo de códigos y así se puede oír bien la música aunque el CD
esté ligeramente estropeado.

La idea de este tipo de códigos es enviar más información de la estrictamente necesaria


para poder emplearla como información adicional para detectar y corregir errores. Por
ejemplo, si tenemos que enviar, como en el caso de la figura 5, cuatro bits de
información b1 b2 b3b4 , vamos a enviar siete: b1 b2 b3b4 b5 b6 b7 , es decir, los cuatro
originales más tres bits adicionales que se llaman bits de control. Se tratará en este caso
de un código C(7, 4).

Vamos a explicar un ejemplo de un código C(7, 4) que es capaz de detectar y corregir


un error, suponiendo que cuando se transmite una secuencia de este tipo o no se comete
ningún error o se comete sólo uno.

Usaremos, por ejemplo, la matriz:

1 0 0 0
 
0 1 0 0
0 0 1 0
 
G  0 0 0 1
1 1 0 1 

1 0 1 1
 
0 1 1 1

La matriz G tiene la matriz identidad de orden 4 en la parte superior. De esta forma se


consigue que al hacer el producto:

 b1 
 
 b2 
 b1   
  b3
 b2   
G     b4 
b
 3   b5 
b   
 4  b 
6
 
 b7 

se obtenga una secuencia binaria b1 b2 b3b4 b5 b6 b7 donde los 4 primeros bits son los
originales, es decir, la información que deseamos transmitir. Los tres últimos bits son

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

bits de control. Las operaciones de suma y producto que vamos a emplear son las de 2,
que se indican en la tabla 1.
Tabla 1: Tablas de sumar y multiplicar en 2
+ 0 1 . 0 1

0 0 1 0 0 0

1 1 0 1 0 1

Así, por ejemplo, si deseamos transmitir, como en la figura 5, la secuencia 1101,


deberemos realizar el producto:

1 0 0 0 1 0  0  0  1
     
0 1 0 0  0 1 0  0  1
1  1 
  0 0 1 0   0  0  0  0 0
1   1    
G    0 0 0 1 0   0  0  0  1   1
0
  1 1       
   1 0 1  11 0 1  1
1    
1 0 1 1 1  0  0  1  0
     
0 1 1 1  0  1  0  1  0

Por lo tanto, si deseamos enviar la secuencia 1101, transmitiremos en su lugar la


secuencia 1101100.

Las 16 secuencias de 4 bits posibles de información que podemos desear enviar serían:

0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101,
1110, 1111

Se transformarán en 16 secuencias de 7 bits cada una de acuerdo al producto anterior:

0000000, 0001111, 0010011, 0011100, 0100101, 0101010, 0110110, 0111001,


1000110, 1001001, 1010101, 1011010, 1100011, 1101100, 1110000, 1111111

Estas 16 secuencias de 7 bits componen nuestro código C. Tienen una propiedad


importante:

 b1 
 
 b2 
 b1   
  b3 b5  b1  b2  b4  b1  b2  b4  b5  0 
 b2     
G     b4   b6  b1  b3  b4   b1  b3  b4  b6  0  
b
 3   b5  b7  b2  b3  b4  b2  b3  b4  b7  0
b   
 4  b 
6
 
 b7 

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

 b1   0   b1 
     
 b2   0   b2 

 1 1 0 1 1 0 0  b3   0  b 
      3
  1 0 1 1 0 1 0  b4    0   H  b4   
 0 1 1 1 0 0 1  b   0  b 
  5     5
 b6   0   b6 
     
 b7   0   b7 

Hemos tenido en cuenta en las operaciones anteriores el hecho de que sumar y restar es
lo mismo en 2 ya que  0  0 y  1  1 .

Como vemos aparece una matriz H construida de la forma:

1 1 0 1 1 0 0
 
H  1 0 1 1 0 1 0
0 1 1 1 0 0 1
 

donde en la parte izquierda de esta matriz nos encontramos la misma submatriz que
aparecía en la parte inferior de G y a su derecha aparece la matriz identidad de orden 3.

Como hemos visto, si z es una secuencia de 7 bits del código C, entonces H z   .

El valor de H z se llama síndrome.

Supongamos que, como en la figura 5, deseamos enviar la secuencia 1101, entonces la


secuencia de 7 bits que se transmite es: z  1101100. Si calculamos el síndrome, nos
dará el vector nulo y suponemos que no se ha cometido ningún error y los cuatro bits de
información extraídos son los cuatro primeros, es decir: 1101.

Supongamos que se comete un error en el primer bit, es decir, que la secuencia de 7 bits
que nos llega es 0101100. Esa secuencia puede comprobarse como no coincide con
ninguna de las secuencias que componen el código C y por lo tanto, ha ocurrido un
error. Pero no hace falta compararla con todas las secuencias de código para ver que no
está en C, sino que basta con calcular su síndrome y comprobar que no nos sale nulo.

Veamos qué ocurre:

z*  z  e1  1101100  1000000  0101100

Al calcular el síndrome de la secuencia recibida se obtiene:

1 0 1 1


       
H z *  H ( z  e1 )  Hz  He1  H z  H  0    0    1    1   1ª columna de H
 0  0  0  0
       

XIV JAEM Girona 2009


Aplicaciones del Álgebra Lineal en la vida cotidiana

Es decir, el error ocurre en el primer bit y el síndrome coincide con la primera columna
de H. Análogamente es igual de fácil comprobar, que si el error se comete en el segundo
bit entonces el síndrome coincide con la segunda columna de H , si el error se comete
en el tercer bit entonces el síndrome coincide con la tercera columna de H, etc.

Por lo tanto, es muy fácil detectar y corregir el error en el caso de que éste ocurra.

El código considerado en esta sección es un código Hamming C(7,4) que fue usado por
France Telecom para la transmisión de Minitel (un precursor de Internet). Hoy en día se
usan códigos más sofisticados, como los códigos de Reed-Solomon, que permiten
detectar y corregir varios errores (usados en los CDs de música).

5. Bibliografía
Adams, D., et al. (2006). Haar Wavelet Transformation: Compression and
Reconstruction. Disponible on-line.

http://online.redwoods.cc.ca.us/instruct/darnold/laproj/fall2006/adamspatterson/haar1.p
df

Fernández Gallardo, P. (2004): El secreto de Google y el Álgebra Lineal. Boletín de la


Sociedad Española de Matemática Aplicada, Vol. 30, pp. 115-141. Disponible on-
line.

http://www.uam.es/personal_pdi/ ciencias/gallardo/

Martínez de la Rosa, F., Vinuesa Sánchez, “Enseñando Matemáticas en la


Universidad”, Epsilon, Nº 61, Vol. 21, pp. 57-62 (2005).

Moler, C. (2002). The world’s largest matrix computation. Disponible on-line

http://www.mathworks.com/company/newsletters/news_notes/clevescorner/oct02_cleve
.html

Page, L. et al. (1998). The PageRank Citation Ranking: bringing order to te Web.
Technical Report. Stanford InfoLab. Disponible on-line.

XIV JAEM Girona 2009

View publication stats

Vous aimerez peut-être aussi