Fundamentos de Matemática Aplicada. (Prácticas)

Documentos relacionados
Computación Matrices dispersas

ARREGLOS DEFINICION GENERAL DE ARREGLO

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

1. SOLUCIONES A LOS EJERCICIOS PROPUESTOS

Subespacios vectoriales en R n

MATLAB en 30 minutos

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

8. ESPACIOS VECTORIALES Y APLICACIONES LINEALES.

Curso de Procesamiento Digital de Imágenes

Manual de Introducción a SIMULINK

Diagonalización de matrices

Matrices. Definiciones básicas de matrices. José de Jesús Angel Angel.

Tema 3. Espacios vectoriales

Definición de vectores

El problema del cumpleaños

Aplicaciones Lineales

Comenzando con MATLAB

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

VECTORES EN EL ESPACIO. 1. Determina el valor de t para que los vectores de coordenadas sean linealmente dependientes.

1 Espacios y subespacios vectoriales.

ALN - Formatos dispersos

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Anexo 1: Demostraciones

Tema 3: Vectores y matrices. Conceptos básicos

Muchas veces hemos visto un juego de billar y no nos percatamos de los movimientos de las bolas (ver gráfico 8). Gráfico 8

5.4. Manual de usuario

EJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

SISTEMAS DE NUMERACIÓN. Sistema decimal

GEOMETRÍA ANALÍTICA 2º Curso de Bachillerato 22 de mayo de 2008

Introducción a Matlab.

Aplicaciones lineales

Práctica 3 Cálculo Matricial

1. ESPACIOS VECTORIALES

2 Matrices. 1. Tipos de matrices. Piensa y calcula. Aplica la teoría

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

VECTORES EN EL PLANO

Tema 2. Espacios Vectoriales Introducción

MODELOS DE RECUPERACION

Aplicaciones Lineales

PRACTICA 6. VECTORES Y MATRICES.

Qué son los monomios?

Capítulo. Cálculos con matrices

Álgebra Lineal Tutorial básico de MATLAB

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Estructuras de Datos y Algoritmos Tecnólogo en Informática

INSTRUCTIVO DEL COMANDO MAKE

Tecnología de la Información y la Comunicación. Base de datos. Consultas

1. Producto escalar, métrica y norma asociada

Matrices equivalentes. El método de Gauss

Tema 7: Programación con Matlab

3.- DETERMINANTES. a 11 a 22 a 12 a 21

Vectores: Producto escalar y vectorial

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

x y 8000 x + y a) La región factible asociada a las restricciones anteriores es la siguiente: Pedro Castro Ortega lasmatematicas.

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Álgebra lineal y matricial

Espacios generados, dependencia lineal y bases

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

UCLM - Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG)

Ahora podemos comparar fácilmente las cantidades de cada tamaño que se vende. Estos valores de la matriz se denominan elementos.

Tema 3. Medidas de tendencia central Introducción. Contenido

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

VII. Estructuras Algebraicas

1 v 1 v 2. = u 1v 1 + u 2 v u n v n. v n. y v = u u = u u u2 n.

Introducción a la Estadística con Excel

Estructuras algebraicas

SISTEMAS DE ECUACIONES LINEALES

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

Repaso de matrices, determinantes y sistemas de ecuaciones lineales

Manual de rol gestor de GAV para moodle 2.5

ÁLGEBRA DE MATRICES. Al consejero A no le gusta ninguno de sus colegas como presidente.

TÉCNICAS DE GESTIÓN ADMINISTRATIVA PARA PEQUEÑAS EMPRESAS

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

>> % suma de dos números reales, el resultado se asigna a ans

1. INVERSA DE UNA MATRIZ REGULAR

Árboles AVL. Laboratorio de Programación II

A estas alturas de nuestros conocimientos vamos a establecer dos reglas muy prácticas de cómo sumar dos números reales:

Matemáticas I: Hoja 3 Espacios vectoriales y subespacios vectoriales

10.4 Dibujos sobre dominios mallados en triángulos LECCIÓN V

Medidas de tendencia central o de posición: situación de los valores alrededor

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Nombre...Apellidos... Grado en:...grupo:...

Características de funciones que son inversas de otras

Una breve introducción a Excel c

Práctica 0. Emulador XENON de la computadora CESIUS

- MANUAL DE USUARIO -

Clase 15 Espacios vectoriales Álgebra Lineal

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

MATRICES PRODUCTO DE MATRICES POTENCIAS NATURALES DE MATRICES CUADRADAS

FUNCIONES CUADRÁTICAS Y RACIONALES

