Anda di halaman 1dari 10

INTRODUCCION A MATLAB

Victoriano Carmona Centeno y Julio R. Fernndez Garca a

INTRODUCCION A MATLAB c Victoriano Carmona Centeno y Julio R. Fernndez Garca a Profesores del Departamento de Matemtica Aplicada II a Escuela Universitaria Politcnica e Universidad de Sevilla

ISBN 84-8264-257-X Depsito Legal SE-233-98 o Imprime Librera Papelera Panella C/Virgen de Africa 8, 41011 Sevilla Febrero de 1998 MATLAB es una marca registrada de The Math Works, Inc.

INTRODUCCION Hace ya bastante tiempo que el ordenador es utilizado en el clculo cient co y su uso a cada vez se impone con ms fuerza tanto en el terreno de la investigacin como pedaggicoa o o didctico. Es por ello, que hayan salido al mercado distintos programas en los que aparecen a implementados algunos de los mtodos que utilizamos da a da en la resolucin de nuestros e o problemas. Uno de estos programas es MATLAB (MATrix LABoratory, Laboratorio de Matrices) que procede de los proyectos LINPACK y EISPACK y que ha evolucionado durante varios aos hasta su forma actual. MATLAB destaca por su fcil aprendizaje, fcil utilizacin, gran n a a o potencia y pocas exigencias de equipamiento informtico. Naturalmente, esta buena relacin a o calidad-precio hace que sea uno de los programas de software matemtico ms extendido. a a La potencia de MATLAB se mani esta por dos caractersticas fundamentales: la conjugacin entre programacin clsica y funcional y la gran variedad de problemas que es o o a capaz de resolver (Sistemas de Ecuaciones, Optimizacin, Ecuaciones diferenciales...). Su o fcil uso y rpido aprendizaje estn ntimamente relacionados con su carcter funcional y a a a a con el ente primordial o elemental en MATLAB: La matriz. De esta forma, los datos en MATLAB son, casi exclusivamente, matrices y la resolucin de un determinado problema se o lleva a cabo aplicando a las matrices introducidas las funciones que MATLAB dispone (o que el usuario ha de nido previamente). MATLAB se presenta entonces como una herramienta e caz y exible en el Clculo a Numrico (sobre todo en el Calculo Numrico Matricial) con excelente posibilidades gr cas, e e a que ayudan al profesor y al alumno tanto en sus trabajos docentes y de estudio como en su labor de investigacin. o Estas pginas no pretenden agotar, en absoluto, todas las posibilidades que MATLAB a ofrece. Aquellos que deseen profundizar ms en este tema pueden hacerlo consultando alguno a de los excelentes manuales de la bibliografa y las referencias que en ellos se citan. En ella hemos incluido libros de ALGEBRA LINEAL para aquellos lectores que necesiten repasar algunos de los conceptos que se van desarrollando. El presente manual fue utilizado en 1997 como texto de referencia en el Curso de Introduccin a Matlab, celebrado en el Centro Informtico Cient co de Andaluca o a (C.I.C.A.) del 7 al 14 de Abril. Este curso, que fue dirigido por los autores, estuvo organizado por el Vicerrectorado de Relaciones Institucionales y Extensin Cultural de la Universidad o de Sevilla y fue homologado por la Consejera de Educacion y Ciencia. Por ultimo deseamos hacer constar la colaboracin del profesor D. Francisco Flix o e Lara Martn en la elaboracin de unos apuntes preliminares a esta obra. o LOS AUTORES

INTRODUCCION A MATLAB Victoriano Carmona Centeno y Julio R. Fernndez Garca a

Indice General
1 Elementos bsicos a 1.1 Formatos de salida . . . . . . . . 1.2 Matrices por bloques . . . . . . . 1.3 Operaciones con Matrices. . . . . 1.4 Operaciones elemento a elemento 3 16 18 20 23 25 25 26 29 29 29 30 31 33 33 34 35 37 39 39 39 43 43 45 47 47 48 50 52

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

