Introducción a los Computadores (CNM-130) Vectores y matrices en Matlab

Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Introducci´on a los Computadores (CNM-130) Vectores y matrices en Matlab® Alejandro Piedrahita H. Instituto de Matem´ aticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft «2013. Reproducci´ on permitida bajo los t´ erminos de la licencia de documentaci´ on libre GNU. Documento bajo construcci´ on, reportar errores al correo electr´ onico [email protected] Referencias Vectores en Matlab Ejemplos con vectores Contenido 1 Vectores en Matlab 2 Ejemplos con vectores 3 Matrices en Matlab 4 Ejemplos con matrices 5 Referencias Matrices en Matlab Ejemplos con matrices Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Vectores en Matlab Arreglo: concepto en programaci´ on an´ alogo a los conceptos matem´ aticos de vector, matriz y tensor Arreglo unidimensional (vector): estructura de datos formada por una colecci´ on finita de elementos homog´eneos y ordenados que se referencian con un nombre com´ un Homog´ eneos: todos los elementos son del mismo tipo de dato Ordenados: el arreglo tiene un primer elemento, un segundo elemento, etc. Finito: el arreglo tiene un u ´ ltimo elemento Los elementos de un arreglo se almacenan en posiciones consecutivas de memoria Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Vectores en Matlab Comando [∗ ∗ · · · ∗] m:n Uso Genera el vector (∗, ∗, · · · , ∗) Genera el vector (m,m+1,...,n) m:d:n Genera el vector (m,m+d,m+2d,...,n) x(k) Muestra la k-´ esima entrada del vector x >> x = [1 2 3] x = 1 2 3 >> x(3) = 2*x(1) - 3*x(3) x = 1 -4 -7 >> y = [3, -2, 1] y = 3 -2 1 >> x(-2) >> x(3) ans = 3 >> [x y] ans = 1 >> x(2) = -4 x = 1 -4 >> vacio = [] vacio = [] 3 Index exceeds matrix dimensions. -4 -7 3 -2 1 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Vectores en Matlab Comando [∗ ∗ · · · ∗] m:n Uso Genera el vector (∗, ∗, · · · , ∗) Genera el vector (m,m+1,...,n) m:d:n Genera el vector (m,m+d,m+2d,...,n) x(k) Muestra la k-´ esima entrada del vector x >> numeros = [23 14 9 3 34 56 0 -3] numeros = 23 14 9 3 34 56 0 -3 >> numeros(1:3) ans = 23 14 9 >> numeros(3:2:7) ans = 9 34 0 >> numeros(6:-2:2) ans = 56 3 14 >> a = 3:2:9 a = 3 5 7 >> b = 10:-1:3 b = 10 9 8 >> a(:) ans = 3 5 7 9 9 7 6 5 4 3 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Operaciones con vectores en Matlab Operador Operaci´ on == Igualdad de vectores (componente por componente) .∧ Potencia de vectores (componente por componente) .* , ./ +,rem(x,y) Producto y divisi´ on de vectores (componente por componente) Suma y resta de vectores M´ odulo (residuo) entre componentes de vectores x e y >> u = 1:3; v = -1:2:3; >> u.*v ans = -1 2 9 >> u == v ans = 0 0 1 >> 2*u ans = 2 6 >> rem(v,u) ans = 0 1 0 6 >> u+1 ans = 2 4 >> u+v ans = 0 4 3 >> u.∧v ans = 1 2 3 27 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Comparando vectores en Matlab Operador ∼= >> x >= y ans = 0 1 >> x >= 1 ans = 1 1 Diferente de (componente por componente) < Menor que (componente por componente) > Mayor que (componente por componente) = Mayor igual (componente por componente) >> x = [1 2 3]; y = [3 2 1]; >> x ∼= y ans = 1 0 Operaci´ on 1 1 1 >> fib = [1 1 2 3 5 8 13]; >> fib < 5 ans = 1 1 1 1 >> fib(fib < 5) ans = 1 1 2 3 >> rem(fib,2) == 0 ans = 0 0 1 0 >> fib(rem(fib,2) == 0) ans = 2 8 0 0 0 1 0 0 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Operadores l´ogicos con vectores en Matlab Operador Operaci´ on & y l´ ogico para vectores | o l´ ogico para vectores ∼ negaci´ on 2 3 >> ∼x ans = 0 2 1 >> t = 0; >> x & y ans = 1 1 1 >> t * sin(1/t) == 0 ans = 0 >> x, y x = 1 y = 3 >> x && y 0 0 convertible to logical scalar values. >> (t == 0) | (sin(1/t) == 0) ans = 1 >> x | y ans = 1 1 >> (t == 0) || (sin(1/t) == 0) ans = 1 Operands to the || and && operators must be 1 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Algunas funciones predefinidas en Matlab Funci´ on Uso abs(x) sqrt(x) exp(x) log(x) sin(x) cos(x) tan(x) asin(x) acos(x) atan(x· · · ) Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula >> x = [-9 -4 ans = -9 -4 >> abs(x) ans = 9 4 -1 0 -1 1 >> sqrt(abs(x)) ans = 3 2 1 0 0 el la la el el el la el el la valor absoluto de los elementos de un vector x ra´ız cuadrada de los elementos de un vector x funci´ on exponencial de los elementos de un vector x logaritmo natural de los elementos de un vector x seno de los elementos de un vector x coseno de los elementos de un vector x tangente de los elementos de un vector x seno inverso de los elementos de un vector x coseno inverss de los elementos de un vector x tangente inversa de los elementos de un vector x 1 16]; 0 1 1 1 >> alfa = [0 pi/3 pi/6 pi/2]; 16 16 >> cos(alfa) ans = 1.0000 0.5000 0.8660 0.0000 4 >> cos(alfa) ans = 0.0000 0.8660 0.5000 1.0000 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Algunas funciones predefinidas en Matlab Funci´ on Uso length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x) Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x >> x = [3 2 4 0 -5 7]; >> max(x) ans = 7 >> length(x) ans = 6 >> sort(x) ans = -5 0 2 3 4 7 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Algunas funciones predefinidas en Matlab Funci´ on Uso length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x) Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x >> x = 1:10; >> sum(x) ans = 55 >> x ans = 1 2 3 >> cumsum(x) ans = 1 3 6 10 4 5 15 6 7 8 9 10 21 28 36 45 55 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Algunas funciones predefinidas en Matlab Funci´ on Uso length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x) Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x >> x = [1 2 4 6 8 10 12 15]; >> median(x) ans = 7 >> mean(x) ans = 7.2500 >> var(x) ans = 24.2143 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Algunas funciones predefinidas en Matlab Funci´ on Uso length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x) Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x >> x ans = 1 2 4 6 8 >> x( x > median(x) ) ans = 8 10 12 15 10 12 15 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Algunas funciones predefinidas en Matlab >> x ans = 1 2 Funci´ on Uso length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x) Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x 4 >> any(x == 8) ans = 1 6 8 10 12 15 >> find( rem(x,3) == 0) ans = 4 7 8 >> x( find( rem(x,3) == 0 ) ) ans = 6 12 15 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Recorriendo un arreglo El recorrido se realiza por medio de un ´ındice El ´ındice puede ir desde el primero hasta el u ´ltimo elemento Recorrido del primero al u ´ltimo for i=1:n % proceso que involucra a x[i] end El ´ındice puede ir desde el u ´ltimo hasta el primer elemento Recorrido del u ´ltimo al primero for i=n:-1:1 % proceso que involucra a x[i] end Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejercicios Ejercicio 2.1 (Notas) Escriba un programa en que almacene en un vector (arreglo unidimensional) las notas finales de los alumnos de un curso formado por 10 estudiantes. El programa debe visualizar por pantalla las notas. Ejercicio 2.2 (Notas promedio) Modifique el programa del ejercicio anterior (2.1) para que muestre por pantalla el promedio de notas del curso. Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.1: Fibonacci con vectores Ejemplo 2.1 Realice un programa (utilizando vectores) que calcule los n primeros t´erminos de la suci´ on de Fibonacci 1, 1, 2, 3, 5, 8, 13, 21, 34, . . . Soluci´ on n: almacena el entero hasta donde se realiza la suma El t´ermino n-´esimo de la sucesi´ on para n = 2, 3, . . . est´ a dado por: fn = fn−1 + fn−2 con f0 = f1 = 1 fib: vector que almacenar´ a los t´erminos de la sucesi´ on >> fib = [1 1]; >> i = i+1; >> fib(i) = fib(i-1) + fib(i-2); >> i = 3; >> fib(i) = fib(i-1) + fib(i-2); >> i = i+1; >> fib(i) = fib(i-1) + fib(i-2); >> fib fib = 1 >> fib fib = 1 1 2 1 2 3 5 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Ejemplo 2.1: Fibonacci con vectores fibofun.m function fib = fibofun(n) % El programa calcula los n primeros terminos % de la sucesion de Fibonacci utilizando vectores. fib = [1 1]; for i=3:n fib(i) = fib(i-1) + fib(i-2); end end >> fibofun(10) ans = 1 1 2 3 >> z = fibofun(1000); >> z(1000)/z(999) ans = 1.6180 5 8 13 21 34 55 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Funciones “vectorizadas” Comando Uso arrayfun(@funcion,x) Eval´ ua funcion en cada elemento del vector x >> x = 1:7 ans = 1 2 3 4 5 6 7 >> arrayfun(@esprimo,x) ans = 0 1 1 0 1 0 Permiten aumentar la rapidez de ejecuci´ on de una funci´ on Se utilizan los operadores .*, ./ y .∧ en la definici´ on de una funci´ on funvec.m function y = funvec(x) % Evalua la funcion f(x) = x∧2*sen(x)+1/x en % cada una de las componentes de un vector x y = x.∧2.*sin(x) + 1./x; end >> x = 1:5; >> funvec(x) ans = 1.8415 4.1372 1.6034 -11.8588 -23.7731 1 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.2 (densidad de los n´ umeros primos) Considere la funci´ on π(x) = n´ umero de primos ≤ x para cualquier n´ umero real x. Utilice una versi´ on “vectorizada” de la funci´ on esprimo desarrollada en clase para hallar π(x) y verifique num´ericamente que para valores “grandes” de x, π(x) ≈ x/ ln x, es decir, π(x) l´ım =1 x→∞ x/ ln x Soluci´ on >> n = 10; >> vec = 2:n vec = 2 3 4 >> sum(primos) ans = 4 5 6 7 8 9 10 >> primos = arrayfun(@esprimo,vec); >> sum(primos)/(n/log(n)) ans = 0.9210 >> primos primos = 1 1 >> n = 1000; >> vec = 2:n; >> primos = arrayfun(@esprimo,vec); >> sum(primos)/(n/log(n)) ans = 1.1605 0 1 0 1 0 0 0 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.2: densidad de los n´ umeros primos l´ım n→∞ π(n) =1 n/ ln n >> n = 10; >> vec = 2:n; >> primos = arrayfun(@esprimo,vec); >> n = 1000; >> vec = 2:n; >> primos = arrayfun(@esprimo,vec); >> primos primos = 1 1 >> x = vec; >> y = cumsum(primos)/vec*log(vec); >> vec vec = 2 0 1 0 1 0 0 0 >> plot(x,y) >> grid on 3 4 5 6 7 8 9 10 >> cumsum(primos) vec = 1 2 2 3 3 4 4 4 4 >> cumsum(primos)/vec*log(vec) ans = 0.3339 0.5293 0.6679 0.7754 0.8632 0.9375 1.0018 1.0586 1.1093 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.3: Criba de Erat´ ostenes Ejemplo 2.3 La Criba de Erat´ ostenes es un m´ etodo sistem´ atico para seleccionar (cribar) todos los n´ umeros primos menores que un entero n > 1. Primero se listan todos los n´ umeros naturales desde 2 hasta n y de esa lista se eliminan los n´ umeros que no son primos de la siguiente manera: cuando se encuentra un n´ umero que no ha sido eliminado de la lista, dicho n´ umero se declara primo y se procede a eliminar todos sus m´ ultiplos. Este proceso se repite mientras que el cuadrado del mayor n´ umero declarado como primo no exceda a n. Implemente una funci´ on que genere un vector con todos los primos menores que n por medio de la Criba de Erat´ ostenes. 11 21 31 41 2 12  Z 22 Z  32 Z  42 Z  2 11 21 Z  31 41 3 13 23 33 43 4  Z 14  Z 24  Z 34  Z 44  Z 3 13 23 33 Z  43 5 15 25 35 45 Z 6 16 Z  26 Z  36 Z  46 Z  5 15  Z 25 35 45 Z  7 17 27 37 47 8 Z  18 Z  28 Z  38 Z  48 Z  7 17 27 Z  37 47 9 19 29 39 49 10  Z 20 Z  30 Z  40 Z  50 Z  9  Z 19 29 39 Z  49 2 11 31 41 43 2 11 31 41 3 13 23 3 13 23 43 5 25  Z 35 Z  5 7 17 37 47 19 29 49 7 17 37 47 19 29 49 Z  Vectores en Matlab Ejemplos con vectores 2 3  4 Z 12 13  14  Z Z 22 23  24 Z  Z 32 Z 33  34  Z  Z 42 43 Z 44  Z  11 21 Z  31 41 5 8  9 Z6 7   Z Z 16 17  18 19  Z Z 26 Z 27  28 29 Z   Z 36 37 Z 38  39 Z   Z 46 47  48 Z 49 Z  Z  15  Z 25 Z  35 Z  45 Z  >> n = 10; i = 2; >> criba = 2:n; primos = []; >> criba criba = 2 3 Matrices en Matlab 10 Z  20  Z 30 Z  40 Z  50 Z  Ejemplos con matrices  Z Z  Z  Z  Referencias : m´ ultiplos de 2 : m´ ultiplos de 3 : m´ ultiplos de 5 : m´ ultiplos de 7 >> criba = [i criba( rem(criba,i)∼= 0)] criba = 2 3 5 7 9 eratostenes.m 4 5 6 7 8 9 10 >> any(criba == i) ans = 1 for i=1:n if any(criba == i) primos = [primos i]; criba = [i criba( rem(criba,i)∼= 0)]; end end >> primos = [primos i] primos = 2 >> rem(criba,i) ans = 0 1 0 ∼= function primos = eratostenes(n) % Devuelve los primos menores o iguales que n criba = 2:n; primos = []; 0 end 1 0 1 0 >> criba( rem(criba,i) ans = 3 5 7 9 ∼= 0 ) 1 0 >> eratostenes(30) ans = 2 3 5 7 11 13 17 19 23 29 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.4 (funci´ on log´ıstica) Para cada r ∈ [0, 4], la funci´ on fr (x) = rx(1 − x), x ∈ [0, 1] se denomina funci´ on log´ıstica. Para cada x1 ∈ [0, 1], la sucesi´ on {xn }∞ n=1 definida por xn+1 = f (xn ) se denomina sistema din´ amico discreto definido por fr . Si xn representa el tama˜ no de una poblaci´ on en el a˜ no n, xn+1 representa el tama˜ no de la poblaci´ on en el a˜ no n + 1. Implemente una funci´ on que tenga como argumentos a x1 , r y n y devuelva el vector {x1 , . . . , xn }. Grafique c´ omo evoluciona el sistema para valores distintos de x1 , r y n. Soluci´ on >> x = 0.2; >> r = 1.5; >> n = 8; >> for i=1:7 y(i+1) = r*y(i)*(1-y(i)); end >> y = zeros(1,n); >> y(1) = x; >> y y = 0.2000 0 0 >> y y = 0.2000 0.2400 0.2736 0.2981 0.3139 0.3230 0.3280 0.3306 0 0 0 0 0 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Ejemplo 2.4: funci´on log´ıstica logistica.m function y = logistica(x,r,n) % Devuelve vector con el sistema dinamico % discreto generado por la funcion logistica y = zeros(1,n); y(1) = x; >> y = logistica(0.2,2.9,100); >> plot(y,’o’) >> grid on for i=1:n-1 y(i+1) = r*y(i)*(1-y(i)); end end >> y = logistica(0.4,1.5,100); >> plot(y,’o’) >> grid on >> y = logistica(0.5,3.5,100); >> plot(y,’o’) >> grid on Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.5: Torres de Han´ oi Ejemplo 2.5 La Torres de Han´ oi es un rompecabezas o juego matem´ atico inventado en 1883 ´ por el matem´ atico franc´ es Edouard Lucas, que consiste de un conjunto de discos de distintos tama˜ nos, enumerados de manera creciente y que se apilan insert´ andose de mayor a menor en una de tres estacas disponibles. El objetivo del juego es mover el conjunto completo de discos a otra estaca, moviendo cada disco a la vez de manera tal que un disco de mayor tama˜ no nunca est´ e sobre un disco de tama˜ no menor. (a) Inicio (b) Fin Reglas Torres de Han´ oi I S´ olo se puede mover un disco a la vez. I Un disco de mayor tama˜ no no puede estar sobre uno de menor tama˜ no. I S´ olo se puede desplazar el disco que se encuentre arriba en cada estaca. Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Ejemplo 2.5: Torres de Han´ oi Reglas Torres de Han´ oi I S´ olo se puede mover un disco a la vez. I Un disco de mayor tama˜ no no puede estar sobre uno de menor tama˜ no. I S´ olo se puede desplazar el disco que se encuentre arriba en cada estaca. (c) Inicio (d) Paso 1 Figura: Soluci´ on con n = 1 discos, n´ umero de pasos: 2n − 1 = 1 (a) Inicio (b) Paso 1 (c) Paso 2 Figura: Soluci´ on con n = 2 discos, n´ umero de pasos: (d) Paso 3 2n −1=3 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Ejemplo 2.5: Torres de Han´ oi Reglas Torres de Han´ oi I S´ olo se puede mover un disco a la vez. I Un disco de mayor tama˜ no no puede estar sobre uno de menor tama˜ no. I S´ olo se puede desplazar el disco que se encuentre arriba en cada estaca. (a) Inicio (b) Paso 1 (c) Paso 2 (d) Paso 3 (e) Paso 4 (f) Paso 5 (g) Paso 6 (h) Paso 7 Figura: Soluci´ on con n = 3 discos, n´ umero de pasos: 2n − 1 = 7 Referencias Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.5: Torres de Han´ oi (a) Inicio (b) Paso 1 (c) Paso 2 (d) Paso 3 (e) Paso 4 (f) Paso 5 (g) Paso 6 (h) Paso 7 (i) Paso 8 (j) Paso 9 (k) Paso 10 (l) Paso 11 (m) Paso 12 (n) Paso 13 (˜ n) Paso 14 Figura: Soluci´ on con n = 4 discos, n´ umero de pasos: (o) Paso 15 2n − 1 = 15 Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referencias Ejemplo 2.5: Torres de Han´ oi Algoritmo Torres de Han´ oi I Si se tiene n = 1 disco, mover el disco de la estaca (1) a la (3). I Si se tienen n > 1 discos, 1 2 3 mover los primeros n − 1 discos de la estaca (1) a la (2), mover el disco restante de la estaca (1) a la (3), mover los primeros n − 1 discos de la estaca (2) a la (3). hanoi.m function hanoi(numdiscos, inicial, final) % hanoi(numdiscos, inicial, final) % Resuelve las Torres de Hanoi. "numdiscos" % es la cantidad de discos a mover, "inicial" % es la estaca donde se encuentran los discos % y "final" es la estaca a donde se van a % mover los discos. if numdiscos==1 fprintf(’Mover disco 1 desde la estaca %d hasta la estaca %d \n’, inicial, final); else intermedia = 6-inicial-final; hanoi(numdiscos-1, inicial, intermedia); fprintf(’Mover disco %d desde la estaca %d hasta la estaca %d \n’,numdiscos,inicial,final); hanoi(numdiscos-1, intermedia, final); end end Vectores en Matlab Ejemplos con vectores Matrices en Matlab Ejemplos con matrices Referen