8.1. Introducción Dependencia/independencia estadística Representación gráfica: diagrama de dispersión Regresión...

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

8. CONCLUSIONES Y RECOMENDACIONES

Transcripción:

Fundamentos de Matemática Aplicada (Prácticas) Damián Ginestar Peiró UNIVERSIDAD POLITÉCNICA DE VALENCIA 1

Índice general 1. Matrices dispersas 3 1.0.1. Esquemas de almacenamiento.............. 3 1.0.2. Matrices dispersas en Matlab.............. 5 1.1. Ejercicios............................. 8 2

Práctica 1 Matrices dispersas Hay muchas aplicaciones que dan lugar a tener que manejar matrices que tienen gran cantidad de sus elementos nulos. Estas matrices se denominan matrices dispersas. Se puede dar una denición informal de matriz dispersa, como aquella matriz que tiene sucientes ceros de forma que vale la pena tener esto en cuenta. De este modo, evitando operaciones sobre los elementos que son cero se ahorra tiempo de computación y no guardando los elementos nulos se ahorra en memoria. Para manejar estas matrices se trata de aprovechar el hecho que tienen gran cantidad de elementos nulos para no almacenar dichos elementos, con lo que ello supone de ahorro en memoria y en tiempo de computación. Para poder trabajar con las matrices sin almacenar los elementos nulos se utilizan distintos esquemas de almacenamiento. 1.0.1. Esquemas de almacenamiento Dada una matriz A R m n, llamaremos n z al número de leementos no mulos de la matriz. A continuación, revisaremos alguno de los esquemas de almacenamiento más usuales para matrices dispersas. Esquema coordenado Con este esquema, para representar la matrix A se utilizan tres vectores AA, IA, y JA de dimensión n z. En el vector AA se almacenan los elementos 3

no nulos de A, en IA, se almacenan los números de la asociados a cada elemento de A y en JA el número de columna asociado a cada elemento de A. Por ejemplo, para la matriz 1 0 0 2 0 3 4 0 5 0 A = 6 0 7 8 9 0 0 10 11 0 0 0 0 0 12 su almacenamiento en formato coordenado viene dado por los vectores AA = ( 12 9 7 5 1 2 11 3 6 4 8 10 ), IA = ( 5 3 3 2 1 1 4 2 3 2 3 4 ), JA = ( 5 5 3 4 1 4 4 1 1 2 4 3 ). Observad que con este formato no es necesario introducir los elementos de la matriz ordenados por las o por columnas. Éste es esencialmente el formato que utiliza Matlab para el manejo de las matrices dispersas. Formato CSR Si se introducen los elementos de la matriz ordenados por las, es posible utilizar un formato más compacto denominado CSR (compressed sparse row). Este formato hace uso de los vectores: AA, de dimensión n z, que contiene los elementos no nulos de A ordenados por las, JA, también de dimensión n z, que contiene los números de las columnas de los elementos de A, e IA, de dimensión m + 1 con la siguiente estructura: IA(1) = 1, IA(i + 1) IA(i) = numero de elementos no nulos en la fila i. Así, la matriz A en el formato CRS se representa por AA = ( 1 2 3 4 5 6 7 8 9 10 11 12 ), JA = ( 1 4 1 2 4 1 3 4 5 3 4 5 ), IA = ( 1 3 6 10 12 13 ). Análogamente, se puede denir un formato de almacenamiento por columnas que se llama CSC. 4

Hay que hacer notar que es necesario redenir las operaciones usuales con matrices según el formato de almacenamiento que se utilice. Por ejemplo, la siguiente función implementa el producto matriz vector, cuando la matriz está almacenada en formato CSR. function vec1=mymult(aa,ia,ja,n,vec) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % vec1=mymult(aa,ia,ja,n,vec) % funcion para calcular el producto matriz vector % Entrada: % AA, IA, JA, matriz A almacenada % en formato CSR. % vec, vector % Salida: % vec1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:n k1=ia(i); k2=ia(i+1)-1; sum=0.; for j=k1:k2 sum=sum+aa(j)*vec(ja(j)); end vec1(i)=sum; end vec1=vec1'; 1.0.2. Matrices dispersas en Matlab Para las matrices Matlab tiene dos tipos de almacenamiento, el denso (full) y el disperso (sparse). Dada una matriz A A=[0 0 11; 22 0 0; 0 33 0]; la instrucción S=sparse(A) 5

