robotica_clase1

31
Preliminares matem´ aticos Facultad de Ciencias de la Electr´ onica Benem´ erita Universidad Aut´ onoma de Puebla Ingenier´ ıa Mecatr´ onica y Licenciaturas en Electr´ onica Fernando Reyes Cort´ es Rob´ otica ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Primavera 2016

description

nada

Transcript of robotica_clase1

Page 1: robotica_clase1

Preliminares matematicos

Facultad de Ciencias de la Electronica

Benemerita Universidad Autonoma de Puebla

Ingenierıa Mecatronica y Licenciaturas en Electronica

Fernando Reyes Cortes

Robotica

ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/

Primavera 2016

Page 2: robotica_clase1

Contenido

Parte I

Preliminares Matematicos

MATLAB.

Vectores.

Producto interno o producto escalar.

Programacion simbolica.

Page 3: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

MATLAB

MATLAB

:

Figura 1: MATLAB.

Lenguaje de programacion para matrices.

MATLAB significa matrix laboratory(laboratorio matricial)

Codigo fuente.

toolbox.

Control (lineal, no lineal, adaptable, optimo,digital), procesamiento de imagenes,instrumentacion, vision, cinematica, dinamica,etc.

Simulink.

Simulacion de sistemas dinamicos.

Robotica y mecatronica.

Control de robots manipuladores.

Control digital.

Procesamiento de senales.

Filtrado y estimacion.

Analisis de resultados experimentales.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 3 / 31

Page 4: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Ambiente de programacion

:

Figura 2: Ambiente de programacion de MATLAB 2015a.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 4 / 31

Page 5: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Ambiente de programacion

:

Figura 3: Ventana de comandos de MATLAB.

fx >> i=3 ←↩i=

3

fx >> 6+5 ←↩ans=

11

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 5 / 31

Page 6: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Ambiente de programacion

fx >> a=1; ←↩fx >> b=2; ←↩

a+b=3

fx >> a&b ←↩ans=

1

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 6 / 31

Page 7: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Ambiente de programacion

Sugerencias utiles, cuando se trabaja directamente en la ventana de comandos de MATLAB.

Calculos, operaciones, comentarios, instrucciones de programacion realizados en MATLAB (sobre la ventana decomandos) pueden ser registrados (grabados) en un archivo tipo ASCII por medio de la funcion diary.

diary

Por ejemplo, escribir el siguiente codigo en la ven-tana de comandos:fx >> diary ←↩fx >> clc ←↩fx >> clear all ←↩fx >> close all ←↩fx >> format short ←↩fx >> x=-pi:pi/100:pi; ←↩fx >> y=sin(x); ←↩fx >> plot(x,y) ←↩fx >> diary off ←↩

Las instrucciones y calculos comprendidos entrediary y diary off se graban en un archivo de textodenominado diary, el cual se encuentra en el direc-torio del usuario o en el directorio de trabajo deMATLAB (esto depende como el usuario definiodichas trayectorias).

Funcion senoidal

:

Figura 4: Funcion senoidal y = sen(x).

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 7 / 31

Page 8: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Ambiente de programacion

La funcion diary off cierra el registro de instrucciones y calculos realizados en la ventana de comandos deMATLAB.

El usuario define la trayectoria del directorio de trabajo donde quedara almacenado el archivo diary, por ejemplo:

c://simulaciones/

Para visualizar el archivo diary (almacenado en el directorio del usuario), se puede abrir con el editor de texto deMATLAB o tambien directamente en la ventana de comandos de la siguiente forma:

fx >> type c://simulaciones/diary

clcclear allclose allformat shortx=-pi:pi/100:pi;y=sin(x);plot(x,y)diary off

La funcion diary tambien acepta la siguiente sintaxis:

diary on

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 8 / 31

Page 9: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Ambiente de programacion

Es posible registrar la informacion en un archivo definido por el usuario utilizando la siguiente sintaxis.

diary archivo

donde archivo es del tipo texto y cuyo nombre lo proporciona el usuario; inclusive puede definir la clase de exten-sion, por ejemplo: miprograma.dat, miprograma.txt, miprograma.m; considere el siguiente codigo en la ventana decomandos:

fx >> diary miprograma.m ←↩fx >> clc ←↩fx >> clear all ←↩fx >> close all ←↩fx >> format short ←↩fx >> x=-pi:pi/100:pi; ←↩fx >> y=sin(x); ←↩fx >> plot(x,y) ←↩fx >> diary off ←↩

Mediante este procedimiento, la informacion gra-bada en el archivo miprograma.m se convierteen un script que se puede editar y ejecutar enMATLAB.

A traves del editor de texto de MATLAB, esposible cargar el archivo miprograma.m alambiente de programacion.

miprograma.m

1− clc2− clear all3− close all4− format short5− x=-pi:pi/100:pi;6− y=sin(x);7− plot(x,y)8− diary off

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 9 / 31

Page 10: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Vectores

En general un espacio vectorial sobre un campo F consta de un conjunto V en el que esta definida una operacion desuma (la cual satisface las propiedades de un grupo abeliano conmutativo), junto con una operacion de multiplicaciondefinida entre elementos de V y elementos de F tal que esta operacion asocia escalares y vectores, posee los elementosidentidad y neutro.

Notacion

La notacion o representacion de un vector no es unica, hay varias representaciones entre las mas usadas se encuentranlas siguientes:

x ,y , z , α, β, ω ∈ IRn

x ,y , z , α, β, ω ∈ IRn×1

x =

x1

x2...xn

=[x1 x2 · · · xn

]T; con xi ∈ IR para i = 1 · · · n.

Si x ,y , z ∈ IRn

x + y = y + x ∈ IRn

x + (y + z ) = y + (x + z ) = z + (y + x ) ∈ IRn

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 10 / 31

Page 11: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Codigo MATLAB 1: ejemplo1

Robotica, perıodo primavera 2016. Licenciatura en Ingenierıa Mecatronica/ Licenciatura en ElectronicaFernando Reyes Cortes. Facultad de Ciencias de la Electronica BUAP.

ejemplo1 .m MATLAB version 2015a

% Es recomendable iniciar un programa en MATLAB con las siguientes instrucciones1

clc;% limpia pantalla2

clear all;% limpia memoria asignada a variables3

close all;% cierra graficas o archivos previamente abiertos4

format short%formato corto que despliega cuatro fracciones despues del punto decimal5

% Vectores6

%declaracion de vectores7

x=[1; 2; 3];% x ∈ IR38

y=[4; 5; 6];% y ∈ IR39

a=3;%declaracion de un escalar: a ∈ IR10

x+y% la suma de vectores produce un vector x ,y ∈ IRn ; x + y = y + x ∈ IRn11

% multiplicacion de un escalar entre vectores: a(x + y) = ax + ay ∈ IRn12

a*(x+y)% a(x + y) ∈ IRn13

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 11 / 31

Page 12: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Programacion con variables simbolicas.Verifique en la ventana de comandos de MATLABel siguiente codigo para variables simbolicas.

Codigo MATLAB 6: ejemplo2

Robotica, perıodo primavera 2016. Licenciatura en Ingenierıa Mecatronica/ Licenciatura en ElectronicaFernando Reyes Cortes. Facultad de Ciencias de la Electronica BUAP.

ejemplo2.m MATLAB version 2015a

clc;1

clear all;2

close all;3

format short4

%variables simbolicas5

syms a x1 x2 x3 y1 y2 y3 real6

x=[x1; x2; x3];7

y=[y1; y2; y3];8

a*(x+y)% a(x + y

)∈ IRn

9

% Debe tenerse cuidado con las operaciones de vectores10

% El producto escalar o punto produce un escalar: xTy = yTx ∈ IR11

% La siguiente operacion produce una matriz:% yTx ∈ IRn×n12

x’*y% xTy = yTx ∈ IR13

x*y’% xyT ∈ IRn×n . Ademas, xyT 6= yxT14

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 12 / 31

Page 13: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Vectores

Si α ∈ IR y x ∈ IRn

αx = α

x1

x2...xn

=

αx1

αx2...

αxn

=

x1αx2α...

xnα

=

x1

x2...xn

α = xα

Norma euclidiana

La norma de un vector x ∈ IRn se le denomina norma euclidiana y es una funcion escalar representada por: ‖x‖ ∈ IR+.

‖x‖ =√

x 21 + x 2

2 + · · ·+ x 2n =

√∑ni=1 x 2

i =√

xTx

‖x‖ > 0⇐⇒ x 6= 0

