Introducción a Matlab Lectura 1
Pre-requisitos Conocimientos básicos de Cálculo y Algebra Lineal Experiencia en programación (útil, mas no es indispensable) Experiencia en el uso de la computadora y el Internet Buena disposición, curiosidad.
Acerca de MatLab MATLAB = MATrix LABoratory Se desarrolló en lenguaje Fortran 77 como interface para el uso de rutinas del algebra lineal (eispak/Linpak) diseñado por Cleve Moler. Comercializado en 1984 por Mathworks Inc. http://www.mathworks.com
Sobre su desarrollo actual El núcleo del sistema está escrito en lenguaje C. Cuenta con un número significativo de rutinas conocidas como m-files. La contribución de la comunidad científica ha permitido su crecimiento. Optimization Image ToolBox. Simulink m-files C-kernel Virtual Reality
Sobre su desarrollo ... MATLAB cuenta con cientos de m-files, códico fuente que puede ser modificado. MATLAB se encuentra disponible para PC (Win9x, W2K, XP, Linux), para Mac and Unix (Sun/HP/VMS/SGI/Alpha/...) Los archivos m-files son independientes de la plataforma. La última versión es MATLAB 6.1, Release 12.1 (2001). La versión 5.3, Release 11 data de 1999.
Entorno de programación Opciones de menús Línea de comandos Entorno de trabajo
Cálculos interactivos Matlab es interactivo. No es necesario declarar variables para operar con ellas. >> 2+3*4/2 >> a=5e-3; b=1; a+b Las más conocidas funciones elementales, así como constantes, se encuentran definidas. >> cos(pi) >> abs(1+i) >> sin(pi)
Acerca de MatLab Un entorno interactivo que permite la experimentación Trabajo por arreglos de datos Representación gráfica rápida Programación sencilla Resultados inmediatos Calidad de trabajos finales Desarrollo de software
Desarrollo de software >> simulink >> pdesolve
Desarrollo de software Control panel >> unamalla Display window
Aritmética de punto flotante en Matlab IEEE Standard para doble precisión x = ± (1+f )·2e f = d1/2 + … + d52/252, dk = 0,1 -1022 <= e <= 1023 Round-off: eps = 2-52 Underflow: realmin = 2-1022 Overflow: realmax = (2-eps) ·21023 s e f 1 2 12 13 64
Cálculos interactivos Matlab usa doble precision con lo cual, se cuenta con 16 dígitos significativos >> format long >> format compact Las variables pueden ser almacenadas en un archivo >> save dump >> clear >> load dump
Cálculos interactivos Podemos saber qué variable contamos en cada momento >> who >> whos Se cuenta con una ayuda en línea e inmediata. >> help function Una ayuda más profunda también se tiene disponible >> helpdesk Se puede obtener los manuales en PDF
Vectores y Matrices Los vectores (arreglos) son definidos como Se cuenta con operaciones típicas >> v + 2 >> v.^2 Se pueden visualizar los datos rápidamente >> plot(v) >> plot(v,’*:’) >> bar(v) >> pie(abs(v))
Vectores y Matrices Las matrices (arreglos 2D) se definine en la forma Se cuenta con las operaciones típicas entre matrices. >> B = A’ >> A*B >> A+B MATLAB es case-sensitive A and a son distintas
Vectores y Matrices Accediendo a elementos >> A(2,3) Accediendo a columnas completas >> A(1:2,:) La instrucción 1:2 es idéntico a [1 2], 2:3:8 es lo mismo que [2 5 8] Podemos realizar distinta referencia de los elementos >> A([3 2],[2 1]) >> B=[A(3,2) A(3,1);A(2,2) A(2,1)]
Vectores y Matrices Las funciones elementales puden ser aplicadas a lo elementos de la matriz >> sin(A) >> help elmat; help elfun Se cuenta con funciones especiales y operadores >> sqrtm(A) >> A.^2 >> A^2 >> A.*B
Vectores y Matrices Algebra Lineal Numérica >> inv(A) >> B\A >> det(A) >> rank(A) En las funciones puede variar el número de argumentos a la entrada o en la salida. >> [V,D]=eig(A)
Algunos gráficos 2D >> x = linspace(0,2*pi,50); >> plot(x, sin(x))
>> x = linspace(0,2*pi,50); >> plot(x, sin(x)+.05*sin(50*x))
>> x = linspace(0,2*pi,150); >> plot(x, sin(x)+.05*sin(50*x))
Algunos gráficos Gráficos 3D >> A = zeros(32); >> A(14:16,14:16) = ones(3); >> F=abs(fft2(A)); >> mesh(F) >> rotate3d on
Algunos gráficos Imágenes en bmp,jpg, etc. pueden ser desplegadas >> load mandrill >> image(X); colormap(map) >> axis image off Se puede acceder y modificar las propiedades del gráfico >> knot >> cameramenu >> material metal
Siguiente sesión Un poco de graficación en 2D