2 Tipos especiales de matrices. Construcciones. 2.1 Matrices especiales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Rede niciones y construcciones a partir de la diagonal . . . . . . . . . . . . . 3 Sistemas de Ecuaciones Lineales y descomposiciones 3.1 Resolucin de S.E.L. . . . . . . . . . . . . . . . . . . . . o 3.1.1 Sistemas cuadrados . . . . . . . . . . . . . . . . . 3.1.2 Sistemas superdeterminados. Mnimos cuadrados 3.1.3 Tiempo de clculo y nmero de operaciones . . . a u 3.2 Descomposiciones . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Factorizacin LU. . . . . . . . . . . . . . . . . . o 3.2.2 Descomposicin de Cholesky . . . . . . . . . . . o 3.2.3 Factorizacion QR . . . . . . . . . . . . . . . . . . 3.2.4 Ortonormalizacin y espacio nulo . . . . . . . . . o 3.3 Normas y nmero de condicin . . . . . . . . . . . . . . u o 3.3.1 Normas vectoriales y matriciales . . . . . . . . . 3.3.2 Nmero de condicin y rango . . . . . . . . . . . u o 4 Autovalores y polinomios 4.1 Autovalores y autovectores . . . . . . . . . . . . . . . . 4.2 Valores singulares y pseudoinversa . . . . . . . . . . . . 4.3 Tratamiento de polinomios . . . . . . . . . . . . . . . . 4.3.1 Polinomio caracterstico de una matriz cuadrada 4.3.2 Operaciones con polinomios . . . . . . . . . . . . 4.3.3 Races de polinomios . . . . . . . . . . . . . . . . 4.3.4 Aproximacin por polinomios en el sentido de los o 1

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . mnimos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . cuadrados .

2 4.3.5

INDICE GENERAL La orden polyvalm y semejantes . . . . . . . . . . . . . . . . . . . . . 54 57 57 57 60 61 63 63 63 65 66 73 73 81 84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 85 87 87 91 91 92 93 95 102

5 Posibilidades gr cas a 5.1 Gr cos en el plano . . . . . . . . . . . . a 5.1.1 Poligonales y curvas . . . . . . . . 5.1.2 Curvas en polares . . . . . . . . . 5.1.3 Curvas en paramtricas . . . . . . e 5.1.4 Histogramas y diagramas de barras 5.2 Curvas en el espacio y super cies . . . . . 5.2.1 Curvas en paramtricas . . . . . . e 5.2.2 Super cies . . . . . . . . . . . . . . 5.2.3 Curvas de nivel y vector gradiente

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

6 Funciones y programas en Matlab. MFicheros 6.1 Instrucciones en Matlab: input, if, error, while, break, pause, for . . . . . 6.2 De nicin de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 7 Aspectos de anlisis numrico a e 7.1 7.2 7.3 7.4 Resolucin de Ecuaciones y Sistemas no Lineales . o Integracin numrica . . . . . . . . . . . . . . . . . o e Optimizacin en una y varias variables . . . . . . . o Resolucin de Ecuaciones Diferenciales Ordinarias o

8 Consejos prcticos a 8.1 Las ordenes help, lookfor y demo . . . . . . . . . . . . . . . . . . 8.2 Informacin sobre variables declaradas. Instrucciones para guardar o variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Relacin con el sistema operativo. El comando diary . . . . . . . . o 9 Resumen de los comandos y funciones ms utilizados a 10 Relacin de ejercicios o

. y . .

. . . . salvar . . . . . . . .

Captulo 1

Elementos bsicos a
En esta primera seccin explicaremos aquello que es necesario conocer para comenzar a o utilizar MATLAB. En particular describiremos: 1. La introduccin de matrices y sus elementos, declaraciones y variables MATLAB. o 2. Cmo obtener informacin, terminar y salvar variables declaradas en una sesin. o o o 3. Nmeros y expresiones aritmticas. u e 4. Utilizacin de la ayuda. o 5. Funciones de MATLAB. LA INTRODUCCION DE MATRICES MATLAB trabaja esencialmente con matrices rectangulares cuyos elementos pueden ser reales, complejos y/o cadenas de caracteres. En ocasiones consideraremos matrices de orden 1 por 1, que son escalares, y matrices con una la o una columna, que representarn vectores. a En MATLAB podemos introducir las matrices de varias formas: Introduciendo explcitamente una lista de elementos. Generando matrices usando variables y funciones incorporadas. Creando matrices en M cheros. Leyendo matrices desde cheros de datos externos. El lenguaje MATLAB no contiene ninguna declaracion de dimensin u otro tipo de o declaraciones, como sucede en algunos lenguajes de programacin. MATLAB asigna y o almacena automticamente, dependiendo de las caractersticas de cada ordenador. a El modo ms fcil de introducir matrices pequeas es introducir explcitamente sus elea a n mentos, siguiendo las convenciones: Separar explcitamente la lista de elementos con espacios 3