1 downloads 55 Views 2MB Size

Recommend Stories


Introducción a MATLAB
Introducci´ on a MATLAB Sistemas Conexionistas - Curso 08/09 MATLAB es un sistema interactivo basado en matrices que se utiliza para c´alculos cient´ı

Introducción a los Computadores Algoritmos computacionales
Introducci´ on Diagramas de flujo Dise˜ no de diagramas Pseudoc´ odigo GNU Octave Introducci´ on a los Computadores Algoritmos computacionales CNM-130 Departamento de Matem´ aticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia

Story Transcript

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Introducci´on a los Computadores (CNM-130) Vectores y matrices en Matlab® Alejandro Piedrahita H. Instituto de Matem´ aticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft «2013. Reproducci´ on permitida bajo los t´ erminos de la licencia de documentaci´ on libre GNU. Documento bajo construcci´ on, reportar errores al correo electr´ onico [email protected]

Referencias

Vectores en Matlab

Ejemplos con vectores

Contenido

1

Vectores en Matlab

2

Ejemplos con vectores

3

Matrices en Matlab

4

Ejemplos con matrices

5

Referencias

Matrices en Matlab

Ejemplos con matrices

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Vectores en Matlab Arreglo: concepto en programaci´ on an´ alogo a los conceptos matem´ aticos de vector, matriz y tensor Arreglo unidimensional (vector): estructura de datos formada por una colecci´ on finita de elementos homog´eneos y ordenados que se referencian con un nombre com´ un Homog´ eneos: todos los elementos son del mismo tipo de dato Ordenados: el arreglo tiene un primer elemento, un segundo elemento, etc. Finito: el arreglo tiene un u ´ ltimo elemento

