37
Fundamentos Básicos de Matlab

Matlab Clases 2

Embed Size (px)

DESCRIPTION

proporcionado por la universidad nacional de callao . facultad de ingeniería eléctrica y electronia-cursos taller fiee

Citation preview

  • Fundamentos Bsicos

    de Matlab

  • Qu es Matlab?

    Una herramienta para hacer clculos matemticos que utiliza como elemento bsico la matriz.

    Un lenguaje de programacin: interactivo: rdenes

    avanzado pero fcil de utilizar: archivos.m

    Plataforma de desarrollo: toolboxes

  • Qu se puede realizar? Anlisis de datos Polinomios Grficos 2D Grficos 3D Ajuste de curvas Interpolacin Anlisis numrico

  • Espacio de trabajo

    Al ejecutarse Matlab se crea una ventana de trabajo que corresponde al lugar desde donde se interacciona con Matlab:

    El smbolo denota que se esta esperando una orden

    Matlab recuerda las rdenes ya dadas y los valores de cualquier variable (en el espacio de trabajo): recordar rdenes previas: y . Editar: y recordar variables: escribir su nombre

  • Espacio de trabajo

    Funciones para el manejo de las variables en el espacio de trabajo: who lista las de las memorias del espacio de trabajo whos lista las memorias del espacio de trabajo con

    informacin de su tamao save almacena las memorias en un archivo de

    extensin *.mat load recupera variables almacenadas en el disco clear borra las variables del espacio de trabajo

  • Funciones bsicas

    Suma: +resta: -multiplicacin: *divisin: \ /potencia: ^

  • Comentarios tiles

    Evala expresiones de izquierda a derecha: 1 potencias, 2 multiplicaciones y divisiones, y 3 sumas y

    restas.

    Nombres de variables o memorias: Siempre debe comenzar con una letra, seguidas de letras o

    nmeros si se lo desea. Slo se recuerdan los primeros 17 dgitos de una memoria. Distingue maysculas y minsculas

    ; al final de lnea no imprime el resultado. A partir del smbolo % se considera comentario.

  • Comentarios tiles

    ans almacena el resultado por defecto

    Si una orden es demasiado larga, se escriben ...seguido de enter para continuar en la siguiente lnea, no en todos los casos es posible usar este comando.

    Matlab se interrumpe con ctrl-c Matlab se cierra con el comando quit

  • Variables predefinidas ans Nombre de la variable por defecto usado en los

    resultados pi Nmero pi eps El ms pequeo de los nmeros que al sumarle 1

    da un nmero en coma flotante mayor que 1 inf Infinito NaN Indefinido i,j i=j=sqrt(-1) realmin Nmero real positivo ms pequeo que se

    puede usar 2.2251e-308 realmax Nmero real positivo ms grande que se

    puede usar 1.7977e+308

  • Formatos de visualizacin

    Comando Ejemplo Comentario format long 35.83333333333334 16 dgitos format short e 3.5833e+01 5 dgitos mas exponente format long e 35.83333333333334e+01 16 dgitos mas exponente format hex 4041eaaaaaaaaab hexadecimal

    format bank 35.83 2 dgitos decimales format + + positivo, negativo o cero

    format rat 215/6 aproximacin racional format short 35.8333 visualizacin por defecto

    Comando Ejemplo Comentario format long 35.83333333333334 16 dgitos format short e 3.5833e+01 5 dgitos mas exponente format long e 35.83333333333334e+01 16 dgitos mas exponente format hex 4041eaaaaaaaaab hexadecimal

    format bank 35.83 2 dgitos decimales format + + positivo, negativo o cero

    format rat 215/6 aproximacin racional format short 35.8333 visualizacin por defecto

  • Caractersticas CientficasCaractersticas Cientficas

    Funciones matemticas

    Nmeros complejos

    Funciones matemticas

    Nmeros complejos

  • abs(x) Valor absoluto acos(x) Arcocoseno acosh(x) Arcocoseno hiperblico angle(x) Angulo de complejos asin(x) Arcoseno asinh(x) Arcoseno hiperblico atan(x) Arcotangente atanh(x) Arcotangente hiperblica ceil(x) Redondeo hacia + conj(x) Complejo conjugado cos(x) Coseno cosh(x) Coseno hiperblico exp(x) Exponencial e1=2.71 log (x) Logaritmo neperiano

    abs(x) Valor absoluto acos(x) Arcocoseno acosh(x) Arcocoseno hiperblico angle(x) Angulo de complejos asin(x) Arcoseno asinh(x) Arcoseno hiperblico atan(x) Arcotangente atanh(x) Arcotangente hiperblica ceil(x) Redondeo hacia + conj(x) Complejo conjugado cos(x) Coseno cosh(x) Coseno hiperblico exp(x) Exponencial e1=2.71 log (x) Logaritmo neperiano

    Funciones matemticasFunciones matemticas

  • fix(x) Redondeo hacia cero floor(x) Redondeo hacia menos infinito imag(x) Parte imaginaria compleja log10(x) Logaritmo comn real(x) Parte real compleja rem(x,y) Resto de la divisin (resto al dividir x/y) round(x) Redondeo al entero ms cercano sign(x) Funcin signo sin(x) Seno sinh(x) Seno hiperblico sqrt(x) Raiz cuadrada tan(x) Tangente tanh(x) Tangente hiperblica

    fix(x) Redondeo hacia cero floor(x) Redondeo hacia menos infinito imag(x) Parte imaginaria compleja log10(x) Logaritmo comn real(x) Parte real compleja rem(x,y) Resto de la divisin (resto al dividir x/y) round(x) Redondeo al entero ms cercano sign(x) Funcin signo sin(x) Seno sinh(x) Seno hiperblico sqrt(x) Raiz cuadrada tan(x) Tangente tanh(x) Tangente hiperblica

    Funciones matemticasFunciones matemticas

  • Nmeros complejosNmeros complejosSolve

    es una funcin que resuelve sistemas del tipo x^3+2*x^2+3*x+x+5=0

    El nmero imaginario puro se representa por i o j Cualquier nmero seguido de i representa un nmero

    imaginario

    Hay funciones especficas para su manejo: real(x) imag(x) conj(x) angle(x), etc.

    Solve es una funcin que resuelve sistemas del tipo

    x^3+2*x^2+3*x+x+5=0

    El nmero imaginario puro se representa por i o j Cualquier nmero seguido de i representa un nmero

    imaginario

    Hay funciones especficas para su manejo: real(x) imag(x) conj(x) angle(x), etc.

  • Arrays simples

    Direccionamiento de arrays

    Construccin de arrays

    Funciones con arrays

    Matemticas de arrays con escalares

    Matemticas entre arrays

    Orientacin del array

    Resumen de operaciones con arrays

    Manejo de arraysManejo de arrays

  • Para crear un array en Matlab:Comienza por un corchete de apertura [Los valores separados por espacios o por

    comasFinaliza con un corchete de cierre ]

    Ejemplo: x = [23 45 12 2+3i -2i]

    Arrays simplesArrays simples

  • Para acceder a elementos individuales se utilizan subndices entre parntesis

    Ejemplo: x = [1 2 3;4 5 6;7 8 9] x(2,3)

    ans =

    6 x(6)

    ans =

    8

    Direccionamiento de arraysDireccionamiento de arrays

  • Para direccionar un bloque de elementos, Matlab proporciona la notacin de dos puntos:

    primero:incremento:ltimo Ejemplo:

    x = [1 2 3;4 5 6;7 8 9] x(2:6)ans =

    4 7 2 5 8 x(2:2:6)ans =

    4 2 8

    Direccionamiento de arraysDireccionamiento de arrays

  • Para direccionar elementos aislados se utiliza un array de ndices

    Ejemplo: x=[23 45 12 2+3i -2i 32 12]; x([4 1 2])ans =

    2+3i 23 45 x([1 4 7])ans =

    23 2+3i 12

    Direccionamiento de arraysDireccionamiento de arrays

  • Existen varias formas de crear arraysNotacin de dos puntosFuncin linspacelinspace(primero,ltimo,nvalores)

    va=linspace(0,8,6),ve=linspace(10,-0.5,5)

    va = 0 1.6000 3.2000 4.8000 6.4000 8.0000

    ve = 10.0000 7.3750 4.7500 2.1250 -0.5000

    Construccin de arraysConstruccin de arrays

  • Funcin logspacelogspace(expo1,expo2,nvalores)logspace(0,5,6)

    ans = 1 10 100 1000 10000 100000

    Evaluar los resultados en Matlabv1=linspace(0,6,4),v2=logspace(0,6,4)

    Construccin de arraysConstruccin de arrays

  • Las funciones se aplican a los elementos individuales de los arrays

    Ejemplo: x = [0 pi/4 pi/2 3*pi/4 pi] sin(x)

    ans =

    0 0.7071 1.0000 0.7071 0.0000 cos(x)

    ans =

    1.0000 0.7071 0.0000 -0.7071 -1.0000

    Funciones con arraysFunciones con arrays

  • Establece una distancia o espaciado constante entre los elementos de un vector.

    Ejemplo: x= 0:30:360 x =

    0 30 60 90 120 150 180 210 240 270 300 330 360Evaluar en Matlab sind(x) >>plot(sind(x)) % comando para crear

    graficos

    Vector distanciaVector distancia

  • Evaluar en Matlab x1=0:2:360 ; sind(x1); >>plot(sind(x1))>>plot(sind(x1)+1)

    Evaluar en Matlab x1=0:2:360 ; y1=sind(x1);y2=cosd(x1); plot(x1,y1,x1,y2)

    Vector distanciaVector distancia

  • La suma, resta, multiplicacin y divisin por un escalar simplemente aplica la operacin a todos los elementos del array

    Ejemplo: >> x= [1 2 3 4 5 6]; m1=4*x-7m1 =

    -3 1 5 9 13 17

    Operaciones de arrays con escalaresOperaciones de arrays con escalares

  • Cuando dos arrays tienen la misma longitud, la suma y la resta se aplican sobre la base de elemento a elemento

    Para multiplicar o dividir dos arrayselemento a elemento se utilizan los operandos:.* , ./ y .\ ejemplo: (a./b=b.\a)

    Para la potencia elemento a elementose utiliza .^

    Cuando dos arrays tienen la misma longitud, la suma y la resta se aplican sobre la base de elemento a elemento

    Para multiplicar o dividir dos arrayselemento a elemento se utilizan los operandos:.* , ./ y .\ ejemplo: (a./b=b.\a)

    Para la potencia elemento a elementose utiliza .^

    Operaciones entre arrays Operaciones entre arrays

  • Resumen de operaciones con arrays a=[a1 ... an], b=[b1 ... bn], c=escalar

    Suma con un escalar a+c = [a1+c a2+c ... an+c]Multiplicacin por unescalar

    a*c = [a1*c a2*c ... an*c]

    Suma de arrays a+b = [a1+b1 a2+b2 ... an+bn]Multiplicacin de arrays a.*b = [a1*b1 ,a2*b2 ...

    an*bn]Divisin por la derechade arrays

    a./b = [a1/b1 a2/b2 ... an/bn]

    Divisin por laizquierda de arrays

    a.\b = [a1\b1 a2\b2 ... an\bn]

    Potencias de arrays a.^c = [a1^c a2^c ... an^c]c.^a = [c^a1 c^a2 ... c^an]a.^b = [a1^b1 a2^b2 ... an^bn]

    Suma con un escalar a+c = [a1+c a2+c ... an+c]Multiplicacin por unescalar

    a*c = [a1*c a2*c ... an*c]

    Suma de arrays a+b = [a1+b1 a2+b2 ... an+bn]Multiplicacin de arrays a.*b = [a1*b1 ,a2*b2 ...

    an*bn]Divisin por la derechade arrays

    a./b = [a1/b1 a2/b2 ... an/bn]

    Divisin por laizquierda de arrays

    a.\b = [a1\b1 a2\b2 ... an\bn]

    Potencias de arrays a.^c = [a1^c a2^c ... an^c]c.^a = [c^a1 c^a2 ... c^an]a.^b = [a1^b1 a2^b2 ... an^bn]

  • lgebra matricial

    Manipulacin matricial

    Matrices especiales

    lgebra matricial

    Manipulacin matricial

    Matrices especiales

    lgebra matriciallgebra matricial

  • Matlab originariamente fue diseado para simplificar el clculo del lgebra lineal

    Para definir una matriz se distinguen las filas por ; o se introduce enter

    A. es la matriz transpuesta de A A es la traspuesta conjugada de A det(A) calcula el determinante de A inv(A) es la inversa de A rank(A) devuelve el rango de la matriz A norm(A) calcula la normal de A poly(A) obtiene el polinomio caracterstico de la matriz A

    Matlab originariamente fue diseado para simplificar el clculo del lgebra lineal

    Para definir una matriz se distinguen las filas por ; o se introduce enter

    A. es la matriz transpuesta de A A es la traspuesta conjugada de A det(A) calcula el determinante de A inv(A) es la inversa de A rank(A) devuelve el rango de la matriz A norm(A) calcula la normal de A poly(A) obtiene el polinomio caracterstico de la matriz A

    lgebra matriciallgebra matricial

  • >> C=[3 6 9 ; 12 15 17]

    C =

    3 6 9

    12 15 17

    >> size(C)

    ans =

    2 3

    Ejecutamos el siguiente comando whos

    >> whos

    Name Size Bytes Class Attributes

    A 3x3 72 double

    B 3x3 72 double

    C 2x3 48 double

    >> C=[3 6 9 ; 12 15 17]

    C =

    3 6 9

    12 15 17

    >> size(C)

    ans =

    2 3

    Ejecutamos el siguiente comando whos

    >> whos

    Name Size Bytes Class Attributes

    A 3x3 72 double

    B 3x3 72 double

    C 2x3 48 double

    lgebra matriciallgebra matricial

  • >>A = [ 1 2 3; 4 5 6 ; 7 8 9]A =

    1 2 34 5 67 8 9

    >> B = [2 4 6 ; 8 10 12 ; 14 16 18]B =

    2 4 68 10 1214 16 18

    size(A)ans =

    3 3 (indica que tiene 3 filas y 3 columnas

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

    1 2 34 5 67 8 9

    >> B = [2 4 6 ; 8 10 12 ; 14 16 18]B =

    2 4 68 10 1214 16 18

    size(A)ans =

    3 3 (indica que tiene 3 filas y 3 columnas

    lgebra matriciallgebra matricial

  • Podemos trabajar con diferentes partes de una matriz

    A =

    1 2 3

    4 5 6

    7 8 9>>A(1:2,3:4)

    Index exceeds matrix dimensions.>>A(1:2,2:3)

    ans =2 35 6

    >> A(1:2,2:3) % indica transposicinans =

    2 43 5

    >>D = [ [1 2 3] [2 4 7] [3 5 8]]D =

    1 2 32 4 53 7 8

    Podemos trabajar con diferentes partes de una matriz

    A =

    1 2 3

    4 5 6

    7 8 9>>A(1:2,3:4)

    Index exceeds matrix dimensions.>>A(1:2,2:3)

    ans =2 35 6

    >> A(1:2,2:3) % indica transposicinans =

    2 43 5

    >>D = [ [1 2 3] [2 4 7] [3 5 8]]D =

    1 2 32 4 53 7 8

  • Adicin de elementos a una matriz

    >> E=[1 2 3 ;4 5 6 ]E =

    1 2 34 5 6

    >> E(3,:)=[10 14 18]

    E =1 2 34 5 610 14 18

    >> AW= [3 6 9 ; 8 5 11]

    AW =

    3 6 98 5 11

    >> AW(4,5)= 17 % AGREGRAMOS UM TERMINO A LA MATRIZ EN (m,n)

    AW =

    3 6 9 0 08 5 11 0 00 0 0 0 00 0 0 0 17

    Adicin de elementos a una matriz

    >> E=[1 2 3 ;4 5 6 ]E =

    1 2 34 5 6

    >> E(3,:)=[10 14 18]

    E =1 2 34 5 610 14 18

    >> AW= [3 6 9 ; 8 5 11]

    AW =

    3 6 98 5 11

    >> AW(4,5)= 17 % AGREGRAMOS UM TERMINO A LA MATRIZ EN (m,n)

    AW =

    3 6 9 0 08 5 11 0 00 0 0 0 00 0 0 0 17

  • Comandos: zeros(m,n), ones(m.n), eye(n)

  • Ejemplo: utilizando comandos ones y zeros crear una matriz 4x5 en la cual las 2 primeras filas sean ceros y las dos siguientes unos.Sol:>> R(1:2,:)= zeros(2,5)>> R(3:4,:)=ones(2,5)

    Crear una matriz 6x6 en la cual las 2 filas centrales junto a las 2 columnas centrales sean unos, siendo el resto ceros.Sol:>> AR= zeros(6,6)>> AR(3:4,:)=ones(2,6)AR(:,3:4)=ones(6,2)

  • Los elementos de una matriz se indican con su fila y columna: A(columna, fila)

    Con los dos puntos (:) se puede seleccionar toda la fila o columna: A(:,1), B(2,:)

    find(x) transforma una matriz en una sucesin de valores del tipo columna.

    size(x) devuelve el tamao en filas y columnas.

    Los elementos de una matriz se indican con su fila y columna: A(columna, fila)

    Con los dos puntos (:) se puede seleccionar toda la fila o columna: A(:,1), B(2,:)

    find(x) transforma una matriz en una sucesin de valores del tipo columna.

    size(x) devuelve el tamao en filas y columnas.

    Manipulacin matricialManipulacin matricial

  • Matriz de ceros: zeros(n,m)Matriz de unos: ones(n,m)Matriz aleatoria con distribucin

    uniforme (entre 0 y 1): rand(n,m)Matriz aleatoria con distribucin

    normal (media 0 y varianza 1): randn(n,m)

    Matriz identidad: eye(n)

    Matriz de ceros: zeros(n,m)Matriz de unos: ones(n,m)Matriz aleatoria con distribucin

    uniforme (entre 0 y 1): rand(n,m)Matriz aleatoria con distribucin

    normal (media 0 y varianza 1): randn(n,m)

    Matriz identidad: eye(n)

    Matrices especialesMatrices especiales