‖x‖ = 0⇐⇒ x = 0 =

01

02...

0n

.

‖x‖ =norm(x,2)

‖x‖ =sqrt(dot(x,x))

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 13 / 31

Page 14: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Vectores

La interpretacion geometrica de la norma euclidiana ‖x‖ de un vector x ∈ IRn es la lınea diagonal desde las coordenadascartesianas (x1, x2, · · · , xn) hasta el origen del sistema de referencia cartesiano (ver figura 5).

:

Figura 5: Interpretacion geometrica de la norma euclidiana: x ∈ IR3.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 14 / 31

Page 15: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Producto interno vectorial

Considere los siguientes vectores x ,y ∈ IRn , el producto interno vectorial se define como:

x · y = xTy = x1y1 + x2y2 + · · ·+ xnyn

x · y = ‖x‖‖y‖ cos(θ)

donde θ es el angulo definido entre los vectores x y y .

:

Figura 6: Interpretacion geometrica del producto punto x · y .

El producto interno entre vectores (dot product) x · y , es una operacion definida sobre dos vectores x ,y ∈ IRn deun espacio euclidiano cuyo resultado es un numero o escalar. Esta operacion permite analizar las propiedades deproyeccion geometrica, ortogonalidad en dos y tres dimensiones.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 15 / 31

Page 16: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Producto interno vectorial

Propiedades del producto interno:

x · y = xTy = x1y1 + x2y2 + · · ·+ xnyn

x · y = ‖x‖‖y‖ cos(θ)

Conmutativa x · y = y · x .

‖x‖ =√

x 21 + x 2

2 + · · ·+ x 2n , ‖y‖ =

√y2

1 + y22 + · · ·+ y2

n

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 16 / 31

Page 17: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

for

:

Figura 7: Instruccion for.codigo ejemplo

Sintaxis de la instruccion forfor contador=1:n

instruccion_1;

..............;

instruccion_n;end

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 17 / 31

Page 18: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Codigo MATLAB 3: ejemplo3

Robotica, perıodo primavera 2016. Licenciatura en Ingenierıa Mecatronica/ Licenciatura en ElectronicaFernando Reyes Cortes. Facultad de Ciencias de la Electronica BUAP.

ejemplo3.m MATLAB version 2015a

clc;1

clear all;2

close all;3

format short4

w=[1;4;6];5

normaw=norm(w);6

norma w= sqrt(w’*w);7

norma w1=sqrt(w(1,1)*w(1,1)+w(2,1)*w(2,1)+w(3,1)*w(3,1));8

[n,m]=size(w);9

norma w2=0;10

fork=1:n11

norma w2=norma w2+w(k,1)*w(k,1);%vector columna w(k,1)*t(k,1)12

end13

norma w2=sqrt(norma w2);14

disp(’Valor de la norma del vector w’)15

[normaw, norma w norma w1, norma w2]16

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 18 / 31

Page 19: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Programa en variables simbolicas MATLAB para obtener la norma espectral y determinante de una matriz A ∈ IR2×2:

Codigo MATLAB 4: preliminares6.m

Robotica, perıodo primavera 2016. Licenciatura en Ingenierıa Mecatronica/ Licenciatura en ElectronicaFernando Reyes Cortes. Facultad de Ciencias de la Electronica BUAP.

preliminares6.m .m MATLAB version 2015a

clc;1

clear all;2

close all;3

format short4

syms a11 a12 a21 a22;5

A=[2 3; 4, 5];6

A1=[a11 a12; a21, a22];7

norm(A)8

vp=sqrt(eig(A’*A))9

if abs(vp(1,1)>abs(vp(2,1)))10

vpmax=vp(1,1);11

else vpmax=vp(2,1);12

end13

disp(’norma espectral de una matriz A’)14

[norm(A) vpmax]15

A116

det(A1)17

inv(A1)18

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 19 / 31

Page 20: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Matrices

Una matriz es un arreglo rectangular de datos o numeros, tienen n renglones por p columnas; la notacion matematicamas comun para representar a una matriz es: A ∈ IRn×p . Matrices con una sola columna o renglon significan vectorespara MATLAB, por ejemplo x ∈ IRn×1 o y ∈ IR1×n , respectivamente. Especial significado representan los escalarescuya interpretacion para propositos de programacion corresponde a una representacion de matriz del tipo IR1×1.