Los elementos de un arreglo se almacenan en posiciones consecutivas de memoria

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Vectores en Matlab Comando [∗ ∗ · · · ∗] m:n

Uso Genera el vector (∗, ∗, · · · , ∗) Genera el vector (m,m+1,...,n)

m:d:n

Genera el vector (m,m+d,m+2d,...,n)

x(k)

Muestra la k-´ esima entrada del vector x

>> x = [1 2 3] x = 1 2 3

>> x(3) = 2*x(1) - 3*x(3) x = 1 -4 -7

>> y = [3, -2, 1] y = 3 -2 1

>> x(-2)

>> x(3) ans = 3

>> [x y] ans = 1

>> x(2) = -4 x = 1 -4

>> vacio = [] vacio = []

3

Index exceeds matrix dimensions.

-4

-7

3

-2

1

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Vectores en Matlab Comando [∗ ∗ · · · ∗] m:n

Uso Genera el vector (∗, ∗, · · · , ∗) Genera el vector (m,m+1,...,n)

m:d:n

Genera el vector (m,m+d,m+2d,...,n)

x(k)

Muestra la k-´ esima entrada del vector x

>> numeros = [23 14 9 3 34 56 0 -3] numeros = 23 14 9 3 34 56 0 -3 >> numeros(1:3) ans = 23 14 9 >> numeros(3:2:7) ans = 9 34 0 >> numeros(6:-2:2) ans = 56 3 14

>> a = 3:2:9 a = 3 5 7

>> b = 10:-1:3 b = 10 9 8

>> a(:) ans = 3 5 7 9

9

7 6

5

4

3

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Operaciones con vectores en Matlab Operador

Operaci´ on

==

Igualdad de vectores (componente por componente)

.∧

Potencia de vectores (componente por componente)

.* , ./ +,rem(x,y)

Producto y divisi´ on de vectores (componente por componente) Suma y resta de vectores M´ odulo (residuo) entre componentes de vectores x e y

>> u = 1:3; v = -1:2:3;

>> u.*v ans = -1

2

9

