430 likes | 738 Views
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.
E N D
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 y Unix (Sun/HP/VMS/SGI/Alpha/...) • Los archivos m-files son independientes de la plataforma. • La última versión es MATLAB 6.5, Release 13 (2002). • 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
s e f 1 2 12 13 64 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
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 • >> v = [1 2,4,-5] • 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 • >> A = [1 2 3;4,-5,6;5 -6,7] • 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ón1: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