curso matlab

Upload: cristianjpc

Post on 09-Jan-2016

218 views

Category:

Documents


0 download

DESCRIPTION

MatLab

TRANSCRIPT

  • Programacin en Ingeniera Elctrica Rafael Guzmn CabreraE-mail:[email protected] Tareas:[email protected]

  • Horario12:00-13:30 Lunes, Mircoles y ViernesSaln 206Laboratorio de computo

  • IEI01.09 Programacin en Ingeniera Elctrica PRERREQUISITOS: Lenguaje de Programacin.

  • OBJETIVOAl trmino del curso el alumno deber dominar y conocer los fundamentos bsicos de un lenguaje de programacin de alto nivel, orientado al tratamiento de clculo matricial y visualizacin grfica de la informacin como una herramienta para todos los cursos de ingeniera.

  • Temario 1. Instalacin del programa. 2. Alcances y limitaciones. 3. Manejo de instrucciones bsicas. 4. Edicin de programas en lenguaje de alto nivel. 5. Utilizacin de funciones especiales. 6. Compilacin de archivos de bajo nivel y generacin de libreras. 7. Uso de herramientas para la edicin de ventanas para el manejo de archivos. 8. Ejemplos de aplicacin a la Ingeniera Elctrica. 9. Ejemplos de aplicacin a la simulacin. 10. Introduccin a las herramientas de aplicacin.

  • BIBLIOGRAFA:Hanselman, D., Littlefield, Bruce, Mastering MATLAB: A comprehensive Tutorial and Reference, MATLAB Curriculum Series, Prentice-Hall, N. J., ISBN: 0-13-191594-0.Part-Enander, Eva, Sjoberg, Anders, Meling, Bo, Isaksson, Pernilla, The MATLAB Handbook, Addison-Wesley, 1996, ISBN: 0-201-877570.

  • Calificacin Tareas y trabajo: 20%Exmenes Parciales: 40 %Proyecto final: 40

    Es importante asistir PUNTUALMENTE a las clases (se llevara un registro de asistencia) Tareas:[email protected]

  • INTRODUCCIN Qu es Matlab?, MATrix LABoratory MATLAB es un programa para realizar clculos numricos con vectores y matrices. Como caso particular puede tambin trabajar con nmeros escalares, tanto reales como complejos. Una de las capacidades ms atractivas es la de realizar una amplia variedad de grficos en dos y tres dimensiones. MATLAB.

  • Sitio Oficialwww.mathworks.com

    Existe mucha informacin y material.

  • De que se trataEs un conjunto de productos integrados para:anlisis de datosvisualizacindesarrollo de aplicacionessimulacindiseogeneracin de cdigo

  • Algunas caractersticasApplication development ToolsToolboxesData Acquisition and Access Tools

    SimulinkStateflowBlocksetsCode Generation Tools

  • Usos tpicos de MatlabClculo numricoDesarrollo de algoritmosModelado, simulacin y desarrollo de prototiposAnlisis y visualizacin de datosConstruccin de grficasDesarrollo de aplicaciones en distintas reas cientficas y tecnolgicas

  • Es un lenguaje de alto nivel

    Sistema abierto

    Posee extensiones (Toolboxes)

    Utiliza notacin matemtica standard

    Integra en un nico ambiente de software: rutinas de clculo, visualizacin y programacinPermite incorporar nuevas funciones para su uso en aplicaciones particularesColecciones de funciones para resolver problemas especficosCaractersticas de Matlab

  • Los elementos bsicos del Matlab, como cualquier otro lenguaje de programacin, son: constantes, variables, operaciones, expresiones y funciones.

    Constante numricas: Nmeros enteros: 2 35 -48 Nmeros reales: 2. -35.2 48.45 Mximo de 16 cifras significativas Utilizando la letra E a continuacin de un n con punto decimal [2.2250e-308 1.7e+308]. Nmeros complejos: 2+3i 4*j i,j=(-1)Operaciones aritmticas elementales: Suma: +Multiplicacin: *Exponenciacin: ^ Resta: -Divisin: /Primero exponenciaciones, luego divisiones y multiplicaciones por ltimo sumas y restas.Introduccin_____________________________________

  • Introduccin_____________________________________Formatos: por defecto matlab tiene formato corto pero se puede elegir entre los siguientes formatos. >> format long (14 cifras significativas) >> format short (5 cifras significativas) >> format short e (notacin exponencial) >> format long e (notacin exponencial) >> format rat (aproximacin racional)

    Variables predefinidas en Matlab:

    i = (-1) pi = Inf= NaN= clculos indefinidoseps = < n que + otro n=n coma flotante 2.22e-16date = valor de la fecha actual rand = genera nmeros aleatorios [0 1]realmin = n+

  • Introduccin_____________________________________Funciones de matlab:nombre(argumento) sqrt (x) raiz cuadrada abs(x) mdulo de x conj(z) conjugado de un complejo real(z), imag(z) parte real e imaginaria de z respectivamente exp(x) calcula ex, siendo x real o complejo sin(x) asin(x) [-/2 /2] cos(x) acos(x) [0 ] tan(x) atan(x) [-/2 /2] angle(z) log(x) (en base e) log10(x) rats(x) rem(x,y) resto de x/y round(x) sign(x)Comandos de ayuda: help lookfor what ficheros .m y .mat del directorio actual dir ficheros del directorio actual

  • Introduccin_____________________________________ type nombre_fichero Muestra el contenido del fichero delete nombre_fichero Borra el fichero cd cambia de directorio pwd indica el directorio actual which nombre_fichero india el directorio donde esta ! Abre una ventana de MSDOS que se cierra cuando volvemos a Matlab

    startup.m fichero de arranque al ejecutar matlab.Para guardar en un fichero los comandos que se ejecutan en una sesin se pone >> diary nombre_fichero...>> diary off

  • Introduccin_____________________________________diary off dirtype tema1.dia

  • VECTORES Y MATRICES Las matrices son el tipo fundamental de dato en Matlab. A=[1 3 5; 6 9 2; 4 8 7]

    A =

    1 3 5 6 9 2 4 8 7

    det(A)

    ans =

    5 A^2+3*A

    ans =

    42 79 61 86 142 68 92 164 106MATrix LABoratory-- datos son matrices-- reglas del lgebra lineal

  • Vectores y matrices_______________________________Funciones de matlab especficas para vectores:

    sum(v) suma prod(v) productov` transposicin de vectores (filas columnas)dot(v,w) producto escalar de vectorescross(v,w) producto vectorial de vectores[y,k]=max(v) valor mximo de las componentes de un vector k indica la posicin, lo mismo para min(v) valor mnimo

  • Vectores y matrices_______________________________diag(A) Obtencion de la diagonal de una matriz. sum(diag(A)) calcula la traza de la matriz Adiag(A,k) busca la k-sima diagonal.

    norm(A) norma de una matriz, calcula el mximo de los valores absolutos de los elementos de A

    Generacin de matrices:Generacin de una matriz de ceros, zeros(n,m)Generacin de una matriz de unos, ones(n,m)Inicializacin de una matriz identidad eye(n,m)Generacin de una matriz de elementos aleatorios rand(n,m) Matrices con diagonal dada diag(v), diag(v,k) [X Y] columnas, [X; Y] filas

  • Programacin en MATLABSENTENCIA IF

    if condicion1 bloque1elseif condicion2 bloque2elseif condicion3 bloque3else bloque4end

  • Programacin en MATLABSENTENCIA IF

    Ejemplo:if x==0 disp('x es igual a cero')elseif x > 0 disp('x es mayor que cero')else disp('x es menor que cero')end

  • Programacin en MATLABSENTENCIA FOR

    for i=limiteInf:step:limiteSup sentenciasend

    o bien,

    for i=vectorValores sentenciasend

  • Programacin en MATLABSENTENCIA FOR

    Ejemplo:for i = 0:2:10 disp(2^i)end

  • Programacin en MATLABSENTENCIA WHILE

    while condicion sentenciasend

  • Programacin en MATLABSENTENCIA WHILEEjemplor=input('Ingrese el radio o cero para terminar ');while r > 0 sup=pi*r^2; fprintf('Superficie = %.2f\n',sup) r=input('Ingrese el radio o cero para terminar ');end

  • Programacin en MATLABSENTENCIA BREAKHace termina la ejecucin del bucle ms interno

    Ejemplowhile 1 r=input('Ingrese el radio o cero para terminar '); if r

  • Desde Matlab 5 se ha incorporado la estructura switch que permite realizar bifurcaciones en un programa atendiendo al resultado de una expersinswitch expresioncase expresion_0comandos_0 que deben ejecutarsecase expresion_1comandos_1 que deben ejecutarsecase expresion_2comandos_2 que deben ejecutarseotherwisecomandos escoba que deben ejecutarseend

  • Lectura y escritura en ficheros externos

    La lectura y escritura de informacin en ficheros externos se lleva a cabo esencialmente con los comandosfread y fscanf para lecturafprintf y fwrite para escrituraEl procedimiento general en todos los casos es:

    -Abrir el fichero del que se desea leer o en el cual deseamos escribir.-Colocar el puntero de lectura o escritura en la posicin deseada.-Leer o escribir las variables.-Cerrar el fichero.

  • -Abrir el fichero el comando es fopen y su estructura ident=fopen(nombre de fichero)En ident se guarda un nmero de identificacin si es -1 es que el fichero no se ha podido abrir.-Cerrar ficheros el comando es fclose y su estructurafclose(ident)fclose(all)verif=fclose(all)-Posicionamiento del puntero.1.-Posicionar el puntero al inicio del archivo con nmero de identificacin ident:frewind(ident)2.-Posicionar el puntero dentro de un archivotest=fseek(ident,posi,origen)

  • Comandos de entrada salidainput: nos permite introducir datosvariable=input(mensaje a pantalla);

    disp: muestra un texto por pantalladisp(El algoritmo no ha convergido)

    menu: genera un men que permite al usuario elegir entre distintas opcionesopcion=menu( titulo del mensaje,opcion1,...opcionp )

    error: informa de la existencia de un error y detiene la ejecucin del programa devolviendo el control al teclado

  • Archivos de extensin .mSon archivos de textos que se utilizan para definir funciones y scripts.Puede utilizarse cualquier editor de texto, pero MATLAB posee uno especializado con facilidades para depuracin.Pueden invocarse desde la ventana de comandos o desde otros scripts o funciones.Estarn accesibles aquellos scripts y funciones de los directorios agregados en el path de MATLAB y los del directorio corriente.

  • Definicin de ScriptsLos scripts son archivos que contienen una sucesin de comandos anloga a la que se tecleara en la ventana de comandos.Las variables definidas en los scripts son globales y permanecen en memoria al terminar la ejecucin del scriptCrear el script prueba.mx=[-pi:0.1:pi];y1=sin(x); y2=cos(x);plot(x,y1,x,y2); Desde la ventana de comandos tipearprueba Verificar el workspace

  • Ejemplos

  • Ejemplo 1: Calcular la suma de los n primeros trminos de la sucesin 1, 2x, 3x^2, 4x^3, ...

  • Ejemplo 1: Calcular la suma de los n primeros trminos de la sucesin 1, 2x, 3x^2, 4x^3, ... n=input('Cuntos trminos quieres sumar? '); x=input('Dame el valor del numero x '); suma=1; for i=2:n suma=suma+i*x^(i-1); end disp('El valor pedido es') disp(suma)

  • Ejemplo 2: Decidir si un nmero natural es primo.

  • Ejemplo 2: Decidir si un nmero natural es primo. n=input('Nmero natural que deseas saber si es primo '); i=2; primo=1; while i
  • Tarea (para el prximo lunes):Solucin a la ecuacin de segundo gradorea de figuras geomtricas (circulo, triangulo,.Suma de los primeros 100 trminos de la serie de FibonacciConvertir grados centgrados a Fahrenheit y Fahrenheit a centgrados Leer y hacer ejercicios de este archivo

    ****************************************