>> u == v ans = 0 0

1

>> 2*u ans = 2

6

>> rem(v,u) ans = 0 1

0

6

>> u+1 ans = 2

4

>> u+v ans = 0

4

3

>> u.∧v ans = 1

2

3

27

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Comparando vectores en Matlab Operador ∼=

>> x >= y ans = 0 1 >> x >= 1 ans = 1 1

Diferente de (componente por componente)

<

Menor que (componente por componente)

>

Mayor que (componente por componente)

=

Mayor igual (componente por componente)

>> x = [1 2 3]; y = [3 2 1]; >> x ∼= y ans = 1 0

Operaci´ on

1

1

1

>> fib = [1 1 2 3 5 8 13];

>> fib < 5 ans = 1 1

1

1

>> fib(fib < 5) ans = 1 1 2

3

>> rem(fib,2) == 0 ans = 0 0 1

0

>> fib(rem(fib,2) == 0) ans = 2 8

0

0

0

1

0

0

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Operadores l´ogicos con vectores en Matlab Operador

Operaci´ on

&

y l´ ogico para vectores

|

o l´ ogico para vectores



negaci´ on

2

3

>> ∼x ans = 0

2

1

>> t = 0;

>> x & y ans = 1 1

1

>> t * sin(1/t) == 0 ans = 0

>> x, y x = 1 y = 3

>> x && y

0

0

convertible to logical scalar values.

>> (t == 0) | (sin(1/t) == 0) ans = 1

>> x | y ans = 1 1

>> (t == 0) || (sin(1/t) == 0) ans = 1

Operands to the || and && operators must be

1

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Algunas funciones predefinidas en Matlab Funci´ on

Uso

abs(x) sqrt(x) exp(x) log(x) sin(x) cos(x) tan(x) asin(x) acos(x) atan(x· · · )

Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula

>> x = [-9 -4 ans = -9 -4 >> abs(x) ans = 9 4

-1

0

-1

1

>> sqrt(abs(x)) ans = 3 2 1

0

0

el la la el el el la el el la

valor absoluto de los elementos de un vector x ra´ız cuadrada de los elementos de un vector x funci´ on exponencial de los elementos de un vector x logaritmo natural de los elementos de un vector x seno de los elementos de un vector x coseno de los elementos de un vector x tangente de los elementos de un vector x seno inverso de los elementos de un vector x coseno inverss de los elementos de un vector x tangente inversa de los elementos de un vector x

1

16];

0

1

1

1

>> alfa = [0 pi/3 pi/6 pi/2]; 16

16

>> cos(alfa) ans = 1.0000 0.5000

0.8660

0.0000

4

>> cos(alfa) ans = 0.0000 0.8660

0.5000

1.0000

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Algunas funciones predefinidas en Matlab Funci´ on

Uso

length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x)

Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x

>> x = [3 2 4 0 -5 7];

>> max(x) ans = 7

>> length(x) ans = 6

>> sort(x) ans = -5 0

2

3

4

7

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Algunas funciones predefinidas en Matlab Funci´ on

Uso

length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x)

Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x

>> x = 1:10;

>> sum(x) ans = 55

>> x ans = 1

2

3

>> cumsum(x) ans = 1 3 6 10

4

5

15

6

7

8

9

10

21

28

36

45

55

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Algunas funciones predefinidas en Matlab Funci´ on

Uso

length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x)

Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x

>> x = [1 2 4 6 8 10 12 15];

>> median(x) ans = 7

>> mean(x) ans = 7.2500

>> var(x) ans = 24.2143

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Algunas funciones predefinidas en Matlab Funci´ on

Uso

length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x)

Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x

>> x ans = 1

2

4

6

8

>> x( x > median(x) ) ans = 8 10 12 15

10

12

15

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Algunas funciones predefinidas en Matlab

>> x ans = 1

2

Funci´ on

Uso

length(x) max(x) min(x) sum(x) cumsum(x) prod(x) cumprod(x) mean(x) median(x) var(x) sort(x) any(x· · · ) find(x)

Calcula el n´ umero de elementos de un vector x Calcula el mayor de un conjunto de datos x Calcula el menor de un conjunto de datos x Calcula la suma de los elementos de un vector x Calcula las sumas acumuladas de conjunto de datos x Calcula el producto de los elementos de un vector x Calcula los productos acumulados de conjunto de datos x Calcula la media aritm´ etica de un conjunto de datos x Calcula la mediana de un conjunto de datos x Calcula la varianza de un conjunto de datos x Ordena de menor a mayor los elementos de un vector x true (1) si alg´ un elemento de x cumplple propiedad · · · Devuelve las posiciones de los elementos true (1) de un vector x

4

>> any(x == 8) ans = 1

6

8

10

12

15

>> find( rem(x,3) == 0) ans = 4 7 8 >> x( find( rem(x,3) == 0 ) ) ans = 6 12 15

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Recorriendo un arreglo

El recorrido se realiza por medio de un ´ındice El ´ındice puede ir desde el primero hasta el u ´ltimo elemento Recorrido del primero al u ´ltimo for i=1:n % proceso que involucra a x[i] end

El ´ındice puede ir desde el u ´ltimo hasta el primer elemento Recorrido del u ´ltimo al primero for i=n:-1:1 % proceso que involucra a x[i] end

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejercicios

Ejercicio 2.1 (Notas) Escriba un programa en que almacene en un vector (arreglo unidimensional) las notas finales de los alumnos de un curso formado por 10 estudiantes. El programa debe visualizar por pantalla las notas.

Ejercicio 2.2 (Notas promedio) Modifique el programa del ejercicio anterior (2.1) para que muestre por pantalla el promedio de notas del curso.

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.1: Fibonacci con vectores Ejemplo 2.1 Realice un programa (utilizando vectores) que calcule los n primeros t´erminos de la suci´ on de Fibonacci 1, 1, 2, 3, 5, 8, 13, 21, 34, . . . Soluci´ on n: almacena el entero hasta donde se realiza la suma El t´ermino n-´esimo de la sucesi´ on para n = 2, 3, . . . est´ a dado por: fn = fn−1 + fn−2 con f0 = f1 = 1 fib: vector que almacenar´ a los t´erminos de la sucesi´ on >> fib = [1 1];

>> i = i+1; >> fib(i) = fib(i-1) + fib(i-2);

>> i = 3; >> fib(i) = fib(i-1) + fib(i-2);

>> i = i+1; >> fib(i) = fib(i-1) + fib(i-2);

>> fib fib = 1

>> fib fib = 1

1

2

1

2

3

5

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Ejemplo 2.1: Fibonacci con vectores fibofun.m

function fib = fibofun(n) % El programa calcula los n primeros terminos % de la sucesion de Fibonacci utilizando vectores. fib = [1 1]; for i=3:n fib(i) = fib(i-1) + fib(i-2); end end

>> fibofun(10) ans = 1 1 2

3

>> z = fibofun(1000); >> z(1000)/z(999) ans = 1.6180

5

8

13

21

34

55

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Funciones “vectorizadas” Comando

Uso

arrayfun(@funcion,x)

Eval´ ua funcion en cada elemento del vector x

>> x = 1:7 ans = 1 2

3

4

5

6

7

>> arrayfun(@esprimo,x) ans = 0 1 1 0

1

0

Permiten aumentar la rapidez de ejecuci´ on de una funci´ on Se utilizan los operadores .*, ./ y .∧ en la definici´ on de una funci´ on funvec.m

function y = funvec(x) % Evalua la funcion f(x) = x∧2*sen(x)+1/x en % cada una de las componentes de un vector x y = x.∧2.*sin(x) + 1./x; end >> x = 1:5; >> funvec(x) ans = 1.8415 4.1372

1.6034

-11.8588

-23.7731

