Sie sind auf Seite 1von 68

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

MATLAB
Curso bsico a
Ing. Manuel Felipe Mej De Alba a

Mayo 2011

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Introduccin y comandos bsicos o a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Qu es MATLAB? e
MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB es un

programa para realizar clculos numricos con vectores y matrices. Como caso a e particular puede tambin trabajar con nmeros escalares -tanto reales como e u complejos-, con cadenas de caracteres y con otras estructuras de informacin ms o a complejas.
MATLAB es un lenguaje de alto nivel y entorno interactivo para el desarrollo de

algoritmos, visualizacin de datos, anlisis de datos y computacin numrica. o a o e


Es una herramienta muy verstil y poderosa. En comparacin con los lenguajes a o

tradicionales, muy fcil de usar. a


Cuenta con unos conjuntos de herramientas (toolbox) de temas espec cos.

Bsicamente ya todo est hecho. a a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Qu es MATLAB? e

Caracter sticas claves:


Lenguaje de alto nivel para computacin tcnica. o e Entorno de desarrollo para manejo fcil de cdigos, archivos y datos. a o Herramientas interactivas para la exploracin, diseo, y solucin de problemas. o n o Funciones matemticas para lgebra, estad a a stica, seales, optimizacin e n o

integracin numrica, entre muchas ms. o e a


Funciones 2D y 3D para la visualizacin de datos. o Herramientas para la construccin de interfaces grcas propias. o a Funciones para la integracin de otras aplicaciones: C, C++, Fortran, Java, Excel. o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Interfaz de MATLAB
La interfaz de MATLAB, inicialmente est se ve como se muestra a continuacin. a o Pero es adaptable a lo que el usuario requiera. Para restaurar la interfaz de MATLAB, en la barra de men View/Desktop Layout/Default. u

Ventana de comandos (Command window) Es la parte de la ventana que ms nos a interesa. En ella se introducen los comandos que se quieren ejecutar dentro de MATLAB.

En la interfaz de MATLAB, se cuenta con las siguientes ventanas: la de comandos (Command Window), el historial de comandos (Command History), el espacio de trabajo (Workspace), la plataforma de lanzamiento (Launch Pad), el directorio actual (Current Directory), la ayuda (Help), el editor de cheros y depurador de errores (Editor& Debugger), el editor de vectores y matrices (Array Editor) y la que permite estudiar cmo se emplea el tiempo de ejecucin (Proler). o o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Entorno de trabajo

Path El path es una lista de directorios donde MATLAB busca archivos para ejecutar, leer, etc. Solo los archivos que estn en el path, son ejecutados por MATLAB. a Directorio de trabajo (Working directory) Es el directorio en el cual se guardan y se ejecutan los archivos por defecto. Los comandos a la derecha ayudan a manejar en que directorio se encuentra MATLAB, Tambin se puede usar la e interfaz.

pwd (print work directory) Su respuesta es el directorio de trabajo. cd (change directory) Cambia el directorio de trabajo. dir Lista los archivos contenidos en el directorio.

El directorio de trabajo es el primero en el path de MATLAB, para ejecutar una funcin o un archivo propio, el directorio de trabajo debe ser el directorio contenedor o del archivo.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ayuda de MATLAB

El principal objetivo del curso es aprender a usar la ayuda de MATLAB. La ayuda solo es para ayudar, no hay que temerle ni huirle. Una instalacin normal de MATLAB puede tener hasta ms de 1000 comandos. Es o a imposible recordarlos todos. El unico comando que hay que recordar son los comandos de ayuda:

help helpwin doc

O en la barra de men help u

Tarea: Buscar en la ayuda de MATLAB, todos los comandos que se han visto hasta ahora.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Variables
Los nombres de las variables en MATLAB, pueden ser de hasta 24 caracteres, el primero debe ser una letra y los otros letras, nmeros, y otros caracteres. u

Escalares Vectores Matrices Cadenas de texto

Con los comandos who y whos , se puede ver las variables creadas. Tambin se e puede usar la interfaz.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Constantes

MATLAB dene por defecto valores, que son de uso frecuente en las ciencias y las ingenier as.

pi

El nmero con un valor de 3,1415927. u

exp(1) La constante de Euler que es igual a 2,7182818. eps Epsilon de la mquina, da una idea de la precisin manejada por el a o sistema, en un pc es igual a 252 = 2,22E 16. inf Innito, un numero mas grande de lo que el programa puede manejar, inf > 1E 308, tambin existe -innito. e

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Complejos
En MATLAB se puden trabajar nmeros complejos agregndole i o j a la parte u a compleja. Pero hay que tener cuidado de no tener variables con este nombre, cuando se trabaje con complejos.

Tarea: Buscar en la ayuda de MATLAB, comandos para operaciones con complejos.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operaciones

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operaciones

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operaciones

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operaciones

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operaciones con funciones internas

La mayor de las funciones comnmente usadas en ingenier se encuentran en a u a MATLAB.


La mayor se llaman como las conocemos, de pronto en ingles. a Es probable sea una contraccin o las primeras letras. o Lo mejor para esto es siempre leer la ayuda.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ejercicios