:

Figura 8: Componentes de una matriz A(i , j ).

Los elementos del i -esimo renglon o de la j -esima columna de una matriz A son denotados como: A(i , j ), la expresionA(3, 4) representa un elemento de la matriz que se encuentra localizado en el tercer renglon y cuarta columna.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 20 / 31

Page 21: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Matrices

Matriz cuadrada A ∈ IRn×n

La matriz se inicializa por corchetes A = []

Las entradas de una matriz puede ser de la siguiente forma: separando los elementos de un renglon por espaciosen blanco o por comas: A = [2, 3, 4, 78.3, 45]

Es posible emplear unicamente espacios en blanco: A = [2 3 4 78.3 45]

Combinando comas y espacios en blanco es otra posibilidad de inicializar una matriz: A = [2, 3, 4, 78.3, 45]

Usar el operador semicolon ; para indicar el fin del renglon y generar otro mas

A = [2, 3, 4; 5 6 8; 7, 8 9]

De tomarse en cuenta que el operador ; ademas de emplearse en matrices tiene otra funcion cuando se inserta alfinalizar una variable, constante o funcion desactiva la opcion de desplegado.

Norma de una matriz

La norma de una matriz A ∈ IRn×n se le denomina norma espectral y esta representada por: ‖A‖ ∈ IR+.‖A‖ =

√λmax{ATA}

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 21 / 31

Page 22: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Matrices

Considerese la siguiente matriz A ∈ IR4×4

A =

1 3 3 20 3 4 1212 34 1 239 7 2 3

Se inicializa como: A=[1,3,3,2; 0, 3, 4,12; 12,34,1,23;9,7,2,3].

En general A(i , j ) 6= A(j , i) o A 6= AT . Si la matriz es simetrica, entonces se cumple A(i , j ) = A(j , i) o A = AT .En MATLAB el operador que representa la matriz transpuesta es ’

Debe tenerse cuidado con el empleo del operador ’, ademas de su uso en matrices tambien se emplea en cadenas decaracteres.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 22 / 31

Page 23: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

MatricesEl operador colon : se puede emplear en matrices para referenciar a una porcion de la matriz. Por ejemplo, sea unamatriz A ∈ IR5×5

A =

1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 2021 22 23 24 25

Las referencias A(1 : 5, 1),A(1 : 5, 2),A(1 : 5, 3),A(1 : 5, 4),A(1 : 5, 5) representan los 5 renglones de las columnasj = 1 · · · 5, respectivamente

A(1 : 5, 1) =

16111621

A(1 : 5, 2) =

27121722

A(1 : 5, 3) =

38131823

A(1 : 5, 4) =

49141924

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 23 / 31

Page 24: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Matrices

Para obtener las 5 columnas de cada renglon se representa por A(1, 1 : 5),A(2, 1 : 5),A(3, 1 : 5),A(4, 1 : 5),A(5, 1 : 5)

A(1, 1 : 5) =[1 2 3 4 5

]A(2, 1 : 5) =

[6 7 8 9 10

]A(3, 1 : 5) =

[11 12 13 14 15

]A(4, 1 : 5) =

[16 17 18 19 20

]A(5, 1 : 5) =

[21 22 23 24 25

]

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 24 / 31

Page 25: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Matrices

Existen varias formas para generar matrices basicas en MATLAB, se pueden generar con funciones especıficas, confunciones definidas por el usuario, o con el uso del operador colon :

A continuacion se enlistan varias opciones para generar matrices basicas en MATLAB:

Introduciendo una lista de elementos explıcitos: A = [2, 3, 67; 5.3, 3.3, 2.4; 2, 9, 1]

Cargando matrices de archivos de datos experimentales o externos en formato de columnas:matriz=load(’datos.dat’)

Generando matrices usando funciones que retornan matrices: matriz=mi_matriz(n,m)

Usando funciones de MATLAB por ejemplo: A=zeros(3,3).

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 25 / 31

Page 26: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Matrices

La siguiente tabla muestra las opciones mas comunes (funciones especiales y por asignacion de datos) que permiten generarmatrices basicas.:

Tabla 1: Funciones especiales para generar matrices basicas

Nombre de la funcion Descripcion y caracterısticaszeros(n,m) Genera una matriz IRn×m donde todos sus elementos son cero.ones(n,m) Genera una matriz IRn×m donde todos los elementos tienen el valor 1.