1

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.2 (densidad de los n´ umeros primos) Considere la funci´ on π(x) = n´ umero de primos ≤ x para cualquier n´ umero real x. Utilice una versi´ on “vectorizada” de la funci´ on esprimo desarrollada en clase para hallar π(x) y verifique num´ericamente que para valores “grandes” de x, π(x) ≈ x/ ln x, es decir, π(x) l´ım =1 x→∞ x/ ln x Soluci´ on >> n = 10; >> vec = 2:n vec = 2 3 4

>> sum(primos) ans = 4 5

6

7

8

9

10

>> primos = arrayfun(@esprimo,vec);

>> sum(primos)/(n/log(n)) ans = 0.9210

>> primos primos = 1 1

>> n = 1000; >> vec = 2:n; >> primos = arrayfun(@esprimo,vec); >> sum(primos)/(n/log(n)) ans = 1.1605

0

1

0

1

0

0

0

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.2: densidad de los n´ umeros primos l´ım

n→∞

π(n) =1 n/ ln n

>> n = 10; >> vec = 2:n; >> primos = arrayfun(@esprimo,vec);

>> n = 1000; >> vec = 2:n; >> primos = arrayfun(@esprimo,vec);

>> primos primos = 1 1

>> x = vec; >> y = cumsum(primos)/vec*log(vec);

>> vec vec = 2

0

1

0

1

0

0

0

>> plot(x,y) >> grid on 3

4

5

6

7

8

9

10

>> cumsum(primos) vec = 1 2 2 3

3

4

4

4

4

>> cumsum(primos)/vec*log(vec) ans = 0.3339 0.5293 0.6679 0.7754 0.8632 0.9375 1.0018 1.0586 1.1093

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.3: Criba de Erat´ ostenes Ejemplo 2.3 La Criba de Erat´ ostenes es un m´ etodo sistem´ atico para seleccionar (cribar) todos los n´ umeros primos menores que un entero n > 1. Primero se listan todos los n´ umeros naturales desde 2 hasta n y de esa lista se eliminan los n´ umeros que no son primos de la siguiente manera: cuando se encuentra un n´ umero que no ha sido eliminado de la lista, dicho n´ umero se declara primo y se procede a eliminar todos sus m´ ultiplos. Este proceso se repite mientras que el cuadrado del mayor n´ umero declarado como primo no exceda a n. Implemente una funci´ on que genere un vector con todos los primos menores que n por medio de la Criba de Erat´ ostenes.

11 21 31 41

2 12  Z 22 Z  32 Z  42 Z  2

11 21 Z  31 41

3 13 23 33 43

4  Z 14  Z 24  Z 34  Z 44  Z

3 13 23 33 Z  43

5 15 25 35 45

Z 6 16 Z  26 Z  36 Z  46 Z  5

15  Z 25 35 45 Z 

7 17 27 37 47

8 Z  18 Z  28 Z  38 Z  48 Z  7 17 27 Z  37 47

9 19 29 39 49

10  Z 20 Z  30 Z  40 Z  50 Z  9  Z 19 29 39 Z  49

2 11 31 41

43

2 11 31 41

3 13 23

3 13 23 43

5 25  Z 35 Z 

5

7 17 37 47

19 29 49

7 17 37 47

19 29 49 Z 

Vectores en Matlab

Ejemplos con vectores

2 3  4 Z 12 13  14  Z Z 22 23  24 Z  Z 32 Z 33  34  Z  Z 42 43 Z 44  Z 

11 21 Z  31 41

5

8  9 Z6 7   Z Z 16 17  18 19  Z Z 26 Z 27  28 29 Z   Z 36 37 Z 38  39 Z   Z 46 47  48 Z 49 Z  Z 

15  Z 25 Z  35 Z  45 Z 

>> n = 10; i = 2; >> criba = 2:n; primos = []; >> criba criba = 2 3

Matrices en Matlab

10 Z  20  Z 30 Z  40 Z  50 Z 

Ejemplos con matrices

 Z Z  Z  Z 

Referencias

: m´ ultiplos de 2 : m´ ultiplos de 3 : m´ ultiplos de 5 : m´ ultiplos de 7

>> criba = [i criba( rem(criba,i)∼= 0)] criba = 2 3 5 7 9 eratostenes.m

4

5

6

7

8

9

10

>> any(criba == i) ans = 1

for i=1:n if any(criba == i) primos = [primos i]; criba = [i criba( rem(criba,i)∼= 0)]; end end

>> primos = [primos i] primos = 2 >> rem(criba,i) ans = 0 1 0

∼=

function primos = eratostenes(n) % Devuelve los primos menores o iguales que n criba = 2:n; primos = [];

0 end

1

0

1

0

>> criba( rem(criba,i) ans = 3 5 7 9

∼=

0 )

1

0 >> eratostenes(30) ans = 2 3 5 7

11

13

17

19

23

29

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.4 (funci´ on log´ıstica) Para cada r ∈ [0, 4], la funci´ on fr (x) = rx(1 − x),

x ∈ [0, 1]

se denomina funci´ on log´ıstica. Para cada x1 ∈ [0, 1], la sucesi´ on {xn }∞ n=1 definida por xn+1 = f (xn ) se denomina sistema din´ amico discreto definido por fr . Si xn representa el tama˜ no de una poblaci´ on en el a˜ no n, xn+1 representa el tama˜ no de la poblaci´ on en el a˜ no n + 1. Implemente una funci´ on que tenga como argumentos a x1 , r y n y devuelva el vector {x1 , . . . , xn }. Grafique c´ omo evoluciona el sistema para valores distintos de x1 , r y n. Soluci´ on >> x = 0.2; >> r = 1.5; >> n = 8;

>> for i=1:7 y(i+1) = r*y(i)*(1-y(i)); end

>> y = zeros(1,n); >> y(1) = x; >> y y = 0.2000 0 0

>> y y = 0.2000 0.2400 0.2736 0.2981 0.3139 0.3230 0.3280 0.3306 0

0

0

0

0

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Ejemplo 2.4: funci´on log´ıstica logistica.m

function y = logistica(x,r,n) % Devuelve vector con el sistema dinamico % discreto generado por la funcion logistica y = zeros(1,n); y(1) = x;

>> y = logistica(0.2,2.9,100); >> plot(y,’o’) >> grid on

for i=1:n-1 y(i+1) = r*y(i)*(1-y(i)); end end

>> y = logistica(0.4,1.5,100); >> plot(y,’o’) >> grid on

>> y = logistica(0.5,3.5,100); >> plot(y,’o’) >> grid on

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.5: Torres de Han´ oi Ejemplo 2.5 La Torres de Han´ oi es un rompecabezas o juego matem´ atico inventado en 1883 ´ por el matem´ atico franc´ es Edouard Lucas, que consiste de un conjunto de discos de distintos tama˜ nos, enumerados de manera creciente y que se apilan insert´ andose de mayor a menor en una de tres estacas disponibles. El objetivo del juego es mover el conjunto completo de discos a otra estaca, moviendo cada disco a la vez de manera tal que un disco de mayor tama˜ no nunca est´ e sobre un disco de tama˜ no menor.

(a) Inicio

(b) Fin

Reglas Torres de Han´ oi I

S´ olo se puede mover un disco a la vez.

I

Un disco de mayor tama˜ no no puede estar sobre uno de menor tama˜ no.

I

S´ olo se puede desplazar el disco que se encuentre arriba en cada estaca.

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Ejemplo 2.5: Torres de Han´ oi Reglas Torres de Han´ oi I

S´ olo se puede mover un disco a la vez.

I

Un disco de mayor tama˜ no no puede estar sobre uno de menor tama˜ no.

I

S´ olo se puede desplazar el disco que se encuentre arriba en cada estaca.

(c) Inicio

(d) Paso 1

Figura: Soluci´ on con n = 1 discos, n´ umero de pasos: 2n − 1 = 1

(a) Inicio

(b) Paso 1

(c) Paso 2

Figura: Soluci´ on con n = 2 discos, n´ umero de pasos:

(d) Paso 3 2n

−1=3

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Ejemplo 2.5: Torres de Han´ oi Reglas Torres de Han´ oi I

S´ olo se puede mover un disco a la vez.

I

