introduccion matlab

53
Fundamentos de Matlab Funciones y scripts Control del flujo Introducci´on a MATLAB Departamento Matem´ atica Aplicada Universidad de M´ alaga Curso 2012-2013 Departamento Matem´ atica Aplicada Introducci´ on a MATLAB P´ ag. 1

Upload: renshotsu

Post on 09-Nov-2015

25 views

Category:

Documents


1 download

DESCRIPTION

Introduccion Matlab para Ingeniería

TRANSCRIPT

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Introduccion a MATLAB

    Departamento Matematica Aplicada

    Universidad de Malaga

    Curso 2012-2013

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 1

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Fundamentos

    Matlab es un lenguaje de programacion implementado porThe MathWorks, Inc. y disponible en multitud de entornos:Windows, Unix,. . .

    Matlab esta especializado en Calculo Cientfico. Integraanalisis numerico, computacion matricial, procesamiento desenales y un entorno grafico que permite expresar de formamatematica multitud de problemas.

    Matlab proviene de MATrix LABoratory. Se desarrolla paraproporcionar facil acceso a matrices en los proyectos EISPACKy LINPACK.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 2

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ventana de Comandos

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 3

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Editor de textos

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 4

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ventanas

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 5

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Caractersticas

    Matlab proporciona al usuario:

    Gestion dinamica de la estructura de datos matriz rectangular.

    Un conjunto de comandos, funciones y rutinas graficas muyfaciles de usar.

    La extensibilidad es una de las caractersticas masimportantes. Matlab crece constantemente gracias amultitud de matematicos, ingenieros,... que contribuyen aampliar las capacidades del lenguaje.

    Herramientas que permiten desarrollar y personalizar lasrutinas numericas.

    Existen otros lenguajes similares con software libre: SCILAB,OCTAVE, MAXIMA,. . .Tambien debemos destacar: MATHEMATICA, R, GAUSS,DERIVE,...

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 6

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Variables

    Matlab distingue entre mayusculas y minusculas: Total y TOTALson variables distintas.Matlab tiene las siguientes variables predefinidas:

    ans: Variable que almacena el ultimo resultado.

    eps: Epsilon de la maquina, o cota superior del error relativo deredondeo al expresar un numero real en aritmetica de punto flotante.

    pi: El numero pi.

    inf, NaN: Infinito y Not a Number.

    i, j: Numero imaginario1. CUIDADO: Puede cambiarse.

    Las variables pueden ser borradas con el comando clear:

    clear (borra todas las variables del espacio de trabajo).

    clear variable1,variable2,. . . (borra las variables indicadas).

    clear all (borra variable, funciones, breakpoints y otros.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 7

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Variables 2

    La variable basica de Matlab es la matriz. Un numero realsera una matriz 1 1. Aunque existe la variable cadena(a=qwerty) y dispone de funciones para estas variables.La matrices Matlab, pueden ser de 3 tipos: enteras, reales ocomplejas. La conversion entre tipos es transparente al usuario.Los calculos se hacen con la maxima precision (16 dgitos), pero lasalida por pantalla puede realizarse con:

    formato corto (formato por defecto) format shortformato largo (long) format longformato racional (rat) format ratformato cientfico corto (short e)cientfico largo (long e)

    El formato compacto (format compact) evita lineas en blanco.El cambio de formato puede hacerse mediante la ventana decomandos.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 8

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Complejos

    Una matriz sera compleja si lo es algun elemento:

    Ejemplo

    Introducir A = [1, 3, 5] + i [2, 4, 6], o bienA = [1 + 2 i , 3 + 4 i , 5 + 6 i ]

    Automaticamente una matriz sera compleja si el resultado de uncalculo da un numero complejo:

    Ejemplo

    Introducir B = [log(4), 2, sqrt(2)]

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 9

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Caractersticas basicas 2

    Ayudas en MATLAB:

    help: Lista todas las toolboxes existentes.

    help sort: Ayuda sobre el comando sort (ordenar).

    who: Lista las variables definidas.

    whos: Lista las variables definidas, espacio ocupado, tipo, . . .

    quit: Salir de Matlab.

    info, computer, ver, version dan informacion sobreMatlab, el ordenador en el que estas trabajando, y lasversiones de Matlab y las toolboxes que estas ejecutando.

    clc: Limpia la ventana de comandos.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 10

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Gestion del entorno

    El sistema operativo

    path En la version de Matlab para Windows, puedemodificarse el camino de busqueda de un comando en disco.

    dir, type, cd, . . . igual significado que en MS-DOS.

    quit abandonar Matlab.

    Ejemplo

    Anadir un directorio al path de busqueda de Matlab.>> p = path;path(p, a :);

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 11

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Diarios

    Podemos tener un registro de las ordenes ejecutadas en una sesionde Matlab y las salidas efectuadas por pantalla.

    diary nombre de fichero hace que toda la informacion queaparezca en la pantalla, se enve al da al fichero.

    diary off/on permitira enviar o no los resultados.

    Ejemplo

    Crear un diario con las ordenes y los resultados de un ejercicio.>> diary ejer1.txt, % Enva a ejer1.txt en directorio actual.>> ..., ..., % ordenes que iran al diario llamado ejer1.txt>> diary off>> ..., ..., % las ordenes entre diary off>> diary on % y diary on no apareceran en el diario>> diary c : \examen\ejer2.txt>> ..., % ordenes que iran al diario llamado ejer2.txt

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 12

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Sentencias de asignacion

    Una instruccion de este tipo es de la forma: variable=expresionSi terminamos la instruccion con el smbolo ; el resultado secalculara pero no sera mostrado en pantalla, lo queacelerara muchos los calculos.Varias instrucciones pueden situarse en la misma lnea separadaspor comas o por puntos y comas.

    Ejemplo

    A=3*B; C=2*A+3*B,D=A+B-C;Se calcularan A, C y D pero solo se mostrara el resultado de C.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 13

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Operadores logicos, predicados

    Las constante logicas vienen dadas por 0 (que indica falso) y 1(que indica cierto).Los operadores relacionales =,==,= operanelemento a elemento en el caso de matrices, as como lasconectivas logicas &, |, y , respectivamente and, or(ALT+1) y not (ALT+4).

    Ejemplo

    Si x=[2, 3, 4, 1, 1,-2, 3] e y=[2, 2, 0, 2, 1, 1, -1]>> z = (x < 3) produce z=[1,0,0,1,1,1,0]>> u = (x == y) produce u=[1,0,0,0,1,0,0]>> w = (z&u) | ( z& u) produce w=[1,1,1,0,1,0,1]>> C = (A = B) produce una matriz C con 1 donde seandistintos aij y bij .

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 14

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Introduccion de una matriz

    1) Introduccion explcita de sus elementos:

    El comienzo y final de la matriz se indica mediante corchetes.Los datos se introducen por filas, separadas por espacios enblanco (uno o varios) o comas.Las filas se separan mediante punto y coma (;) o mediante latecla INTRO.Para introducir lneas largas se usan los puntossuspensivos(...), al final de la lnea.

    Ejemplo

    Para introducir la matriz A =

    1 0 12 1 1

    1 2 0

    daremos en

    Matlab el siguiente comando:>> A = [1, 0,1; 2,1, 1; 1, 2, 0]

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 15

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Introduccion de una matriz-2

    Las matrices pueden crearse a partir de expresiones Matlab tal ycomo aparece en las siguientes expresiones.

    Ejemplo

    >> B = 3 A+ A2, B = inv(D) (L+ R)C = [A B ;B zeros(A)]

    Es recomendable usar parentesis que clarifiquen las expresiones.

    Ejemplo

    Si x=[2,5;7,0] y queremos calcular y =1

    2 + x2deberemos

    introducir en Matlab: >> y = 1/(2+ x.2)

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 16

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Introduccion de una matriz-3

    Puede cargarse desde un fichero de texto de nombre matriz.mque contiene la lnea: A = [1, 0,1; 2,1, 1; 1, 2, 0].La introduccion de la instruccion:>> matrizproduce el mismo resultado que si la lo hacemos directamente enel interprete Matlab.

    Podemos guardar la matriz mediante>> save matrizy posteriormente recuperarla mediante:>> load matriz

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 17

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Vectores

    Por enumeracion de sus elementos.

    Usando la notacion rango: Valor Inicial : paso : Valor Final

    A partir de otros u otra operacion que produzca un vector:y = 3 x + sin(2 pi/5)

    Ejemplo

    >> x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>> y = 1 : 10>> z = 1 : 2 : 10>> u = x+ sin(y)>> v = linspace(0, 5, 12)>> w = diff(x)

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 18

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejercicio

    Calcula lo que devuelve:

    >> A = [1; 2; 3]

    >> B = [1; 2; 3];

    >> C = [1; 2, 3]

    >> D = [1, 2; 3, 4]

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

    >> F = [1 : 9; [1 : 9]. 2]

    Dado v=[1 2 3] y w=[4 5 6] que devuelve:>> x = [v;w; 0 3 1]

    Que instruccion debemos teclear para obtener:v=[2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 . . . 4.8 4.9 5]?

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 19

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Operaciones con matrices

    A+B, A-B, A*B, p*A (p un escalar) son la suma, resta,producto de matrices y matriz por escalar. Devuelve un errorsi las matrices no tiene dimension compatible.

    A \ b, A/b realizan la division directa y division inversarespectivamente de matrices, esto es, A1 b y A b1.Es importante que x = A \ b nos da la solucion del sistema:A*x=b, mientras que X=A/B nos da X = A B1 solucion aX*B=A. Cuidado: Si el sistema es imposible da la solucionmnimos cuadrados.

    A p (p un escalar) devuelve la potencia p-esima de A. Si p esnatural mayor que 1 se calcula por productos sucesivos. Si nose calcula por autovalores y autovectores.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 20

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejercicios

    Dadas las matrices A=

    1 2 34 5 6

    7 8 9

    , B=[1 2 3] y

    C =

    1 3 34 7 6

    7 0 2

    Calcular:

    D=A+B, E=2A-5C, A3, A5,A = A1/2.

    Inversa de A mediante inv(A) y como A1.

    La solucion de Ax=b.

    La solucion de AX=C.

    F = (3A 5C )1B

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 21

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejercicios

    Indica la instruccion que debemos ejecutar, si queremos resolver el

    sistema Ax=b?

    1 2 34 5 6

    7 8 9

    *

    x1x2

    x3

    =

    366804

    351

    Y Para resolver x A = b Que instruccion sera la correcta?Soluciona) x = A\b, o bien x = inv(A) bb) x = b/A, o bien x = b inv(A)NOTA: En el segundo caso b debe ser un vector 1 3 o matrizk 3, resultando x un vector de igual dimension.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 22

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Matrices especiales

    ones(m,n): Matriz de unos de m filas y n columnas.

    zeros(m,n): Matriz de ceros de m filas y n columnas.

    rand(m,n): Matriz m n de numeros aleatorios distribuidosuniformemente en (0,1).

    randi([Imin,Imax],m,n): Matriz m n de numeros aleatoriosdistribuidos uniformemente en los enteros entre Imin e Imax.

    randn(m,n): Matriz m n de numeros aleatorios distribuidossegun la normal de media 0 y desviacion tpica 1.

    eye(n): Matriz identidad de orden n.

    size(A): Un vector [m,n] con las filas y las columnas de A.

    length(v): Longitud de un vector.

    A : Matriz traspuesta (conjugada).

    A. : Matriz traspuesta (sin conjugar los elementos).

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 23

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Operaciones y funciones matriciales

    inv(A) calcula A1.

    det(A) calcula el determinante.

    trace(A) calcula la traza de A.

    norm(A) calcula la norma de la matriz.

    poly(A) proporciona el polinomio caracterstico de una matriz.

    expm(A) calcula eA (funcion matricial).

    sqrtm(A) calculaA.

    logm(A) calcula la matriz logaritmo neperiano.

    [V,D]=eig(A) calcula los autovalores y autovectores de A.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 24

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Otras funciones matriciales

    Sea p un vector y A una matriz.

    rot90(A) gira la matriz A.

    fliplr(A) pasa la primera columna al final.

    flipud(A) pasa la primera fila a final.

    reshape redimensiona matrices.

    vander(p) matriz de Vandermonde con penultima columna p.

    diag(p,k) da una matriz que tiene por diagonal k-esima el vector p.

    diag(A,K) da un vector, que es la diagonal k-esima de A.

    diag(diag(A)) produce una matriz con todos los elementos ceroexcepto los de la diagonal que son los de A.

    tril(A) pone a ceros los elementos por encima de la diagonal.

    triu(A) analogo al anterior pero con ceros bajo la diagonal.

    lu(A) produce 3 matrices L, U, P tales que LU=PA.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 25

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejemplo

    Ejemplo

    Dado A=[1 2 3; 4 5 6] Que devuelve: >>ones(size(A))? Yque devuelve: >>length(A)?

    Que puede devolver: >>rand(2)? a) [0.2345 0.3611],

    b)

    (0.1578 0.76910.5454 0.8328

    ), c)

    (0.1578 1.76910.5454 1.8328

    ), d)

    (0.23270.1322

    )

    Que orden hay que dar para que Matlab devuelva:

    ans=[1 0; 0 1; 0 0]?

    Si tenemos la matriz A =

    (1 + 2 i 1 i3 + 2 i 2 6 i

    )Que devuelve

    A? Que devuelve A.? Que devuelve conj(A)? Que devuelveB=zeros(size(A))?

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 26

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejemplo

    Ejemplo

    Si M =

    (2 33 2

    ), e introducimos:

    N = [ones(2) M; zeros(2) eye(2)] Que matriz se obtiene?

    Ejemplo

    Introducir: >> X = [1 2 3 pi], Y = zeros(size(X))Que resulta?

    Ejemplo

    Introducir: >> x = 1 : 0.3 : 2, y = 2 x+ 1 Que resulta?

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 27

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Seleccion de elementos y submatrices

    A(x , y) es la matriz formada por los elementos de A referenciadospor las filas indicadas por x , y por las columnas indicadas por y .Senalar que x e y pueden ser escalares, pero tambien vectores.

    A(:, y) todas las filas de A y las columnas indicadas por y .

    A(x , :) referencia a las filas indicadas por x y todas lascolumnas de A.

    Dada A =

    2 1 2 2 0 41 0 5 7 12 32 8 9 3 1 1

    . Cuanto valen:

    A(2,4)

    A([1 3],:)

    A([3:-1:1],[4,2])

    A([3 1 2 1],[1 3])

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 28

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejemplo

    Dado el vector v=[7 6 5 4 3 2 1] Como se obtiene la terceracomponente?

    Que devuelve la instruccion: >>x=v(1:3)?

    Que devuelve la instruccion: >>x=v([3 5 1 7])?

    Que devuelve la instruccion: >>x=v(3:-1:1);? Y la>>x=v(3:-1:1) ?

    Que devuelve >> v(2:5)?

    Dada la matriz A=[1 2 3; 4 5 6; 7 8 9], calcula lo que devuelven lassiguientes instrucciones:

    >>A(3,3)=0

    >>E=A(1:2,2:3)

    >>B=A(3:-1:1,1:3)

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 29

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejemplos

    Sea A=[4:-2:0;2:3:8;3:5:14] escribir la matriz que devuelve:

    >> A(2,1)=5*A(3,2)-A(1,1)

    >> A(2,:)=A(2,:)-2/4*A(1,:)

    >> D=A(1:2,2:3)

    >> E=A(1:2,:)

    >> F=A(:)

    >> G=A(1:2)

    >> H=A(:,3)

    >> K=A([1 3],:)

    >> L=A([1 3],[2 3])

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 30

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Operaciones elemento a elemento

    X .Operador Y (X e Y matrices)

    Realizara la operacion indicada de los elementos que se encuentrenen la misma posicion.

    Ejemplo

    >> A = X . Y , calcula Aij = Xij Yij .

    Ejemplo

    Si M =

    (2 32 2

    )y N =

    (1 01 1

    )entonces:

    M N =(

    5 34 2

    ), M. N =

    (2 02 2

    )

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 31

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Operadores punto

    X .Operador Y (Producto, Division, Potencia)

    Las funciones de Matlab operan elemento a elemento:

    exp(A) calcula una matriz con los elementos eAij

    sqrt(A) calcula una matriz con los elementosAij

    log(A) calcula el logaritmo neperiano elemento a elemento.

    abs(A), sin(A), cos(A). . .

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 32

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Polinomios

    Para representar un polinomio en Matlab usaremos vectores. Elpolinomio

    P(x) = anxn + an1x

    n1 + . . .+ a1x1 + a0

    se representa en Matlab como

    p = [an, an1, . . . a1, a0]

    Por ejemplo: si queremos representar en Matlab el polinomio:P(x) = 3x2 + 4x + 5 lo almacenaramos de la siguiente forma:>> p = [3, 4, 5].Y para q = x4 5x3 lo haremos mediante>> q = [1,5, 0, 0, 0].

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 33

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Operaciones con polinomios

    Las operaciones tpicas para manipular polinomios son:

    P(x) + Q(x), P(x) Q(x): Se ponen como >> p+ q,>> p q, pero hay que tener mucho cuidado en usarvectores de igual longitud.

    P(x) Q(x): Se calcula mediante >> conv(p,q)P(x)Q(x) : Con >> [c, r] = deconv(p,q)

    P (x): En Matlab como >> polyder(p)P(x)dx : En Matlab como >> polyint(p)

    Evaluar P(x): En Matlab como >> polyval(p, x)

    Las races de P(x) = 0: En Matlab como >> roots(p)

    Polinomio con races dadas: >> poly(x)

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 34

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejercicios

    Poner las instrucciones Matlab para:

    Expresar los polinomios: P(X ) = x4 + x2 1 yQ(x) = (1 x2)2.Hallar los puntos en que P(x) = 2.

    Evaluar P(3), P(x) siendo x=1,1.1, 1.2,. . . ,3.

    Hallar los puntos en que se cortan, es decir, resolverD(x) = P(x) Q(x) = 0.Hallar su producto C (x) = P(x) Q(x).Hallar el cociente y resto de P entre Q.

    Resolver la ecuacion algebraica: P(x) Q(x) + x2 2 = 0.Calcular P(5), P (5) y P (5).

    Como obtenemos IP =P(x)dx y que forma tomara.

    Calcular I = 42 P(x)dx

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 35

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    IntroduccionManipulacion de matrices y vectores

    Ejercicio resuelto

    Ejemplo

    Dado el polinomio: p(x) = x4 3x3 + 2x 5Hallar sus races.>> p = [1,3, 0, 2,5], r = roots(p)Representarlo graficamente en [-5,5].xx = 5 : 0.01 : 5; y = polyval(p, xx);plot(xx, y), gridHallar el area delimitada entre el eje OX y las 2 races realesque posee.Ip = polyint(p),Area = polyval(Ip, r(1)) polyval(Ip, r(2)).NOTA: A estas alturas sabemos que r1 2.96 y r2 1.2son las races reales de p(x).

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 36

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Funciones

    Como en todos los lenguajes las funciones pueden ser de librera odefinidas por el usuario.Las funciones de librera se cargan al iniciar Matlab y son las basicasdel lenguaje y externas estando incluidas en las TOOLBOXES instaladas.Cualquier usuario puede anadir sus propias funciones facilmente.Tanto los parametros de llamada, como los resultados de lafuncion son matrices.Una misma funcion puede devolver uno o varios argumentos, segun serealice la llamada y recibir diferente numero de parametros de entrada.

    d=eig(A) devolvera en d los autovalores de A.

    [v,d]=eig(A) devuelve los autovectores en v y los autovalores en d.

    help eig indica todas las posibles formas de llamar a la funcion eig.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 37

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Definicion de funciones

    La forma es:function [y1, . . . , ym] = nombre funcion(x1, . . . , xn)sentencias

    Ejemplo

    Definir la funcion en Matlab que calcule la siguiente funcion:

    alfa(x) =7x2 sen(x)

    2x + 3.

    function y=alfa(x)y=(7*x.2-sin(x))./(2*x+3);

    Luego mediante>> y = alfa(7), y2 = alfa([123]), x = 1 : 10; y3 = alfa(x)podremos obtener su valor

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 38

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Caractersticas

    Las variables que se declaren dentro de la funcion son locales.

    La unica conexion entre el espacio de trabajo y el cuerpo de lafuncion se hace a traves de lista entrada y lista salida.

    La instruccion return provoca la terminacion inmediata de laejecucion del fichero.

    % se emplea para introducir comentarios. Los comentariosque se escriban hasta la primera lnea de codigo, se devuelvencuando se solicita ayuda mediante help nombre funcion.

    nargin y nargout: numero de parametros de entrada y desalida (respectivamente).

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 39

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    funciones INLINE

    Conviene ver: help inline.INLINE(EXPR) construye un objeto funcion inline de la expresionMatlab contenida en EXPR.Ejemplos:g = inline(t2)g = inline(sin(2*pi*f + theta), f, theta)

    Ejemplo

    Introduce en Matlab la funcion y = ex/4sen(x) utilizando laorden inline y la funcion fplot para dibujarla en [0, 10]>> F = inline(exp(x./4). sin(x))>> fplot(F, [0, 10]); grid on

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 40

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Scripts

    Contienen instrucciones Matlab y para ejecutarlos basta conponer su nombre. Se crean y modifican con el editor de textos.Se usan para introducir datos iniciales (matrices grandes) yorganizar los calculos (programas).

    Ejemplo

    Se crea un fichero de texto de nombre ej1.m con las ordenes:x=1:10;y=x.2-2;plot(x,y)grid on

    Lo llamaremos mediante >> ej1 y dibujara la grafica.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 41

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Instrucciones de Entrada/Salida

    echo visualiza el comando en ejecucion.

    disp visualiza texto o numeros en la pantalla.

    input permite visualizar un texto y obtener datos desdeteclado.

    keyboard permite leer y modificar variables desde teclado.

    pause detiene la ejecucion un tiempo determinado o hastapulsar una tecla.

    return provoca la terminacion de la ejecucion del fichero ydevolucion del control a la instruccion llamante.

    menu permite generar un menu de opciones.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 42

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Funciones de orden superior y manejo de excepciones

    Para pasar funciones como argumento a otras funciones.

    feval evalua la funcion cuyo nombre se ha pasado comoprimer parametro con los argumentos que se han pasado comoparametros adicionales.

    eval permite interpretar cadenas de texto que contienenexpresiones Matlab validas.

    error sirve para dar un mensaje de error desde un fichero, ymuestra su argumento en pantalla.

    Ejemplo

    >>x=[4 8 16];>>fun1=sqrt;>>feval(fun1,x)>>ans= 2.0000 2.8284 4.0000

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 43

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Funciones matematicas

    Las funciones matematicas en Matlab, estan dirigidas a vectores,as: >> x = [0 pi/2 pi], sin(x), produce la salida:>> ans = 0 1 0Una lista de funciones elementales puede verse mediante help elfun

    Funciones trigonometricas elementales incluidas son:

    sin, cos, tan, asin, acos, atan, asinh, acosh, atanh, . . .

    Otras funciones elementales son:

    abs, angle, sqrt, exp, log, log2, log10, round, fix, ceil, floor,rem, sign . . . .

    Funciones con salida un vector: diff, linspace, find, sort . . .

    Funciones estadsticas: Entre ellas estan max, min, sum, prod,sort, cumsum, cumprod, mean, median, std, cumsum,cumprod, hist, corrcoef, cov, var, corr, skewness, kurtosis,rand, randn, randi, geomean, harmmean, mad, prctile,boxplot, . . .

    (Consultar help stats para una lista completa).Departamento Matematica Aplicada Introduccion a MATLAB Pag. 44

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    FuncionesFunciones definidas por el usuarioFicheros de ordenes, scripts

    Predicados

    any(x) devuelve cierto si algun elemento del vector x no escero.

    all(z) devuelve cierto solo si los elementos de x son distintosde 0.

    find(x) devuelve las posiciones de los elementos distintos decero del vector x.

    exist(var) devuelve cierto si la variable existe.

    isnan(A) devuelve cierto donde vale NaN y cero donde no.

    finite(A) devuelve cierto en los valores finitos y 0 donde no losea.

    isempty(A) devuelve cierto si es una matriz vaca.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 45

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Sentencias de control de flujo

    Sentencia IF ... THEN ... ELSE:

    if condicion,sentencia-1

    elseif condicion2sentencia-2

    elsesentencia-3

    endCuidado: La condicion debe dar un valor, no un vector o matriz.Estara mal:x=[2 3 4], y=[1 3 2], if x==y, z=1, else z=x-y, endque podra hacerse mediante:if sum(abs(x-y))==0, z=1, else z=x-y, end

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 46

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Case

    Sentencias CASE, SWITCHswitch Variable,case 1, Sentencias para Variable=1.case 2, Sentencias para Variable=2.. . .case 8,10,12, Sentencias cuando Variable vale 8, 10 o 12.

    otherwiseerror(No esta contemplado el caso.)

    end

    Si la variable de conmutacion vale 1, ejecuta la 1a, si vale 2 la 2a,etc.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 47

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Bucles

    Sentencia FOR:

    for matrizsentencias

    end

    Sentencia WHILE:

    while condicionsentencias

    endLa instruccion break provoca la salida del bucle, o del ultimo buclesi estan anidados.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 48

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Ejemplo

    Ejemplo

    1 for k=1:4, y(k)=x(k+2)-x(k),end

    2 k=1:4, for k, y(k)=x(k+2)-x(k),end

    3 k=1, while k

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Comandos graficos

    plot(x,y) representa la tabla de puntos (xi , yi ).>> x = 1 : 0.5 : 10; y = sin(x);plot(x, y), gridrepresenta la funcion y = sen(x).

    fplot(funcion, [a, b]) dibuja una funcion.

    hold on/off Permite superponer dos o mas graficas.

    grid on activa una cuadrcula en la figura.

    whitebg cambia el color de fondo.

    title, xlabel, ylabel, xcolor, ycolor,. . . consultar helpcomando.

    shg permite visualizar el ultimo grafico en la pantalla.

    clf, clg borran la pantalla de graficos.

    subplot(m,n,p) permite crear varias graficas en una mismafigura.

    figure abre una nueva ventana de graficos.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 50

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Ejemplo

    Ejemplo

    Dibujar el seno y el coseno en la misma figura.>> fplot(sin(x), [2 pi, 2 pi])>> hold on, fplot(cos(x), [2 pi, 2 pi])La siguiente orden hace lo mismo>> fplot([sin(x), cos(x)], [2 pi, 2 pi])Representar graficamente en [0, 10] la funcion y = ex/4sen(x)introduciendo en Matlab la funcion. Expresar los valores en una tabla.function y=fun22(x)y=exp(-x./4).*sin(x);y luego ejecutar:>> x = 0 : 0.01 : 10; y = fun22(x);plot(x, y); grid>> [x, y]

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 51

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Ejercicios

    Dada la matriz A=[1,2,3;4,5,6;7,8,9], calcula:

    1 El valor de C al ejecutar: C = (A < 3).

    2 Que hacemos para obtener:

    1 0 00 5 0

    0 0 9

    3 Y si queremos obtener

    1 2 30 5 6

    0 0 9

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 52

  • Fundamentos de MatlabFunciones y scripts

    Control del flujo

    Bifurcacion condicionalBuclesGraficosEjercicios

    Ejercicios-2

    3 Usando las funciones de algebra lineal, Como podemos

    obtener la siguiente matriz?

    1 1 0 0 01 3 1 0 00 1 5 1 00 0 1 7 10 0 0 1 9

    4 Dado el vector v=[1 2 3], usando las funciones de algebra,

    que instruccion debemos ejecutar para obtener:

    1 0 00 2 0

    0 0 3

    5 Interpolar 5 elementos en progresion aritmetica entre 0 y 20.

    Departamento Matematica Aplicada Introduccion a MATLAB Pag. 53