rand(n,m)Genera una matriz IRn×m donde las entradas son elementos aleatorios distribuidosde manera uniforme.

randn(n,m)Genera una matriz IRn×m donde las entradas son elementos aleatorios distribuidosnormalmente.

magic(n)Retorna una matriz cuadrada IRn×n donde las entradas son numeros enteros desde1 hasta n2. El numero n debe ser mayor o igual a 3.

eye(n,m)

Genera una matriz rectangular IRn×m donde los elementos con ındices (i , j ) talque i = j tienen el valor de 1, y para entradas i 6= j tienen valor de 0. Si n = m,entonces la matriz es cuadrada y diagonal.

A(1:n, 1:m)=αGenera una matriz rectangular IRn×m donde todos los elementos de la matriz Aadquieren el valor del escalar α. Cuando n = m, entonces retorna una matrizcuadrada.

A=load

Genera una matriz rectangular desde un archivo ASCII o de textoload(’nombre_archivo.tex’); el archivo puede tener datos experimentales y asig-narlos a una matriz para su procesamiento o analisis.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 26 / 31

Page 27: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Dada una matriz A ∈ IRn×n :

As =A + AT

2Matriz simetrica

Ask =A− AT

2Matriz antisimetrica

Si x ∈ IRn :

V (x ) = xTAx = xT[As + Ask

]x = xTAsx + xTAskx = xTAsx

xTAskx = 0

Funcion de energıa cuadratica: V (x ) = xTAsx .

V (x1, x2) = a11x21 + a22x

22 + (a12 + a21)x1x2

=

[x1

x2

]T [a11 a12

a21 a22

] [x1

x2

]=

[x1

x2

]T [a11

a12+a21

2a12+a21

2a22

] [x1

x2

]V (x1, x2) = 8x 2

1 + 67x1x2 + 33x 22 =

[x1

x2

]T [8 67

2672

33

] [x1

x2

]

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 27 / 31

Page 28: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Programacion con variables simbolicas.Verifique en la ventana de comandos de MATLABel siguiente codigo con variables simbolicas para matrices.

Codigo MATLAB 6: preliminares4

Robotica, perıodo primavera 2016. Licenciatura en Ingenierıa Mecatronica/ Licenciatura en ElectronicaFernando Reyes Cortes. Facultad de Ciencias de la Electronica BUAP.

preliminares4.m MATLAB version 2015a

clc;1

clear all;2

close all;3

format short4

%variables simbolicas5

syms x1 x2 x3 a11 a12 a21 a22 real6

A=[a11 a12; a21 a22];7

x=[x1; x2];8

simple(collect(x’*A*x))9

As=(1/2)*(A+A’);10

Ask=(1/2)*(A-A’);11

[simplify(collect(x’*A*x)), simplify(collect(x’*As*x)), simplify(collect(x’*Ask*x))]12

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 28 / 31

Page 29: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Codigo MATLAB 6: preliminares5

Robotica, perıodo primavera 2016. Licenciatura en Ingenierıa Mecatronica/ Licenciatura en ElectronicaFernando Reyes Cortes. Facultad de Ciencias de la Electronica BUAP.

preliminares5 .m MATLAB version 2015a

clc;1

clear all;2

close all;3

format short4

A=[2 3; 4, 5];5

x=[1; 2];6

x’*A*x;7

As=(1/2)*(A+A’);8

Ask=(1/2)*(A-A’);9

[x’*A*x x’*As*x x’*Ask*x]10

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 29 / 31

Page 30: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Ejercicios en clase

Ejemplos de programacion en MATLAB.

:

Figura 9: Desarrollo en clase.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 30 / 31

Page 31: robotica_clase1

MATLAB Vectores Programacion simbolica Producto interno vectorial Matrices Ejercicios en clase

Lecturas recomendadas

Lecturas recomendadas

www.mathworks.com

Fernando Reyes. MATLAB Aplicado a Robotica y Mecatronica. Alfaomega 2012.

Fernando Reyes Cortes Benemerita Universidad Autonoma de Puebla Facultad de Ciencias de la Electronica

Preliminares matematicos ftp://ece.buap.mx/pub/profesor/FernandoReyes/Robotica/ Licenciaturas en Ingenierıa Mecatronica y Electronica 31 / 31