Un disco de mayor tama˜ no no puede estar sobre uno de menor tama˜ no.

I

S´ olo se puede desplazar el disco que se encuentre arriba en cada estaca.

(a) Inicio

(b) Paso 1

(c) Paso 2

(d) Paso 3

(e) Paso 4

(f) Paso 5

(g) Paso 6

(h) Paso 7

Figura: Soluci´ on con n = 3 discos, n´ umero de pasos: 2n − 1 = 7

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.5: Torres de Han´ oi

(a) Inicio

(b) Paso 1

(c) Paso 2

(d) Paso 3

(e) Paso 4

(f) Paso 5

(g) Paso 6

(h) Paso 7

(i) Paso 8

(j) Paso 9

(k) Paso 10

(l) Paso 11

(m) Paso 12

(n) Paso 13

(˜ n) Paso 14

Figura: Soluci´ on con n = 4 discos, n´ umero de pasos:

(o) Paso 15 2n

− 1 = 15

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.5: Torres de Han´ oi Algoritmo Torres de Han´ oi I

Si se tiene n = 1 disco, mover el disco de la estaca (1) a la (3).

I

Si se tienen n > 1 discos, 1 2 3

mover los primeros n − 1 discos de la estaca (1) a la (2), mover el disco restante de la estaca (1) a la (3), mover los primeros n − 1 discos de la estaca (2) a la (3).

hanoi.m

function hanoi(numdiscos, inicial, final) % hanoi(numdiscos, inicial, final) % Resuelve las Torres de Hanoi. "numdiscos" % es la cantidad de discos a mover, "inicial" % es la estaca donde se encuentran los discos % y "final" es la estaca a donde se van a % mover los discos. if numdiscos==1 fprintf(’Mover disco 1 desde la estaca %d hasta la estaca %d \n’, inicial, final); else intermedia = 6-inicial-final; hanoi(numdiscos-1, inicial, intermedia); fprintf(’Mover disco %d desde la estaca %d hasta la estaca %d \n’,numdiscos,inicial,final); hanoi(numdiscos-1, intermedia, final); end end

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 2.5: Torres de Han´ oi

(a) Inicio

(b) Paso 1

(c) Paso 2

Figura: Soluci´ on con n = 2 discos, n´ umero de pasos:

(d) Paso 3 2n

−1=3

hanoi.m

function hanoi(numdiscos, inicial, final) if numdiscos==1 fprintf(’Mover disco 1 desde la estaca %d hasta la estaca %d \n’, inicial, final); else intermedia = 6-inicial-final; hanoi(numdiscos-1, inicial, intermedia); fprintf(’Mover disco %d desde la estaca %d hasta la estaca %d \n’,numdiscos,inicial,final); hanoi(numdiscos-1, intermedia, final); end end >> hanoi(1,1,3) Mover disco 1 desde la estaca 1 hasta la estaca 3 >> hanoi(2,1,3) Mover disco 1 desde la estaca 1 hasta la estaca 2 Mover disco 2 desde la estaca 1 hasta la estaca 3 Mover disco 1 desde la estaca 2 hasta la estaca 3

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Ejemplo 2.5: Torres de Han´ oi

(a) Inicio

(b) Paso 1

(c) Paso 2

(e) Paso 4

(f) Paso 5

(g) Paso 6

Figura: Soluci´ on con n = 3 discos, n´ umero de pasos:

>> hanoi(3,1,3) Mover disco 1 desde Mover disco 2 desde Mover disco 1 desde Mover disco 3 desde Mover disco 1 desde Mover disco 2 desde Mover disco 1 desde

la la la la la la la

estaca estaca estaca estaca estaca estaca estaca

1 1 3 1 2 2 1

hasta hasta hasta hasta hasta hasta hasta

la la la la la la la

estaca estaca estaca estaca estaca estaca estaca

3 2 2 3 1 3 3

(d) Paso 3

(h) Paso 7 2n

−1=7

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Matrices en Matlab Arreglo bidimensional: concepto en programaci´ on an´ alogo al concepto matem´ atico de matriz

La definici´ on de arreglo bidimensional [] puede hacerse desde dos enfoques: Enfoque recursivo: se trata de un arreglo unidimensional en el que cada elemento es a su vez un arreglo unidimensional Enfoque directo: estructura de datos formada por una colecci´ on finita de elementos homog´ eneos, ordenados cada uno de ellos en dos dimensiones y referenciados con un nombre com´ un

El acceso a un elemento de la matriz se realiza mediante el nombre del arreglo (identificador ) y un par de ´ındices que indican la “posici´ on” del elemento

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Representaci´on gr´afica de un arreglo bidimensional Matriz con m filas (horizontales) y n columnas (verticales) ∗

∗ ∗

···

···

···

···

···

···

.. .

.. .

∗ : elemento (1,1) ∗ ∗ : elemento (1,3) ∗ : elemento (2,n-1) ∗ : elemento (3,2) ∗ : elemento (i,j)



∗ : elemento (m,3) .. . ∗

···

.. .

∗ : elemento (m,n)



Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Declaraci´on de arreglos

Declaraci´ on de una matriz: nombre arreglo(filas,columnas)

nombre arreglo: identificador que representa la colecci´ on de elementos filas: constante entera positiva que representa la cantidad de filas columnas: constante entera positiva que representa la cantidad de columnas

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Matrices en Matlab Comando

Uso

[fila 1; ... ;fila m]

Crea una matriz con m filas

A(i,j)

Muestra la entrada de la fila i, columna j de la matriz A

A(i,:)

Muestra la fila i de la matriz A

A(:,j)

Muestra la columna j de la matriz A

A(k:l,:)

Muestra las entradas en todas las columnas entre las filas k y l

A(:,p:q)

Muestra las entradas en todas las filas entre las columnas p y q Muestra las entradas en las filas k hasta l y las columnas p hasta q

A(k:l,p:q)

>> A = [1 2 3; 4 5 6] A = 1 2 3 4 5 6

>> A A = 1 4

>> A(2,1) ans = 4 >> A(1,:) ans = 1 2

>> A(1,3) = -2; A(2,3) = 0;

3

>> A(:,3) A = -2 0

2 5

-2 0

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Matrices en Matlab Comando [fila 1; ... ;fila m]

Uso Crea una matriz con m filas

A(i,j)

Muestra la entrada de la fila i, columna j de la matriz A

A(i,:)

Muestra la fila i de la matriz A

A(:,j)

Muestra la columna j de la matriz A

A(k:l,:)

Muestra las entradas en todas las columnas entre las filas k y l

A(:,p:q)

Muestra las entradas en todas las filas entre las columnas p y q

A(k:l,p:q)

Muestra las entradas en las filas k hasta l y las columnas p hasta q

>> B = [2 3 -1 4 1; 1 -3 0 7 -2; 4 8 3 5 1; 4 3 1 8 5] B = 2 3 -1 4 1 1 -3 0 7 -2 4 8 3 5 1 4 3 1 8 5 >> B(:,2:4) ans = 3 -1 -3 0 8 3 3 1

4 7 5 8

>> B(2:3,2:4) ans = -3 0 8 3

7 5

>> B(2:4,1:3) ans = 1 -3 4 8 4 3

0 3 1

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Operaciones con matrices en Matlab Operaci´ on == + ,.* A’ zeros(m,n) ones(m,n) eye(n) diag(x) magic(n) rand(m,n) size(A) reshape(X,m,n)

Uso Igualdad de matrices (componente por componente) Suma y resta de matrices (componente por componente) Producto de matrices (componente por componente) La matriz transpuesta de A Crea una matriz m×n de ceros (0) Crea una matriz m×n de unos (1) Crea una matriz diagonal n×n con unos en la diagonal Crea una matriz diagonal con las entradas del vector x Crea un cuadrado m´ agico n×n Crea una matriz m×n de n´ umeros pseudo-aleatorios Crea un vector con el n´ umero de filas y columnas de la matriz A Crea una matriz m×n con elementos tomados de la matriz X

