Professional Documents
Culture Documents
matematica
Curso: Modelizacion
de sistemas
computacional
Metodologa para su implementacion
Herramientas basicas
I
Alejandro D. Otero (aotero@fi.uba.ar)
Facultades de Ciencias Exactas y Naturales e Ingeniera, UBA
CONICET
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
1 / 20
Matlab Basico
Software de calculo
numerico
interactiva: consola de comandos
ejecucion
de programas:
ejecucion
funciones
scripts
Herramientas de Algebra
lineal
. . . de Calculo
. . . Interpolacion
. . . Optimizacion
...
Toolboxes de expansion
interpretado:
Lenguaje de programacion
Matlab
Octave
SciLab
Por que?
Una plataforma comun
donde desarrollar el curso
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
2 / 20
Matlab Basico
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
3 / 20
Matlab Basico
Consola de comandos
Ventana de variables en memora (Workspace)
Navegador de directorios
Historial de comandos
Editor
Ventana de figuras
Ayuda
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
4 / 20
Matlab Basico
Operaciones basicas
por lnea de comandos:
>> 2 + 2
ans =
4
>> 1/(1 - 2*2)
previa a la asignacion:
complejos
ans =
-0.3333
>> b = sin(a)
>> ans
b =
0.8660
ans =
-0.3333
>> a = 2/3*pi
c =
1.0000
a =
2.0944
y simulacion
matematica
Modelizacion
de sistemas
5 / 20
Matlab Basico
Aritmetica
finita y errores numericos
en aritmetica
Representacion
de punto flotante de doble precision
s : bit de signo
e = [ e1
f = [ f1
f3
...
f < 252
Los numeros
representables tienen la forma:
(1)s 2(e1023) (1 + f )
Consecuencias
Vacos entre numeros
representables. Distancia entre numeros?
eps
Numeros
reales no representables errores
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
6 / 20
Matlab Basico
Aritmetica
finita y errores numericos
Ejemplo 2
Ejemplo 1
>>
>>
>>
>>
>>
>>
a = 2^100
c = 2^47
b = a + c
format long, a, b
a == b
eps(a)
Donde
prestar atencion?
de numeros
Comparacion
en punto flotante (cuidado con el ==)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
7 / 20
Matlab Basico
Tipos de datos
Arreglos multidimensionales
Cadenas de texto: string
Estructuras y cells: arreglos de arreglos
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
8 / 20
Matlab Basico
y asignacion
de variables
Definicion
previa a la asignacion
>> c = [1;2;3]
>> e = [c d]
>> d = [1 2 3;4 5 6;7 8 9]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
9 / 20
Matlab Basico
y asignacion
de variables
Definicion
previa a la asignacion
>> d = [[1;4;7],[2;5;8],[3;6;9]]
1
>> c = [1;2;3]
>> e = [c d]
>> d = [1 2 3;4 5 6;7 8 9]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
9 / 20
Matlab Basico
y asignacion
de variables
Definicion
previa a la asignacion
>> d = [[1;4;7],[2;5;8],[3;6;9]]
1
>> c = [1;2;3]
c =
1
2
3
>> e = [c d]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
9 / 20
Matlab Basico
y asignacion
de variables
Definicion
previa a la asignacion
>> d = [[1;4;7],[2;5;8],[3;6;9]]
1
>> c = [1;2;3]
c =
1
2
3
>> e = [c d]
2
5
8
3
6
9
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
9 / 20
Matlab Basico
y asignacion
de variables
Definicion
previa a la asignacion
>> d = [[1;4;7],[2;5;8],[3;6;9]]
1
5
d =
>> c = [1;2;3]
1
4
7
c =
1
2
3
2
5
8
3
6
9
>> e = [c d]
2
5
8
3
6
9
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
9 / 20
Matlab Basico
y asignacion
de variables
Definicion
previa a la asignacion
>> d = [[1;4;7],[2;5;8],[3;6;9]]
1
5
d =
>> c = [1;2;3]
1
4
7
c =
1
2
3
3
6
9
>> e = [c d]
2
5
8
2
5
8
3
6
9
A. Otero (UBACONICET)
e =
1
2
3
1
4
7
y simulacion
matematica
Modelizacion
de sistemas
2
5
8
3
6
9
9 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
>> a = 1:5
>> a(4)
>> b = 0:0.5:1.5
>> a(end,end)
>> d = 0:0.2:0.7
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
>> a(4)
>> b = 0:0.5:1.5
>> a(end,end)
>> d = 0:0.2:0.7
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
>> a(4)
>> b = 0:0.5:1.5
ans =
2
>> a([1 3],2)
>> c = 5:-1:1
>> a(end,end)
>> d = 0:0.2:0.7
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
>> a(4)
>> b = 0:0.5:1.5
ans =
2
>> a([1 3],2)
>> c = 5:-1:1
ans =
2
8
>> a(end,end)
>> d = 0:0.2:0.7
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
>> a(4)
>> b = 0:0.5:1.5
ans =
2
>> a([1 3],2)
>> c = 5:-1:1
ans =
2
8
>> a(end,end)
>> d = 0:0.2:0.7
ans =
9
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
a =
>> a(4)
>> b = 0:0.5:1.5
ans =
2
>> a([1 3],2)
>> c = 5:-1:1
ans =
2
8
>> a(end,end)
>> d = 0:0.2:0.7
ans =
9
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
a =
1
>> a(4)
>> b = 0:0.5:1.5
ans =
2
b =
>> a([1 3],2)
0.5000
1.0000
1.5000
>> c = 5:-1:1
ans =
2
8
>> a(end,end)
>> d = 0:0.2:0.7
ans =
9
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
a =
1
>> a(4)
>> b = 0:0.5:1.5
ans =
2
b =
0
0.5000
1.0000
1.5000
>> c = 5:-1:1
ans =
2
8
c =
5
>> a(end,end)
>> d = 0:0.2:0.7
ans =
9
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
10 / 20
Matlab Basico
y asignacion
de variables (2)
Definicion
Indexacion
Operador :
>> a(2,3)
de una secuencia
Definicion
ans =
>> a = 1:5
6
a =
1
>> a(4)
>> b = 0:0.5:1.5
ans =
2
b =
0
0.5000
1.0000
1.5000
>> c = 5:-1:1
ans =
2
8
c =
5
>> a(end,end)
>> d = 0:0.2:0.7
ans =
9
d =
0
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
0.2000
0.4000
0.6000
10 / 20
Matlab Basico
y asignacion
de variables (3)
Definicion
Operador :
de elementos en las matrices
Indexacion
>> a = [1 2 3;4 5 6;7 8 9]
>> a(:,1)
>> a(1:2,2:3)
>> a(2,:)
>> a(:)
>> a(2,1:2:3)
>> a(2,2:3)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
11 / 20
Matlab Basico
y asignacion
de variables (3)
Definicion
Operador :
de elementos en las matrices
Indexacion
>> a = [1 2 3;4 5 6;7 8 9]
>> a(:,1)
>> a(1:2,2:3)
ans =
1
4
7
>> a(2,:)
>> a(:)
>> a(2,1:2:3)
>> a(2,2:3)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
11 / 20
Matlab Basico
y asignacion
de variables (3)
Definicion
Operador :
de elementos en las matrices
Indexacion
>> a = [1 2 3;4 5 6;7 8 9]
>> a(:,1)
>> a(1:2,2:3)
ans =
1
4
7
>> a(2,:)
>> a(:)
ans =
4
>> a(2,1:2:3)
>> a(2,2:3)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
11 / 20
Matlab Basico
y asignacion
de variables (3)
Definicion
Operador :
de elementos en las matrices
Indexacion
>> a = [1 2 3;4 5 6;7 8 9]
>> a(:,1)
>> a(1:2,2:3)
ans =
1
4
7
>> a(2,:)
>> a(:)
ans =
4
>> a(2,1:2:3)
ans =
4
>> a(2,2:3)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
11 / 20
Matlab Basico
y asignacion
de variables (3)
Definicion
Operador :
de elementos en las matrices
Indexacion
>> a = [1 2 3;4 5 6;7 8 9]
>> a(:,1)
>> a(1:2,2:3)
ans =
1
4
7
>> a(2,:)
>> a(:)
ans =
4
>> a(2,1:2:3)
ans =
4
>> a(2,2:3)
ans =
5
6
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
11 / 20
Matlab Basico
y asignacion
de variables (3)
Definicion
Operador :
de elementos en las matrices
Indexacion
>> a = [1 2 3;4 5 6;7 8 9]
>> a(:,1)
>> a(1:2,2:3)
ans =
1
4
7
ans =
2
5
>> a(2,:)
3
6
>> a(:)
ans =
4
>> a(2,1:2:3)
ans =
4
>> a(2,2:3)
ans =
5
6
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
11 / 20
Matlab Basico
y asignacion
de variables (3)
Definicion
Operador :
de elementos en las matrices
Indexacion
>> a = [1 2 3;4 5 6;7 8 9]
>> a(:,1)
>> a(1:2,2:3)
ans =
1
4
7
ans =
2
5
>> a(2,:)
3
6
>> a(:)
ans =
ans =
4
>> a(2,1:2:3)
ans =
4
>> a(2,2:3)
1
4
7
2
5
8
3
6
9
ans =
5
6
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
11 / 20
Matlab Basico
>> a(:)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
12 / 20
Matlab Basico
2
5
3
6
>> a(:)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
12 / 20
Matlab Basico
2
5
3
6
>> a(:)
ans =
1
4
2
5
3
6
>> reshape(a,3,2)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
12 / 20
Matlab Basico
2
5
3
6
>> a([1 2 1 2 2],:)
>> a(:)
ans =
1
4
2
5
3
6
>> reshape(a,3,2)
ans =
1
4
2
5
3
6
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
12 / 20
Matlab Basico
2
5
3
6
ans =
1
2
3
4
5
6
>> a(:)
ans =
1
4
2
5
3
6
>> reshape(a,3,2)
ans =
1
4
2
5
3
6
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
12 / 20
Matlab Basico
ans =
1
2
3
a =
1
4
2
5
3
6
4
5
6
>> a(:)
ans =
ans =
1
4
1
4
4
1
4
2
5
3
6
2
5
2
5
5
3
6
3
6
6
>> reshape(a,3,2)
ans =
1
4
2
5
3
6
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
12 / 20
Matlab Basico
ans =
1
2
3
a =
1
4
2
5
3
6
4
5
6
>> a(:)
ans =
ans =
1
4
1
4
4
1
4
2
5
3
6
3
6
3
6
6
>> reshape(a,3,2)
ans =
ans =
1
4
2
2
5
2
5
5
5
3
6
A. Otero (UBACONICET)
3
6
2
5
1
4
4
1
5
2
6
3
ans =
y simulacion
matematica
Modelizacion
de sistemas
12 / 20
Matlab Basico
Arreglos especiales
eye: matriz identidad
>> I1 = eye(3)
>> I2 = eye(3,5)
zeros: matriz de ceros
>> Ceros = zeros(4)
ones: matriz de unos
>> Unos = ones(2)
rand: matriz de numeros
aleatorios
>> A = rand(2)
>> V = rand(1,4)
diag: diagonal de una matriz y matrices diagonales y banda
>> a = [1 2 3;4 5 6;7 8 9]
>> diag(a)
>> diag(1:5)
linspace: vector equiespaciado
>> c = linspace(0,1,12)
linspace: vector equiespaciado logartmicamente
>> c = logspace(0,1,12)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
13 / 20
Matlab Basico
Operadores
Operadores relacionales
Operadores aritmeticos
+ Suma
- Resta
.* Multiplicacion
a der
./ Division
a izq
.\ Division
. Potencia
* Mult. matrices
/ Div. der matrices
\ Div. izq matrices
Potencia matrices
< Menor
<= Menor o igual
> Mayor
>= Mayor o igual
== Igual
~= Distinto
Operadores logicos
& y
o
no
any alguno
all todos
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
14 / 20
Matlab Basico
Funciones
Funciones sobre vectores
Funciones sobre escalares
abs
cos, cosd
sin, sind
exp
log
log10
tan, tand
sqrt
sign
floor
de los arreglos
Tamano
de la mayor dimension
length: tamano
round
ndims: numero
de dimensiones
ceil
numel: numero
de elementos
de cada dimension
size: tamano
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
15 / 20
Matlab Basico
de Cholesky
chol: factorizacion
en la
cond: numero
de condicion
norma 2
det: determinante
eig: autovalores y autovectores
en valores
svd: descomposicion
singulares
QR
qr: factorizacion
de sistemas de ecuaciones
Resolucion
adecuada, entonces:
Si A es una matriz inversible y b es un vector columna de dimension
x = A\b = inv(A) * b
de A x = b y
es la solucion
x = b/A = b * inv(A)
de x A = b
es la solucion
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
16 / 20
Matlab Basico
Arreglos multidimensionales
de 2 dimensiones
Matlab extiende la sintaxis
naturalmente a mas
funciona analogamente
a la coma (,) y al punto y coma (;) utilizados en 2 dimensiones
>> A = cat(3, [1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5],...
[6 4 7; 6 8 5; 5 4 3])
>> A(1,:,:)
>> A(:)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
17 / 20
Matlab Basico
Arreglos multidimensionales
de 2 dimensiones
Matlab extiende la sintaxis
naturalmente a mas
funciona analogamente
a la coma (,) y al punto y coma (;) utilizados en 2 dimensiones
>> A = cat(3, [1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5],...
[6 4 7; 6 8 5; 5 4 3])
>> A(1,:,:)
ans(:,:,1) =
1
2
ans(:,:,2) =
0
3
ans(:,:,3) =
6
4
>> A(:)
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
17 / 20
Matlab Basico
A = [ 0
0
0
S = sparse(A)
B = full(S)
whos
A. Otero (UBACONICET)
5; 0
0; 1
y simulacion
matematica
Modelizacion
de sistemas
0; 0
0]
18 / 20
Matlab Basico
A = [ 0
0
0
S = sparse(A)
B = full(S)
whos
5; 0
0; 1
0; 0
0]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
18 / 20
Matlab Basico
A = [ 0
0
0
S = sparse(A)
B = full(S)
whos
5; 0
0; 1
0; 0
0]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
18 / 20
Matlab Basico
A = [ 0
0
0
S = sparse(A)
B = full(S)
whos
5; 0
0; 1
0; 0
0]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
18 / 20
Matlab Basico
A = [ 0
0
0
S = sparse(A)
B = full(S)
whos
5; 0
0; 1
0; 0
0]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
18 / 20
Matlab Basico
A = [ 0
0
0
S = sparse(A)
B = full(S)
whos
5; 0
0; 1
0; 0
0]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
18 / 20
Matlab Basico
A = [ 0
0
0
S = sparse(A)
B = full(S)
whos
5; 0
0; 1
0; 0
0]
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
18 / 20
Matlab Basico
Entrada / Salida
save
load
File > ImportData
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
19 / 20
Matlab Basico
Preguntas?
Dudas?
Crticas?
Amenazas?
A. Otero (UBACONICET)
y simulacion
matematica
Modelizacion
de sistemas
20 / 20