da como resultado S= (2,1) 22 (3,2) 33 (1,3) 11 así, una matriz dispersa se muestra como una lista de los elementos no nulos indicando la la y la columna donde se encuentran. Los elementos se muestran en orden de columnas creciente. Como ya hemos comentado, un parámetro importante para describir una matriz dispersa, a parte del número de las, m, y el número de columnas, n, es el número de elementos no nulos n z. La función que calcula el número de elementos no nulos de A es nnz(a), que en este caso es 3. En ocasiones, la visualización gráca de la estructura de una matriz dispersa es una herramienta útil. Por ejemplo, para visualizar la estructura de la matriz bucky, ejecutamos A=bucky; spy(a) y obtenemos la gráca mostrada en la Figura 1.1, donde los elementos no nulos de la matriz se representan mediante un símbolo. Para crear una matriz dispersa, también es posible utilizar la instrucción S=sparse(I,J,s,m,n,nzmax) donde I, y J son vectores indicando las las y las columnas de los elementos no nulos de la matriz. s es otro vector de reales o de complejos que contiene estos elementos. m es el número de las, n el número de columnas y nzmax es el número máximo de elemenos no nulos que se reservan en la memoria. Si un par de índices la y columna se repiten en los vectores I y J en el resultado los valores de s se suman. Hay varias maneras de simplicar la llamada a la función sparse( ) S=sparse(I,J,s,m,n) utiliza nzmax=length(s). S=sparse(I,J,s) utiliza m=max(i), n=max(j). 6

0 10 20 30 40 50 60 0 10 20 30 40 50 60 nz = 180 Figura 1.1: Visualización de una matriz dispersa. Por otro lado, la función find( ) nos permite crear los vectores con los índices de la y de columna y el vector de elementos no nulos de una matriz. Para una matriz A en formato denso o disperso se puede ejecutar, [I,J,s]=find(A) Hay distintas funciones de Matlab que permiten construir matrices dispersas directamente así, por ejemplo, speye( ) genera la matriz identidad en formato disperso. La función sprandn( ) genera una matriz dispersa de números aleatorios que se distribuyen normalmente. La instrucción sprand(m,n,density), genera una matriz m n con aproximadamente density m n elementos no nulos. Por ejemplo, se tiene que al hacer AS=sprandn(50,50,0.1) nnz(as) se obtiene un valor de nnz=244. Mientras que al hacer Por ejemplo, se tiene que al hacer AS=sprandn(50,50,0.5) nnz(as) se obtiene un valor de nnz=974. 7

Algunos métodos de resolución de sistemas son sólo válidos para matrices simétricas y denidas positivas. Se puede generar una matriz dispersa aleatoria con números distribuidos uniformemente en [ 1, 1] con la función sprandsym(n,density). La función spdiags( ) es similar a la función diag( ), pero da como resultado una matriz dispersa. 1.1. Ejercicios 1. Los vectores almacenados en los cheros V.dat, I.dat y J.dat denen una matriz dispersa, A en formato coordenando. Construye con ellos una matriz dispersa de Matlab y obtén el tamaño y los elementos no nulos de la matriz. Visualiza la estructura de la matriz. Obtén los elementos de la diagonal de la matriz. Calcula I A y almacena el resultado en formato coordenado. 2. Construye una función que pase una matriz almacenada en el formato coordenado al formato CSR. Obtén el producto de la matriz denida por los vectores dados en los cheros V.dat, I.dat y J.dat en formato coordenado por el vector que tiene la primera coordenada igual a 1 y las otras cero. (observa que así se obtiene la primera columna de la matriz). 3. Construye una función que pase del formato de almacenamiento denso al formato CSR. Utiliza esta función para generalizar la función mymult( ), que se ha presentado antes, para que calcule el producto de dos matrices en formato CSR y devuelva el resultado en este formato. 4. Construye una función que pase del formato CSR al formato coordenado. Utiliza esta función y la función que pasa del formato coordenado al CSR para construir una función que calcule la transpuesta de una matriz en formato CSR. Esta función es equivalente a una función que pasa del formato CSR al formato CSC. 5. Un vector v en formato disperso se puede almacenar con la ayuda de dos vectores Jv y vv. El primero nos da las posiciones con elementos no nulos y el segundo el valor de los elementos no nulos. En la última posición de Jv se almacena la dimension del vector. Construye una función que sume dos vectores en formato disperso y devuelva el resultado en formato disperso. 8

6. Construye la matriz del problema de Laplace si se usa el método de las diferencias nitas con un mallado de 100 100 nodos para un rectángulo de 4 5. Visualiza el patrón de elementos no nulos de la matriz. Construye tres vectores IA, JA y AA que contengan esta matriz en formato coordenado y guardalos en el disco. Comprueba que la matriz obtenida es simétrica. 9