>> A = [3 1 4; -2 4 8] A = 3 1 4 -2 4 8

>> A == B ans = 0 1 1 0

>> B = [7 1 0; -2 5 8] B = 7 1 0 -2 5 8

>> A+B ans = 10 -4

0 1

2 9

4 16

>> 2*A ans = 6 -4

2 8

>> A.*B ans = 21 4

1 20

8 16

0 64

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Operaciones con matrices en Matlab Operaci´ on == + ,.* A’ zeros(m,n) ones(m,n) eye(n) diag(x) magic(n) rand(m,n) size(A) reshape(X,m,n)

Uso Igualdad de matrices (componente por componente) Suma y resta de matrices (componente por componente) Producto de matrices (componente por componente) La matriz transpuesta de A Crea una matriz m×n de ceros (0) Crea una matriz m×n de unos (1) Crea una matriz diagonal n×n con unos en la diagonal Crea una matriz diagonal con las entradas del vector x Crea un cuadrado m´ agico n×n Crea una matriz m×n de n´ umeros pseudo-aleatorios Crea un vector con el n´ umero de filas y columnas de la matriz A Crea una matriz m×n con elementos tomados de la matriz X

>> zeros(3,2) ans = 0 0 0 0 0 0

>> rand(3,2) ans = 0.8147 0.6324 0.9134

>> U = ones(2,3) U = 1 1 1 1 1 1

>> eye(2) ans = 1 0 0 1

0.1270 0.9058 0.0975

>> C = magic(3) C = 8 1 6 3 5 7 4 9 2 >> size(U) ans = 2 3

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Operaciones con matrices en Matlab Operaci´ on == + ,.* A’ zeros(m,n) ones(m,n) eye(n) diag(x) magic(n) rand(m,n) size(A) reshape(X,m,n)

Uso Igualdad de matrices (componente por componente) Suma y resta de matrices (componente por componente) Producto de matrices (componente por componente) La matriz transpuesta de A Crea una matriz m×n de ceros (0) Crea una matriz m×n de unos (1) Crea una matriz diagonal n×n con unos en la diagonal Crea una matriz diagonal con las entradas del vector x Crea un cuadrado m´ agico n×n Crea una matriz m×n de n´ umeros pseudo-aleatorios Crea un vector con el n´ umero de filas y columnas de la matriz A Crea una matriz m×n con elementos tomados de la matriz X

>> rand(3,2) - rand(3,2) ans = 0.1135 -0.3565 0.2018 0.1937 -0.0874 0.7628

>> X = diag(x) X = 3 0 0 -1 0 0

>> x = [3 -1 4] x = 3 -1 4

>> t = 1:6 t = 1 2 3

>> M = reshape(t,2,3) M = 1 3 5 2 4 6

0 0 4

>> M’ ans = 4

5

6

1 3 5

2 4 6

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Recorriendo una matriz A de tama˜ no m×n Recorriendo la fila i-´esima de A = [aij ]:

De la primera a la u ´ltima columna for j=1:n % proceso que involucra a A(i,j) end

Recorriendo la columna j-´esima de A = [aij ]:

De la primera a la u ´ltima fila for i=1:m % proceso que involucra a A(i,j) end

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Recorriendo una matriz A de tama˜ no m×n Recorrido de A = [aij ] por filas: for i=1:m for j=1:n % proceso que involucra a A(i,j) end end

Recorrido de A = [aij ] por columnas: for j=1:n for i=1:m % proceso que involucra a A(i,j) end end

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 4.1: cine Ejemplo 4.1 Escriba un programa que almacene en una matriz el n´ umero de personas que ingresan a una sala de cine durante cada uno de los d´ıas de la semana. La matriz debe constar de dos columnas, la primera para los d´ıas de la semana y la segunda para el n´ umero de personas, y siete filas para cada uno de los d´ıas de la semana. El programa debe calcular el promedio de personas que ingresan a la sala. Soluci´ on >> cine = zeros(7,2);

>> cine cine = 0 0 0 0 0 0 0

0 0 0 0 0 0 0

>> for i=1:7 cine(i,1) = i; end >> cine cine = 1 2 3 4 5 6 7

0 0 0 0 0 0 0

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 4.1: cine promediocine.m

% El programa calcula el promedio de personas % que ingresan a una sala de cine. cine = zeros(7,2); cine(:,1) = 1:7; for i=1:7 cine(i,2) = input(’Numero de personas que ingresan: ’); end prom = sum(cine(:,2))/7; fprintf(’El promedio de persona que ingresan a la semana es %g \n’, prom);

>> promediocine Numero de personas que Numero de personas que Numero de personas que Numero de personas que Numero de personas que Numero de personas que Numero de personas que El promedio de persona

ingresan: 20 ingresan: 15 ingresan: 35 ingresan: 42 ingresan: 74 ingresan: 80 ingresan: 95 que ingresan a la semana es 51.5714

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo aut´omata celular “Todo deber´ıa hacerse tan simple como sea posible, pero no mas que eso”. (A. Einstein)

(a)

Hormiga (g´ enero Formica)

(b)

Colonia de hormigas

Figura: ¿principios de auto-organizaci´on en sistemas emergentes?

Aut´ omata celular: modelo matem´ atico de un sistema din´ amico que evoluciona en el tiempo y el espacio de manera discreta El aut´ omata celular est´ a formado por una “malla de celulas” y por “estados” y “reglas” que determinan c´ omo cambian sus estados en el tiempo Permiten modelar formaci´ on de patrones biol´ ogicos basados en interacciones entre c´elulas y el medio Fueron desarrollados por John von Neumann y Stanislaw Ulam como un modelo computacional para fen´ omenos de “auto-reproducci´ on”

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 4.2 (c´elulas vecinas) Considere una matriz A = [aij ] de tama˜ no n × n, tal que cada una de sus entradas es 1 o ´ 0. Cada entrada representa una c´elula que puede estar “viva” (aij = 1) o “muerta” (aij = 0). Cada c´elula tiene c´elulas vecinas adyacentes, horizontal, vertical y diagonalmente. Implemente una funci´ on llamada vecinos(A, i, j, n) que calcule el n´ umero de c´elulas vecinas “vivas” que tiene la c´elula ubicada en la posici´ on (i, j). Soluci´ on 0 1 0 1 0

1 0 1 0 1

0 1 1 0 1

0 0 0 1 0

1 0 0 0 1

0 0 1 0 0

0 0 0 1 0

1 0 0 0 1

1 0 0 0 1

A(i,j): c´elula en la celda (i,j) Las entradas de A son 1’s o 0’s: A(i, j) =

