Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Matrices en Matlab
Referencias
Vectores en Matlab
Contenido
Vectores en Matlab
Matrices en Matlab
Referencias
Matrices en Matlab
Referencias
Vectores en Matlab
Matrices en Matlab
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 homogeneos 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
Vectores en Matlab
Matrices en Matlab
Referencias
Vectores en Matlab
Comando
[ ]
m:n
Uso
Genera el vector (, , , )
Genera el vector (m,m+1,...,n)
m:d:n
x(k)
Muestra la k-
esima entrada del vector x
>> x = [1 2 3]
x =
1
2
3
>> x(-2)
>> x(3)
ans =
3
>> [x y]
ans =
1
>> x(2) = -4
x =
1
-4
>> vacio = []
vacio =
[]
-4
-7
-2
Vectores en Matlab
Matrices en Matlab
Referencias
Vectores en Matlab
Comando
[ ]
m:n
Uso
Genera el vector (, , , )
Genera el vector (m,m+1,...,n)
m:d:n
x(k)
Muestra la k-
esima entrada del vector x
>> a = 3:2:9
a =
3 5 7
>> b = 10:-1:3
b =
10 9 8
>> a(:)
ans =
3
5
7
9
7 6
Vectores en Matlab
Matrices en Matlab
Operaci
on
==
.* , ./
+,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.*v
ans =
-1
>> u == v
ans =
0
0
>> 2*u
ans =
2
>> rem(v,u)
ans =
0
1
>> u+1
ans =
2
>> u+v
ans =
0
>> u.v
ans =
1
27
Referencias
Vectores en Matlab
Matrices en Matlab
Referencias
>> x >= y
ans =
0
1
>> x >= 1
ans =
1
1
<
>
<=
>=
Operaci
on
>> rem(fib,2) == 0
ans =
0
0
1
>> fib(rem(fib,2) == 0)
ans =
2
8
Vectores en Matlab
Matrices en Matlab
Operaci
on
&
y l
ogico para vectores
o l
ogico para vectores
negaci
on
>> x
ans =
0
>> t = 0;
>> x & y
ans =
1
1
>> t * sin(1/t) == 0
ans =
0
>> x, y
x =
1
y =
3
>> x && y
>> (t == 0) | (sin(1/t) == 0)
ans =
1
>> x | y
ans =
1
1
>> (t == 0) || (sin(1/t) == 0)
ans =
1
Referencias
Vectores en Matlab
Matrices en Matlab
Referencias
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
-1
>> sqrt(abs(x))
ans =
3
2
1
el
la
la
el
el
el
la
el
el
la
16];
16
>> cos(alfa)
ans =
1.0000 0.5000
0.8660
0.0000
>> cos(alfa)
ans =
0.0000 0.8660
0.5000
1.0000
Vectores en Matlab
Matrices en Matlab
Referencias
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
Vectores en Matlab
Matrices en Matlab
Referencias
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
>> cumsum(x)
ans =
1 3 6 10
15
10
21
28
36
45
55
Vectores en Matlab
Matrices en Matlab
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
Matrices en Matlab
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
10
12
15
Referencias
Vectores en Matlab
Matrices en Matlab
>> x
ans =
1
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
>> any(x == 8)
ans =
1
10
12
15
Referencias
Vectores en Matlab
Matrices en Matlab
Recorriendo un arreglo
Referencias
Vectores en Matlab
Matrices en Matlab
Referencias
Ejercicios
Vectores en Matlab
Matrices en Matlab
Referencias
>> 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
Vectores en Matlab
Matrices en Matlab
>> fibofun(10)
ans =
1
1
2
>> z = fibofun(1000);
>> z(1000)/z(999)
ans =
1.6180
13
21
34
55
Referencias
Vectores en Matlab
Matrices en Matlab
Referencias
Funciones vectorizadas
Comando
Uso
arrayfun(@funcion,x)
Eval
ua funcion en cada elemento del vector x
>> x = 1:7
ans =
1
2
>> arrayfun(@esprimo,x)
ans =
0
1
1
0
function y = funvec(x)
% Evalua la funcion f(x) = x2*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
Vectores en Matlab
Matrices en Matlab
Referencias
>> sum(primos)
ans =
4
5
10
>> 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
Vectores en Matlab
Matrices en Matlab
Referencias
(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
>> plot(x,y)
>> grid on
3
10
>> cumsum(primos)
vec =
1 2 2 3
>> 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
Matrices en Matlab
Referencias
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
7
17
37
47
19
29
49
7
17
37
47
19
29
49
Z
Vectores en Matlab
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
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
Z
Z
Z
Z
Referencias
: m
ultiplos de 2
: m
ultiplos de 3
: m
ultiplos de 5
: m
ultiplos de 7
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
0
end
0 )
0
>> eratostenes(30)
ans =
2 3 5 7
11
13
17
19
23
29
Vectores en Matlab
Matrices en Matlab
Referencias
x [0, 1]
se denomina funci
on logstica. 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;
>> 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
Vectores en Matlab
Matrices en Matlab
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
Matrices en Matlab
Referencias
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
S
olo se puede mover un disco a la vez.
S
olo se puede desplazar el disco que se encuentre arriba en cada estaca.
Vectores en Matlab
Matrices en Matlab
S
olo se puede mover un disco a la vez.
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
Matrices en Matlab
S
olo se puede mover un disco a la vez.
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
Matrices en Matlab
Referencias
(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
Matrices en Matlab
Referencias
hanoi.m
Vectores en Matlab
Matrices en Matlab
Referencias
(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
Vectores en Matlab
Matrices en Matlab
(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
Matrices en Matlab
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
Vectores en Matlab
Matrices en Matlab
Referencias
..
.
..
.
: 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
Matrices en Matlab
Referencias
Declaracion de arreglos
Declaraci
on de una matriz:
nombre arreglo(filas,columnas)
Vectores en Matlab
Matrices en Matlab
Referencias
Matrices en Matlab
Comando
Uso
A(i,j)
A(i,:)
A(:,j)
A(k:l,:)
A(:,p: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(:,3)
A =
-2
0
2
5
-2
0
Vectores en Matlab
Matrices en Matlab
Referencias
Matrices en Matlab
Comando
[fila 1; ... ;fila m]
Uso
Crea una matriz con m filas
A(i,j)
A(i,:)
A(:,j)
A(k:l,:)
A(:,p:q)
A(k:l,p: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
Matrices en Matlab
Referencias
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 mn de ceros (0)
Crea una matriz mn de unos (1)
Crea una matriz diagonal nn con unos en la diagonal
Crea una matriz diagonal con las entradas del vector x
Crea un cuadrado m
agico nn
Crea una matriz mn de n
umeros pseudo-aleatorios
Crea un vector con el n
umero de filas y columnas de la matriz A
Crea una matriz mn 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
Matrices en Matlab
Referencias
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 mn de ceros (0)
Crea una matriz mn de unos (1)
Crea una matriz diagonal nn con unos en la diagonal
Crea una matriz diagonal con las entradas del vector x
Crea un cuadrado m
agico nn
Crea una matriz mn de n
umeros pseudo-aleatorios
Crea un vector con el n
umero de filas y columnas de la matriz A
Crea una matriz mn 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
Matrices en Matlab
Referencias
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 mn de ceros (0)
Crea una matriz mn de unos (1)
Crea una matriz diagonal nn con unos en la diagonal
Crea una matriz diagonal con las entradas del vector x
Crea un cuadrado m
agico nn
Crea una matriz mn de n
umeros pseudo-aleatorios
Crea un vector con el n
umero de filas y columnas de la matriz A
Crea una matriz mn con elementos tomados de la matriz X
>> 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
1
3
5
2
4
6
Vectores en Matlab
Matrices en Matlab
Referencias
De la primera a la u
ltima columna
for j=1:n
% proceso que involucra a A(i,j)
end
De la primera a la u
ltima fila
for i=1:m
% proceso que involucra a A(i,j)
end
Vectores en Matlab
Matrices en Matlab
Referencias
Vectores en Matlab
Matrices en Matlab
Referencias
>> cine
cine =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Vectores en Matlab
Matrices en Matlab
Referencias
>> 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
Matrices en Matlab
Referencias
(a)
Hormiga (g
enero Formica)
(b)
Colonia de hormigas
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 celulas 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
Matrices en Matlab
Referencias
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
(
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
ai1,j
ai,j
ai+1,j
ai1,j+1
ai,j+1
ai+1,j+1
1
1
1
0
1
Vectores en Matlab
Matrices en Matlab
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
ai1,j
ai,j
ai+1,j
ai1,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
>> 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
ai1,j1
ai,j1
ai+1,j1
ai1,j
ai,j
ai+1,j
Matrices en Matlab
ai1,j+1
ai,j+1
ai+1,j+1
function m = vecinos(A,i,j,n)
% calcula el numero de vecinos
% vivos de A(i,j)
m = 0;
end
vecinos.m
>> 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
Matrices en Matlab
Referencias
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.
Vectores en Matlab
Matrices en Matlab
Referencias
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.
>> 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
>> A(i,j) == 1
ans =
1
Vectores en Matlab
Matrices en Matlab
Referencias
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.
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
end
end
for i=1:n
for j=1:n
Vectores en Matlab
Matrices en Matlab
Referencias
El juego de la vida
(a)
Inicio
(b)
Generaci
on 1
(c)
Generaci
on 2
(d)
Generaci
on 3
(d)
Generaci
on 3
(a)
Inicio
(b)
Generaci
on 1
(c)
Generaci
on 2
Vectores en Matlab
Matrices en Matlab
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
Referencias
Vectores en Matlab
Matrices en Matlab
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
Referencias
Vectores en Matlab
Matrices en Matlab
Bibliografa 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
Metodologa de la programaci
on
Segunda edici
on. Alfaomega Grupo Editor, S.A., 2005
Referencias
Vectores en Matlab
Matrices en Matlab
Bibliografa 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
Matrices en Matlab
Bibliografa 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
Schaums 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
Matrices en Matlab
Bibliografa IV
H.M. Mora Escobar
Introducci
on a C y a metodos numericos
Universidad Nacional de Colombia (Sede Bogot
a), 2004
A. Quarteroni, F. Salieri
C
alculo cientfico con Matlab y Octave
Springer-Verlag Italia, 2006
S.M. Ross
Simulation
Elsevier Inc., 2006
R. Seroul
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
Matrices en Matlab
Referencias
Bibliografa V
A. Shen
Algorithms and Programming
Springer Undergraduate Texts in Mathematics and Technology, 2010
P. Tymann
Schaums Outline of Principles of Computer Science
McGraw-Hill, 1th edition, 2008