Matlab
Facultad de Ciencias
Departamento de Matem´atica Aplicada
Introducci´on a MATLAB
Luis R´andez
c 2007 randez@unizar.es
LATEX 2ε Actualizado el: 27 de Febrero de 2007
Tabla de Contenido
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Introducci´on
B´asicos
Vectores y Matrices
Estructuras y C´elulas
´
Ordenes
b´asicas de programaci´on
m-files: script y functionGr´aficos
Gr´aficos Avanzados
Optimizaciones
Entradas/Salidas
Profiling
Algunos ejemplos de An´alisis Num´erico
Interfaces Gr´aficos
Matrices Huecas (Sparse)
Miscel´anea
Secci´on 1: Introducci´on
3
1. Introducci´on
En la implementaci´on de algoritmos num´ericos, usualmente hay que elegir
un lenguaje de programaci´on, as´ı como librer´ıas auxiliares:
Lenguajes de programaci´on.
C, C++
FORTRANa ,FORTRAN 9X
Librer´ıas num´ericas
LINPACK, LAPACK, FFT, GSL, ...
NAG, IMSL, ...
Librer´ıas gr´aficas
dislin
GKS
lo que obliga a conocer un amplio abanico de programas.
a El compilador optimizado de FORTRAN es uno de The Top Ten Algorithms of the XX Century
Futurama
Secci´on 1: Introducci´on
4
Inconvenientes y ventajas de los lenguajes compilados
• Puede ser un proceso laborioso, donde es posiblecometer errores en
la programaci´on de algoritmos1 2 , y es conveniente depurar correctamente los c´odigos realizados.
• Es preciso linkar con librer´ıas num´ericas y gr´aficas, y es usual que
dependan del lenguaje de programaci´on y del sistema operativo.
• Las herramientas de debugging y profiling no suelen ser f´aciles de
utilizar.
• Con adecuadas optimizaciones, son r´apidos en ejecuci´on.
•Pueden ser paralelizados (MPI, PVM, OpenMp).
• Posibilidad de uso de precisi´on extendida en los c´alculos.
1 En
2 El
1962, el Mariner 1 tuvo un fallo debido al c´odigo FORTRAN DO I=1.3
Mariner 18 se perdi´o debido a un NOT desaparecido en un programa
Secci´on 1: Introducci´on
5
MATLAB
(MATrix LABoratory) es un sistema de computaci´on interactivo que combina c´alculo num´erico, gr´aficos,visualizaci´on y un lenguaje de
programaci´on de alto nivel. Fu´e desarrollado inicialmente por Cleve Moler
entre 1977 y 1984 como ayuda para la docencia. La primera versi´on estaba
escrita en FORTRAN, y a partir de 1985 se han escrito en C. (A d´ıa de hoy
la versi´on es la 7, Release 14).
MATLAB puede realizar operaciones aritm´eticas reales y complejas con
matrices y escalares, resolver sistemasde ecuaciones no lineales, integrar
funciones y sistemas de ecuaciones diferenciales y algebraicas, . . . . Es lo
que suele llamarse un manipulador num´erico.
Hay manipuladores num´ericos tipo MATLAB como:
• Octave: Casi un clon de MATLAB. Gratuito.
•
•
•
•
•
Scilab: Muchas prestaciones. Gratuito.
Euler: Potente y de tama˜no reducido. Gratuito.
O-Matrix: R´apido. Comercial
Interactive DataLanguage: Comercial
Gauss: Comercial
Secci´on 1: Introducci´on
6
Inconvenientes y ventajas de MATLAB
• Es algo caro.
• Como es un lenguaje interpretado, suele ser m´as lento que los compilados.
3
• Permite el desarrollo de c´odigos de forma r´apida utilizando un lenguaje de muy alto nivel.
• Los c´odigos escritos son transportables entre distintos sistemas operativos.
• Gr´aficos de muy buenacalidad.
• Utilidades de debugging y profiling.
• Hay Toolboxes espec´ıficas para ampliar las prestaciones de MATLAB
(Simulink, Optimization, Symbolic, . . . ).
3 Puede utilizarse el compilador de MATLAB y/o linkar con c´
odigos FORTRAN o C mediante
ficheros MEX para aumentar la velocidad.
Secci´on 1: Introducci´on
7
Facilidad de uso
Ejemplo.- Consideremos el problema de sumar a una matriz elproducto
de otras dos, todas ellas de dimensi´on n × n. El programa en FORTRAN
9X, suprimiendo las l´ıneas relacionadas con el interface de subrutinas, para
n = 1000 podr´ıa ser:
program blas
integer, parameter :: d0 = selected real kind(14)
integer :: m, n, k, lda, ldb, ldc
character(len=1) :: transa, transb
integer, dimension(1) :: iseed
real(kind = d0),dimension(1000,1000) :: a, b, c...
Regístrate para leer el documento completo.