Determinar mediante comandos: 1. El tamao. n 2. El elemento de la la 3, columna 4. 3. Extraer la primera columna y la tercera la. 4. Extraer la siguiente submatriz [2 1;3 1]. 5. Hallar el numero mximo y el m a nimo. 6. Hallar los trminos de esta matriz al cuadrado y la matriz al cuadrado. e 7. Si la matriz es de coecientes y los trminos independientes son [4 -8 -7 -8] e Cul es la solucin del sistema lineal ? a o 8. Realizar grcas de posicin para el lanzamiento de un proyectil ? a o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Programacin o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Script

1. Es un archivo de texto plano, que se puede editar con cualquier editor. 2. Es lo mismo que ingresar linea por linea.. 3. No recibe parmetros de entrada. a 4. Las variables creadas son globales, y permanecen despus de que se acaba la e ejecucin. o Ejecucin: o Basta con teclear el nombre de archivo, siempre y cuando este se encuentre en el path.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Funciones

1. Es un archivo de texto plano, que se puede editar con cualquier editor. 2. Reciben parmetros de entrada y salida. a 3. Las variables creadas solo pertenecen a esa funcin, solo pueden ser vistas dentro o de sta, por lo tanto mueren cuando las funciones se acaban. e 4. Se usan de la misma forma que las funciones internas de MatLab. 5. La primera linea del archivo tiene que ser: function OUT=NombreFuncion(IN) Ejecucin: o Basta con teclear el nombre del archivo, con los argumentos entre parntesis e NOMBRE(ARGUMENTOS) , siempre y cuando ste se encuentre en el Path. e

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Entrada y salida

La forma ms sencilla preguntar o mostrar los datos al usuario que ejecuta el a programa es con los siguientes comandos

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operadores

Es importante anotar que estos operadores trabajan termino a termino si las entradas son vectores o matrices.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

if-else-end

Si la condicin se cumple se ejecuta la instruccin 1, si no la instruccin 2. o o o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

switch-case-end

Dependiendo del caso (case) se ejecuta la instruccin indicada. o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

for-end

Se ejecutan, las instrucciones para cada valor de la lista, esta lista no tiene que ser consecutiva, ni tener un orden especial.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

while-end

Se ejecutan, las instrucciones mientras que la condicin se cumpla. o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

break - continue

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ejercicios
Elaborar un programa como script y como funcin o 1. Diga si una matriz es cuadrada. 2. Diga si un nmero es primo o no, n < 50. u 3. Diga si una matrix de 3x3 es un cuadrado mgico, en la cual la suma de cada una a de las las y columnas es 15. 4. Calcule el factorial de un nmero (Recursin). u o 5. Calcule las ra ces reales de una ecuacin, usando cualquier mtodo. o e 6. Genere una matrix de 3x3 que sea un cuadrado mgico. a 7. Genere la siguiente matriz con base en su 1 1/5 1/3 1 1/3 1/3 8. Genere la siguiente matriz con base 1 21 n1 tamao n x m: n 1/5 1/5 1

en su tamao n x m: n 2 1 1m m 2 2 n2 n

9. Elabore un programa que solicite al usuario datos de entrada para el modelado del lanzamiento del proyectil. Y que permita el anlisis de varias grcas a a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Grcas a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Introduccin o

Como se vi anteriormente MATLAB, est enfocado principalmente al trabajo con o a matrices, por lo tanto no es de extraar que los argumentos principales de las n funciones de ploteo, sean de este tipo. 1. Las matrices argumentos, contienen las posiciones, de puntos por donde pasara la linea o la supercie. 2. Estas matrices pueden ser generadas, por medio del operador : , o el comando linspace .

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Introduccin o
Las grcas son en esencia poligonales, es decir los puntos formados por las matrices a son unidos mediante lineas rectas. Entre ms puntos existan menos poligonal son las a grcas. a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 2D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 2D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 2D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 2D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ejercicios

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ejemplo completo 2d

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Tipos de lineas

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Grcas 3D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 3D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 3D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 3D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 3D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Pasos para obtener un grca 3D a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ejercicios

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Variedad de grcos a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Variedad de grcos a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Variedad de grcos a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Variedad de grcos a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Variedad de grcos a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Varias grcas en un misma ventana a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Interfaz grca a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Editor grco de MATLAB:Guide a


Se puede acceder a el: tecleando guide en la ventana de comandos, en la barra de menu: file new gui el icono o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Componentes de un interfaz grca a

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Propiedades de los componentes

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Entrada y salida de datos


Todos las propiedades y variables en un gui, estn dentro de la estructura handles . a Se obtienen sus valores usando el comando get . Para cambiar un valor set .

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operaciones comunes