( 1 0

si (i, j) est´ a viva, si (i, j) est´ a muerta.

>> A = randi([0,1],5) A = 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0

Vecinos de A(i, j) = ai,j ai−1,j−1 ai,j−1 ai+1,j−1

ai−1,j ai,j ai+1,j

ai−1,j+1 ai,j+1 ai+1,j+1

1 1 1 0 1

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Ejemplo 4.2: c´elulas vecinas ai−1,j−1 ai,j−1 ai+1,j−1 >> A A = 0 1 0 0 1

0 0 1 0 0

1 1 1 0 0

0 1 1 0 0

1 1 1 0 1

ai−1,j ai,j ai+1,j

ai−1,j+1 ai,j+1 ai+1,j+1

>> m = m + (A(i-1,j) == 1) m = 1

>> m = m + (A(i-1,j+1) == 1) m = 2

>> i=3; j=3; n=5; >> m=0;

>> m = m + (A(i,j-1) == 1) m = 3

>> m = m + (A(i-1,j-1) == 1) m = 0

>> m = m + (A(i,j+1) == 1) m = 4

Referencias

Vectores en Matlab

ai−1,j−1 ai,j−1 ai+1,j−1

Ejemplos con vectores

ai−1,j ai,j ai+1,j

Matrices en Matlab

ai−1,j+1 ai,j+1 ai+1,j+1

Ejemplos con matrices

function m = vecinos(A,i,j,n) % calcula el numero de vecinos % vivos de A(i,j)

% suma a lo largo de la fila i+1 if i1 m = m + (A(i+1,j-1) == 1); end m = m + (A(i+1,j) == 1); if j1 if j>1 m = m + (A(i-1,j-1) == 1); end m = m + (A(i-1,j) == 1); if j1 m = m + (A(i,j-1) == 1); end if j

>> A A = 0 1 0 0 1

0 0 1 0 0

1 1 1 0 0

>> vecinos(A,3,3,5) ans = 4 >> vecinos(A,3,2,5) ans = 3

0 1 1 0 0

1 1 1 0 1

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 4.3 (juego de vida) El juego de la vida es un ejemplo de un aut´ omata celular dise˜ nado por el matem´ atico brit´ anico John H. Conway en 1970, que se “juega” en una malla formada por celdas (“c´ elulas”), cada una de las cuales puede estar o viva (1) o muerta (0). 0 1 0 1 0

1 0 1 0 1

0 1 1 0 1

0 0 0 1 0

1 0 0 0 1

0 0 1 0 0

0 0 0 1 0

1 0 0 0 1

1 0 0 0 1

La malla de c´ elulas evoluciona en el tiempo y cada c´ elula interact´ ua con sus ocho c´ elulas vecinas que se encuentran adyacentes horizontal, vertical y diagonalmente.

En cada paso discreto del tiempo, las c´ elulas cambian su estado as´ı: Una c´ elula viva con menos de 2 vecinas vivas, muere por “soledad”. Una c´ elula viva con m´ as de 3 vecinas vivas, muere por “sobrepoblaci´ on”. Una c´ elula viva con 2 o 3 vecinas vivas, vive en la siguiente generaci´ on. Una c´ elula muerta con exactamente 3 vecinas vivas, vive en la siguiente. La configuraci´ on inicial constituye la primera generaci´ on del sistema; la segunda generaci´ on se crea aplicando simult´ aneamente las reglas arriba enunciadas, a cada una de las c´ elulas de la primera generaci´ on y as´ı sucesivamente. En teor´ıa, el juego de la vida se desarrola en una malla “infinita”; utilizaremos una malla finita en la que las c´ elulas que se encuentra en la primera columna (izquierda) no tienen vecinas a izquierda, las que se encuentran en la primera fila (arriba) no tienen vecinas sobre ellas, etc.

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Ejemplo 4.3: juego de vida Reglas juego de vida I

Una c´ elula viva con menos de 2 vecinas vivas, muere por “soledad”.

I

Una c´ elula viva con m´ as de 3 vecinas vivas, muere por “sobrepoblaci´ on”.

I

Una c´ elula viva con 2 o 3 vecinas vivas, vive en la siguiente generaci´ on.

I

Una c´ elula muerta con exactamente 3 vecinas vivas, vive en la siguiente.

>> n = 5;

>> if m == 2 || m == 3 A(i,j) = 1; else A(i,j) = 0; end

>> A = randi([0,1],n) >> spy(A)

A = 0 0 1 0 1

>> spy(A)

0 1 0 1 0

1 1 1 0 1

0 1 0 1 0

1 0 0 1 1

>> i=2; j=3; >> m = vecinos(A,i,j,n);

>> A(i,j) == 1 ans = 1

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Reglas juego de vida I

Una c´ elula viva con menos de 2 vecinas vivas, muere por “soledad”.

I

Una c´ elula viva con m´ as de 3 vecinas vivas, muere por “sobrepoblaci´ on”.

I

Una c´ elula viva con 2 o 3 vecinas vivas, vive en la siguiente generaci´ on.

I

Una c´ elula muerta con exactamente 3 vecinas vivas, vive en la siguiente.

vida.m

m = vecinos(A,i,j,n); if A(i,j)==1 % para celula (i,j) viva if m == 2 || m == 3 B(i,j) = 1; else B(i,j) = 0; end else % para celula (i,j) muerta if m==3 B(i,j) = 1; else B(i,j) = 0; end end

% Juego de vida de Conway clear all; % Inicializa la primera generacion n = 50; A = randi([0,1],n); seguir = 1; % Ciclo infinito, control-C para detener while seguir spy(A); % Imprime la matriz drawnow; % Actualiza imagen con nueva matriz B = A; % Nueva generacion

end end

for i=1:n for j=1:n

A = B; % La nueva generacion queda en A end

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

El juego de la vida

(a)

Inicio

(b)

Generaci´ on 1

(c)

Generaci´ on 2

(d)

Generaci´ on 3

(d)

Generaci´ on 3

Figura: arreglo cuadrado

(a)

Inicio

(b)

Generaci´ on 1

(c)

Generaci´ on 2

Figura: arreglo oscilante

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

El juego de la vida

(a)

(d)

Inicio

(b)

Generaci´ on 1

(c)

Generaci´ on 2

Generaci´ on 3

(e)

Generaci´ on 4

(f)

Generaci´ on 5

Figura: arreglo que se estabiliza

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

El juego de la vida

(a)

(d)

Inicio

(b)

Generaci´ on 1

(c)

Generaci´ on 2

Generaci´ on 3

(e)

Generaci´ on 4

(f)

Generaci´ on 5

Figura: arreglo peri´ odico

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Bibliograf´ıa I

S. Attaway Matlab: A Practical Introduction to Programming and Problem Solving Butterworth-Heinemann, 2011 L. Blanco Probabilidad Universidad Nacional de Colombia, Primera edici´ on, 2004. J.W. Brown, D.J. Murdoch A First Course in Statistical Programming With R Cambridge University Press, 1th edition , 2008 D. Burton Elementary Number Theory McGraw Hill Higher Education, 5th edition, 2002 O. Cair´ o Metodolog´ıa de la programaci´ on Segunda edici´ on. Alfaomega Grupo Editor, S.A., 2005

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Bibliograf´ıa II

M.A. Criado Programaci´ on en lenguajes estructurados Alfaomega Grupo Editor, S.A. de C.V. Primera Edici´ on, 2006 S. Ghahramani Fundamentals of Probability with Stochastic Processes Pearson Education, Inc., 2005 D.J. Hunter Essentials of Discrete Mathematics Jones & Bartlett Learning; 2 edition, 2010 H.P. Langtangen A Primer on Scientific Programming with Python Springer, 2011 O. Jones, R. Maillardet, A. Robinson Introduction to Scientific Programming and Simulation Using R Chapman and Hall/CRC; 1 edition, 2009

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Bibliograf´ıa III

J. Kiusalaas Numerical Methods in Engineering with Matlab Cambridge University Press, 2 edition, 2009 D.E. Knuth The Art of Computer Programming Volume 1, Fundamental Algorithms Addison Wesley Longman, 1997 S. Lipschutz Schaum’s Outline of Essential Computer Mathematics McGraw-Hill, 1th edition, 1982 Ch.F. Van Loan Introduction to Scientific Computing Prentice-Hall, Inc., 1997 C.B. Moler Numerical Computing with Matlab SIAM, 2004

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Bibliograf´ıa IV H.M. Mora Escobar Introducci´ on a C y a m´etodos num´ericos Universidad Nacional de Colombia (Sede Bogot´ a), 2004 A. Quarteroni, F. Salieri C´ alculo cient´ıfico con Matlab y Octave Springer-Verlag Italia, 2006 S.M. Ross Simulation Elsevier Inc., 2006 R. S´eroul Programming for Mathematicians Springer, 2000 E. Scheinerman C ++ for Mathematicians: An Introduction for Students and Professionals Taylor & Francis Group, LLC, 2006

Referencias

Vectores en Matlab

Ejemplos con vectores

Matrices en Matlab

Ejemplos con matrices

Referencias

Bibliograf´ıa V

A. Shen Algorithms and Programming Springer Undergraduate Texts in Mathematics and Technology, 2010 P. Tymann Schaum’s Outline of Principles of Computer Science McGraw-Hill, 1th edition, 2008

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.