Facultad de Ciencias

Anuncio
Unidad I
Fundamentos de Algebra Matricial
Parte II
Dra. Ruth M. Aguilar Ponce
Facultad de Ciencias
Departamento de Electrónica
Propedeutico 2008
Facultad de Ciencias
1
Nociones de Calculo Matricial
• Vector Tangente a una curva
⎛ ∂x1 ⎞
⎜
⎟
⎜ ∂t ⎟
v
∂x (t ) ⎜ ∂x2 ⎟
= ⎜ ∂t ⎟
∂t
⎜ M ⎟
⎜ ∂xn ⎟
⎜
⎟
⎝ ∂t ⎠
r
x (t ) = ( x1 (t ) L xn (t ));
• Gradiente de una función escalar
∂f ⎛ ∂f
∇f ( x ) = v = ⎜⎜
∂x ⎝ ∂x1
Propedeutico 2008
∂f
∂x2
Facultad de Ciencias
∂f ⎞
⎟⎟
L
∂xn ⎠
2
Nociones de Calculo Matricial
v r
f (x )
• Jacobiano
de
una
función
vectorial
r
v
donde x es de dimensión m y f es de
dimensión n
r
∂f
r
∂x
Propedeutico 2008
⎛ ∂f1
⎜
⎜ ∂x1
⎜ ∂f 2
= ⎜ ∂x1
⎜
⎜ M
⎜ ∂f n
⎜ ∂x
⎝ 1
∂f1
∂x2
∂f 2
∂x2
M
∂f n
∂x2
Facultad de Ciencias
L
L
O
K
∂f1 ⎞
⎟
∂xm ⎟
∂f 2 ⎟
∂xm ⎟
⎟
M ⎟
∂f n ⎟
∂xm ⎟⎠
3
Hessiano
• El Hessiano es el gradiente de segundo
orden de una función escalar
r
r
∇ f ( x ) = ∇(∇f ( x ))
2
Propedeutico 2008
∂f ⎞
⎟⎟
K
∂xn ⎠
∂ ⎛ ∂f
= r ⎜⎜
∂x ⎝ ∂x1
∂f
∂x2
⎛ ∂f
⎜
2
x
∂
1
⎜
⎜ ∂f
= ⎜ ∂x2 ∂x1
⎜
⎜ M
⎜ ∂f
⎜ ∂x ∂x
⎝ n 1
∂f
∂x1∂x2
∂f
∂x22
M
∂f
∂xn ∂x2
Facultad de Ciencias
L
L
O
L
∂f ⎞
⎟
∂x1∂xn ⎟
∂f ⎟
∂x2 ∂xn ⎟
⎟
M ⎟
∂f ⎟
∂xn2 ⎟⎠
4
Nociones de Calculo Matricial
• Derivada de una matriz
⎛ ∂f11
⎜
⎜ ∂t
∂F (t ) ⎜ ∂f 21
= ⎜ ∂t
∂t
⎜ M
⎜ ∂f m1
⎜
⎝ ∂t
∂f12
∂t
∂f 22
∂t
M
∂f m 2
∂t
∂f1n ⎞
⎟
∂t ⎟
∂f 2 n ⎟
L
∂t ⎟
O
M ⎟
∂f mn ⎟
L
⎟
∂t ⎠
L
• Gradiente de una función escalar donde X es una
matriz de m × n.
∂f
∂f ⎞
⎛ ∂f
⎜
⎜ ∂X 11
⎜ ∂f
∂f ( X ) ⎜
= ∂X 12
⎜
∂X
⎜ M
⎜ ∂f
⎜ ∂X
⎝ 1n
Propedeutico 2008
∂X 21
∂f
∂X 22
M
∂f
∂X 2 n
Facultad de Ciencias
⎟
∂X m1 ⎟
∂f ⎟
L
∂X m 2 ⎟
⎟
O
M ⎟
∂f ⎟
L
∂X nm ⎟⎠
L
5
MATLAB
• Matlab (Matrix laboratory) es un sistema interactivo de
software para computo numérico y graficación.
• Como su nombre lo sugiere, Matlab es especialmente
diseñado para computo matricial.
• Además, Matlab cuenta con una gran variedad de
capacidades graficas y puede ser extendido a través de
programas escritos en su propio lenguaje de programación.
• Matlab cuenta con una librería de funciones para resolver
problemas tales como factorización de matrices, computo
de eigenvalores y eigenvectores, etc.
• Matlab esta diseñado para resolver problemas numéricos,
es decir aritmética de precisión finita.
Propedeutico 2008
Facultad de Ciencias
6
Matlab
• En Matlab se pueden definir matrices escribiendo
sus elementos entre corchetes.
• La coma separa los elementos en columnas, y el
punto y coma los separa en renglones.
• Ejemplo: >> A = [1,2,3;4,5,6]; asigna estos
valores a la matriz A.
⎛ 1 2 3⎞
⎟⎟
A = ⎜⎜
⎝ 4 5 6⎠
Propedeutico 2008
Facultad de Ciencias
7
Referencia a los elementos de una matriz
• A(i,j) hace referencia al elemento ij de la matriz A
>> A(2,2)
⎛ 1 2 3⎞
⎟⎟
A = ⎜⎜
ans = 5
⎝ 4 5 6⎠
• A(i,:) hace referencia a la renglón i de A
>> A(1,:)
ans = 1 2 3
• A(:,j) hace referencia a la columna j de A
>> A(:,2)
ans =
2
5
• A(r:s,k:l) hace referencia a la submatriz
>> A(1:2,1:2)
ans =
Propedeutico 2008
1
4
Facultad de Ciencias
2
5
8
Definición de Matrices
• Una matriz identidad de n × n se genera con
>> I = eye(n);
• Una matriz nula de m × n se genera con
>> A = zeros(m,n);
>>A = zeros(m)
• Una matriz de m × n cuyos elementos son igual a
uno se genera con
>> A = ones(m,n);
• Una matriz diagonal de n × n
>> A = diag([x1,x2,..,xn]);
Propedeutico 2008
Facultad de Ciencias
9
Definición de Matrices
• Una matriz triangular superior en base a una matriz A
>> B = triu(A);
• Una matriz triangular inferior en base a una matriz A
>> B = tril(A);
• Una matriz de m × n cuyos elementos son números
aleatorios entre cero y uno se genera con
>> A = rand(m,n);
• Una matriz de m × n cuyos elementos son números
aleatorios normalmente distribuidos se genera con
>> A = randn(m,n);
Propedeutico 2008
Facultad de Ciencias
10
Operaciones Matriciales
• Suma y resta de Matrices
>> C = A+B;
>> C = A-B;
• Multiplicación por un escalar
>> B = c*A;
• Multiplicación de matrices
>> C = A*B;
• Multiplicación elemento por elemento
>> C = A.*B;
• Transpuesta de una matriz
>> A = A’;
Propedeutico 2008
Facultad de Ciencias
11
Funciones
• Inversa
>> inv(A)
• Determinante
>> det(A)
• Traza
>> trace(A)
Propedeutico 2008
• Rango
>> rank(A)
• Tamaño
>> size(A)
• Suma
>> sum(A,dim)
Facultad de Ciencias
12
Creando archivos .m
• Archivos file.m son archivos de texto que Matlab
usa para definir funciones o scripts.
• Un script es una secuencia de comandos que se
usan frecuentemente y pueden ser guardados en
un archivo para no ser reescritos.
• Las funciones realizan operaciones sobre los
valores de entrada y regresan estos valores ya
procesados
Propedeutico 2008
Facultad de Ciencias
13
Funciones
• En Matlab una función se define en un
archivo .m que lleva el nombre de la función.
• Al inicio del archivo se debe incluir la
definición de la función:
– function [out1, out2] = myfunction(in1,in2)
• La función debe ser guardada en un archivo
con el mismo nombre de la función
myfunction.m
Propedeutico 2008
Facultad de Ciencias
14
Funciones
Nombre de la función
Palabra reservada
Parámetros de salida
Parámetros de entrada
function [out1, out2] = Name(in1,in2)
% Descripción de la función
% parámetros de entrada
Documentación
% parámetros de salida
Standard
% Nombre del autor
% Fecha de elaboración
if nargin < 2
display(‘Error: faltan parametros’)
else
out1 = in1 * in2;
out2 = my_subfunction(in2+in1);
% -----------------------function out = my_subfunction(in)
Cuerpo de la
función
Subfunción
Propedeutico 2008
Facultad de Ciencias
15
Ejemplos de funciones
function C = mult(A)
r = rank(A);
C = A * A’;
• La función mult regresa
la multiplicación de A por
su transpuesta
function [V,D,r]=properties(A)
% Esta función encuentra los
% eigenvalores, eigenvectores
% y rango de A, dode A es una
% matriz cuadrada
[m,n]=size(A);
if m!=n
display(‘Error: La matriz
debe ser cuadrada’);
else
r = rank(A);
[V,D] = eig(A);
end
•
• La variable r no es
visible fuera de la
función
Propedeutico 2008
•
% es usado para introducir
comentarios.
Para obtener todos los parámetros de
salida se debe escribir
[V,D,r]=properties(A)
Facultad de Ciencias
16
Diario
• El comando >>diary(‘file.txt’) registra todo
lo echo en la ventana de comando de Matlab, y
guardo los comandos y resultados en un archivo de
texto con el nombre file.txt
• Para terminar debes escribir >> diary off
• >> diary on comienza a registrar los comandos
nuevamente. Sin embargo no se guardaran al
archivo hasta escribir el comando
>>diary(‘file.txt’)
Propedeutico 2008
Facultad de Ciencias
17
Guardando tus variables
• El comando >>whos despliega todas las
variables activas en en la ventana de
comando de Matlab
• Para guardar todas las variable reportadas
por whos, usa el comando >>save ‘file’
• Si requieres recobrar los valores de esas
variables posteriormente usa el comando
>>load ‘file’
Propedeutico 2008
Facultad de Ciencias
18
Estructuras de Control
if condition
statement1
else
statement2
end
Propedeutico 2008
SWITCH switch_expr
CASE case_expr,
statement,...,statement
CASE {exp1, expr2, ...}
statement,...,statement
...
OTHERWISE,
statement,...,statement
END
Facultad de Ciencias
19
Ciclos
while condition
statement_1;
...
statement_n;
end
Propedeutico 2008
for i=lim1:step:lim2
statement_1;
...
statement_n;
end
Facultad de Ciencias
20
Descargar