1. Use str2num y num2str para cambiar entre cadena de caracteres y valores numricos. e 2. Es comn tener que realizar operaciones con cadenas, chequear strcat , u strcmp 3. Para actualizar los cambios una vez naliza la funcin usar: o guidata(hObject,handles); 4. Validacin de datos use la serie de comandos is* , con stos se puede determinar o e si un dato es una cadena, un nmero, est vac es innito, es NaN, etc. u a a, 5. Para interactuar con el usuario, usar los comandos: msgbox , dialog , errordlg , helpdlg , inputdlg , listdlg , questdlg , warndlg 6. Para seleccionar archivos con el buscador usar: uigetfile

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Mtodos numricos e e

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Sistemas de ecuaciones lineales

La forma fcil y normal de resolver un sistema Ax = b a x = A\b o x = linsolve(A,b) Aunque en casos espec cos puede no ser la mas ecaz, por lo general su tiempo de respuesta es bueno. Se mejora mucho el tiempo de ejecucin si al comando linsolve se le agrega o informacin de la matriz a resolver: o x = linsolve(A,b,ops) Donde ops, es una estructura que dene ciertas propiedades de la matriz. Ms a informacin en la ayuda. o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Sistemas de ecuaciones lineales


En casos en los cuales se desean resolver diferentes sistemas pero en los cuales, la matriz A es unica y solo cambia el vector b. Puede resultar mejor usar la transformacin LU = AP: o

Si la matriz A es denida positiva, es decir i 0, existe una matriz U triangular superior e invertible tal que A = U T U.

Los comandos \ pueden ser remplazados por linsolve . Qu propiedades tendr e a la matriz, para mejorar el tiempo de la solucin? Mejora el tiempo de solucin? o o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ecuaciones no lineales

Primero se dene la funcin, la forma rpida de denir funciones sencillas o a F = @(xs) expresin . o Si se tiene una funcin F (x) no lineal denida como una funcin, a la que se le desea o o conocer su ra entonces se puede usar el comando fzero(F,x0) , donde el valor de z, x0, es un punto semilla. Variando la semilla podr dar ra a ces diferentes. Si se tiene un sistema de ecuaciones no lineales. Se dene una funcin vectorial F(x). o Su solucin se obtiene mediante el comando: o fsolve(F,x0) Este comando tiene opciones que deben ser revisadas en caso de querer mejorar el comportamiento.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Derivadas e Integrales

Si se tiene un vector F con los datos de un funcin, generados a partir de un vector x, o entonces:

Derivada: El comando diff calcula las diferencias entre elementos adyacentes de un vector. Entonces es posible evaluar la derivada as : Fx=diff(F)./diff(x) En 2 dimensiones es interesante el comando gradient

Integral: El comando trapz(F,x) evala la integral por la regla del trapecio. u Adicionalmente si se dene F como funcin se pueden usar los o comandos q = quad(fun,a,b) . La forma rpida de denir a funciones sencillas F = @(xs) expresin . o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Ecuaciones diferenciales ordinarias

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Otras funciones

En MATLABhay comandos para realizar la mayor de las operaciones necesarias, hay a que buscar en la ayuda. Si por alguna razn no se tiene el comando. Entonces se o puede programar. Entre otras operaciones tenemos:
Interpolacin unidimensional y multidimensional. o Optimizacin lineal y no lineal, con diferentes tipos de restricciones. o Ajuste de datos. Ecuaciones diferenciales ordinarias y parciales.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Computacin simblica o o

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Computacin simblica o o

El Toolbox de MATLABde clculo simblico, permite realizar computacin simblica a o o o dentro del entorno matlab. Si bien no es el fuerte de MATLABes otra herramienta con la que se cuenta. Con sta se pueden realizar las siguientes operaciones: e
Solucin de ecuaciones. o Transformadas. Simplicaciones.

Algebra lineal.
Derivadas. Integrales.

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Variables simblicas o

Antes de trabajar con alguna expresin de manera simblica es necesario denir las o o variables como simblicas. Para esto se pueden usar los comandos x=sym(x) o o syms x . La primera se denen las varibles una a una con opciones. La segunda se pueden denir varias variables a la vez. Una vez denidas se pueden realizar operaciones:

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Operaciones comunes
Si f es una expresin simblica, entonces: o o simplify(f) Simplica la expresin. o expand(f) Distribuye los productos sobre las sumas. factor(f) Factoriza el polinomio. subs(f,x,4) Sustituye el valor de x en f por 4. subs(f,x,exp(x)) Sustituye el valor de x en f por exp(x). solve(f,x) Despeja x en la ecuacin. o ezplot(f) Plotea f, debe ser una funcin de una sola variable. o diff(f,x,n) La derivada n de f con respecto de x. int(f,x) Integral indenida de f respecto de x. int(f,x,1,10) Integral denida de f respecto de x entre 1 y 10. eval(f) Evala numricamente la expresin. La mejor forma de conectar la u e o parte simblica con la numrica. o e

Introduccin o

Programacin o

Grcas a

Interfaz grca a

Mtodos numricos e e

Computacin simblica o o

Mupad
El toolbox de MATLABest basado en Mupad, un programa de lgebra simblica a a o desarrollado por SciFace Software GmbH. Matlab cuenta con este programa. Para acceder a el basta teclear el comando mupad

Das könnte Ihnen auch gefallen