unidad i fundamentos de algebra matricial
TRANSCRIPT
Propedeutico 2008 Facultad de Ciencias 1
Unidad IFundamentos de Algebra Matricial
Parte II
Dra. Ruth M. Aguilar PonceFacultad de Ciencias
Departamento de Electrónica
Propedeutico 2008 Facultad de Ciencias 2
Nociones de Calculo Matricial
• Vector Tangente a una curva
• Gradiente de una función escalar
( ) ( ) ( )( ) ( )
⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∂∂
∂∂∂∂
=∂∂
=
tx
txtx
ttxtxtxtx
n
n
M
vL
r 2
1
1 ;
( ) ⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
∂∂
∂∂
=∂∂
=∇nxf
xf
xf
xfxf Lv
21
Propedeutico 2008 Facultad de Ciencias 3
Nociones de Calculo Matricial
• Jacobiano de una función vectorial donde es de dimensión m y es de dimensión n
⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
=∂∂
m
nnn
m
m
xf
xf
xf
xf
xf
xf
xf
xf
xf
xf
K
MOMM
L
L
r
r
21
2
2
2
1
2
1
2
1
1
1
( )xf rv
fvxr
Propedeutico 2008 Facultad de Ciencias 4
Hessiano
• El Hessiano es el gradiente de segundo orden de una función escalar
( ) ( )( )
⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∂∂
∂∂∂
∂∂∂
∂∂∂
∂∂
∂∂∂
∂∂∂
∂∂∂
∂∂
=
⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
∂∂
∂∂
∂∂
=
∇∇=∇
221
22212
12121
21
2
nnn
n
n
n
xf
xxf
xxf
xxf
xf
xxf
xxf
xxf
xf
xf
xf
xf
x
xfxf
L
MOMM
L
L
Kr
rr
Propedeutico 2008 Facultad de Ciencias 5
Nociones de Calculo Matricial
• Derivada de una matriz
• Gradiente de una función escalar donde X es una matriz de m × n.
( )
⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
=∂
∂
tf
tf
tf
tf
tf
tf
tf
tf
tf
ttF
mnmm
n
n
L
MOMM
L
L
21
22221
11211
( )
⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
=∂
∂
nmnn
m
m
Xf
Xf
Xf
Xf
Xf
Xf
Xf
Xf
Xf
XXf
L
MOMM
L
L
21
22212
12111
Propedeutico 2008 Facultad de Ciencias 6
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 7
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.
⎟⎟⎠
⎞⎜⎜⎝
⎛=
654321
A
Propedeutico 2008 Facultad de Ciencias 8
Referencia a los elementos de una matriz
• A(i,j) hace referencia al elemento ij de la matriz A>> A(2,2)
ans = 5
• 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 = 1 2
4 5
⎟⎟⎠
⎞⎜⎜⎝
⎛=
654321
A
Propedeutico 2008 Facultad de Ciencias 9
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 10
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 11
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 12
Funciones
• Inversa >> inv(A)
• Determinante >> det(A)
• Traza >> trace(A)
• Rango >> rank(A)
• Tamaño >> size(A)
• Suma>> sum(A,dim)
Propedeutico 2008 Facultad de Ciencias 13
Creando archivos .m
• Archivos file.m son archivos de texto que Matlabusa 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 14
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 15
Funciones
function [out1, out2] = Name(in1,in2)% Descripción de la función% parámetros de entrada% parámetros de salida% Nombre del autor% Fecha de elaboración
if nargin < 2display(‘Error: faltan parametros’)
elseout1 = in1 * in2;out2 = my_subfunction(in2+in1);
% ------------------------function out = my_subfunction(in)
Documentación Standard
Cuerpo de la función
Subfunción
Palabra reservadaParámetros de salida
Nombre de la función
Parámetros de entrada
Propedeutico 2008 Facultad de Ciencias 16
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
• La variable r no es visible fuera de la función
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’);
elser = rank(A);[V,D] = eig(A);end
• % es usado para introducir comentarios.
• Para obtener todos los parámetros de salida se debe escribir [V,D,r]=properties(A)
Propedeutico 2008 Facultad de Ciencias 17
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 18
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 19
Estructuras de Control
if condition
statement1
else
statement2
end
SWITCH switch_expr
CASE case_expr,
statement,...,statement
CASE {exp1, expr2, ...}
statement,...,statement
...
OTHERWISE,
statement,...,statement
END
Propedeutico 2008 Facultad de Ciencias 20
Ciclos
while condition
statement_1;
...
statement_n;
end
for i=lim1:step:lim2
statement_1;
...
statement_n;
end