CAP ITULO 1. ELEMENTOS BASICOS

en blanco o comas, encerrar los elementos entre corchetes ([ ]) y usar ; para indicar el n de cada la. Por ejemplo, introduciendo la asignacin o >>A=[1 2 3;4 5 6;7 8 9] resulta la salida A = 1 4 7 2 5 8 3 6 9

MATLAB guarda la matriz para poder usarla posteriormente. Las matrices tambin pueden introducirse por lneas, reemplazando el ; por un retorno e de carro. Por ejemplo, si tecleamos >>A=[1 2 3 4 5 6 7 8 9] obtenemos la misma salida A = 1 4 7 2 5 8 3 6 9

Podemos introducir las matrices desde discos, utilizando cheros.m. As si un chero se llama pepe.m y contiene las siguientes lneas de texto A=[1 2 3 4 5 6 7 8 9] entonces, la instruccin pepe lee el chero pepe.m y genera la matriz A: o >>pepe A = 1 4 7

2 5 8

3 6 9

El comando load y la funcin fread permiten leer matrices generadas durante sesiones o anteriores, importar matrices de otros programas o exportarlas. Pero este es un aspecto que ser tratado ms adelante. a a Las matrices pueden incluir algunas expresiones MATLAB; por ejemplo al teclear

5 >>x=[-1.3 sqrt(3) (1+2+3)*4/5] resulta >>x= -1.3000 1.7321 4.8000

Los coe cientes de la matriz pueden referenciarse individualmente utilizando ndices encerrados dentro de un parntesis. Si continuamos con el ejemplo anterior, la asignacin e o >>x(5)= abs(x(1)) produce >>x= -1.3000 1.7321 4.8000 0 1.3000

Obsrvese que el tamao de x aumenta automticamente, acomoda al nuevo elemento e n a que hemos de nido y da el valor cero a los elementos que no se han de nido. Si tecleamos >>r=[10 11 12]; no obtenemos salida alguna; ello se debe a que hemos aadido el punto y coma al nal. No n obstante MATLAB si ha almacenado la matriz r, para comprobarlo tecleamos >>r y resulta >>r = 10 11 12

Podemos introducir matrices grandes utilizando matrices peque as como elementosde n la misma. Por ejemplo podemos aadir una la a la matriz A. n >>A = [ A; r] A = 1 2 3 4 5 6 7 8 8 10 11 12 De una matriz podemos extraer submatrices utilizando el smbolo :. Por ejemplo

6 >>A = A(1:3,:) A = 1 2 4 5 7 8

CAP ITULO 1. ELEMENTOS BASICOS

3 6 9

toma las tres primeras las de la matriz A y todas las columnas, y nos devuelve el resultado introducido en la matriz original. Estos y otros aspectos los veremos ms adelante con mucho a ms detalle. a ASIGNACIONES Y VARIABLES MATLAB MATLAB es un lenguaje de expresiones: interpreta y evala las expresiones introduciu das. Las asignaciones MATLAB son con frecuencia de la forma variable=expresin o o simplemente expresin o Podemos componer expresiones con operadores, caracteres especiales, funciones y variables. La evaluacin produce en la mayora de los casos una matriz. La matriz aparece, si se o desea, en pantalla y es asignada a una variable para su posterior uso. Si omitimos el nombre de la variable y el signo =, MATLAB automticamente crea una variable con el nombre a ans (variable de respuesta), donde almacena el resultado. Por ejemplo, si introducimos la expresin o >>sqrt(2)/15 se obtiene ans = 0.0943 Si una expresin es bastante complicada (y larga) y no es su ciente una lnea para eso cribirla completamente, podemos aadir al nal tres puntos ( . . . ) seguidos de un retorno de n carro para indicar que la asignacin contine en la lnea siguiente. Por ejemplo, o u >>s= 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 - 1/8 + 1/9 - 1/10 + 1/11 - 1/12; + 1/7 ...

evala la suma de estas fracciones y asigna dicha suma a la variable s. Los espacios en blanco u tras los signos =, + y son opcionales, pero se incluyen para facilitar la lectura.

Anda mungkin juga menyukai