Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Características principales de Matlab y creación de programas, Guías, Proyectos, Investigaciones de Matemáticas Aplicadas

Las principales características de Matlab, incluyendo la creación de programas, definición de variables, manejo de vectores y matrices, funciones integradas y personalizadas, y más. Además, se presentan ejemplos de cómo utilizar las funciones y crear un archivo M-file.

Tipo: Guías, Proyectos, Investigaciones

2019/2020

Subido el 18/05/2020

Rafael1986
Rafael1986 🇻🇪

1 documento

1 / 34

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Introducción a Matlab
Enero 2005
Resumen
Este documento presenta una introducción a Matlab dirigida a usuarios que
no han trabajado nunca con Matlab. Las principales características de Matlab
así como la creación de programas son explicadas. El documento trata de
introducir al usuario en los distintos temas explicados sin profundizar en ellos.
El documento incluye una lista de referencias que el usuario puede utilizar para
ampliar sus conocimientos sobre el programa.
Escrito por Abel Elizalde para la asignatura Evaluación de políticas públicas (CEMFI). Varios
ejemplos utilizados proceden de una versión anterior escrita por Javier Mencia.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22

Vista previa parcial del texto

¡Descarga Características principales de Matlab y creación de programas y más Guías, Proyectos, Investigaciones en PDF de Matemáticas Aplicadas solo en Docsity!

Introducción a Matlab∗

Enero 2005

Resumen Este documento presenta una introducción a Matlab dirigida a usuarios que no han trabajado nunca con Matlab. Las principales características de Matlab así como la creación de programas son explicadas. El documento trata de introducir al usuario en los distintos temas explicados sin profundizar en ellos. El documento incluye una lista de referencias que el usuario puede utilizar para ampliar sus conocimientos sobre el programa.

∗Escrito por Abel Elizalde para la asignatura Evaluación de políticas públicas (CEMFI). Varios ejemplos utilizados proceden de una versión anterior escrita por Javier Mencia.

Índice General

  • 1 Entorno de trabajo
  • 2 Definición de variables
  • 3 Vectores y matrices
    • 3.1 Acceso a elementos de una matriz
    • 3.2 Operaciones matriciales
    • 3.3 Arrays multidimensionales
  • 4 M-file: escritura de programas
  • 5 Utilización de la ayuda
  • 6 Uso de funciones incluidas en Matlab
  • 7 Funciones propias
  • 8 Bucles
    • 8.1 Condición if
    • 8.2 Bucle for
    • 8.3 Bucle while
    • 8.4 switch
  • 9 Otras funciones
  • 10 Gráficos
  • 11 Debug: depurar programas
  • 12 Tipos de variables
  • 13 Ejercicios
    • 13.1 Encontrar un punto fijo
    • 13.2 Evaluar funciones lineales a trozos
  • Referencias

Figura 2: Command window.

las podemos volver a ejecutar. De la misma forma, si nos situamos en la ventana command window, en el espacio reservado para introducir nuevas órdenes, i.e. inmediatamente después de >>, y presionamos la tecla ↑, podemos acceder a órdenes introducidas con anterioridad.

Figura 3: Command history.

  1. Workspace: esta ventana contiene las variables (escalares, vectores, matrices, ...) creadas en la sesión de Matlab. La ventana workspace nos proporciona información sobre el nombre, dimensiones, tamaño y tipo de variable. Existen dos opciones para eliminar una variable:

(a) Introducir en command window el comando clear seguido del nombre de la variable. (b) Seleccionar la variable en el workspace y borrarla directamente con la tecla delete.

Figura 4: Workspace.

Haciendo doble click en una variable se accede al contenido de dicha variable, pudiendo modificar sus valores.

  1. Current directory: las operaciones de Matlab utilizan el directorio seleccionado en current directory (a través del botón para explorar) como punto de referen- cia. Por ejemplo, si guardamos una serie de variables con el comando save, se guardan en el directorio en el que estemos trabajando. Lo mismo ocurre cuando cargamos datos con el comando load: el ordenador busca los datos en el fichero en el que estemos trabajando.

2 Definición de variables

Para crear una variable en Matlab, simplemente se ha de introducir, en la ventana command window, el nombre de la variable y su valor. Por ejemplo:

a = 3; (1)

basta con teclear M = [1, 2; 3, 4; 5, 6]; (4)

donde los términos de una misma fila aparecen separados por comas, y el punto y coma hace de separador entre filas. Para trasponer M, basta teclear

M^0 (5)

Existen una serie de funciones que definen matrices estándar como:

  • Matriz de unos de dimensión N 1 xN 2 : ones(N 1 , N 2 ) ;
  • Matriz de ceros de dimensión N 1 xN 2 : zeros(N 1 , N 2 ) ;
  • Matriz identidad de dimensión N 1 xN 1 : eye(N 1 ) ;
  • linspace(primer elemento, último elemento, número de elementos igualmente espaciados). Por ejemplo: linspace (0, 1 , 5) ; (6) crea el vector fila (^) h 0 0. 25 0. 5 0. 75 1

i (7)

  • La orden M = [primer elemento : paso : último elemento] ; (8) crea un vector fila que va desde “primer elemento” hasta “último elemento” dando saltos de la magnitud indicada por “paso”. Por ejemplo

M = [1 : 0.5 : 3] ;

genera el vector fila M =

h 1 1. 5 2 2. 5 3

i (9)

3.1 Acceso a elementos de una matriz

Imaginemos que hemos definido la matriz

M =

 ^13 5 6

  (10)

Dicha matriz aparecerá en el workspace y puede ser utilizada hasta que se borre.

  • Para acceder al elemento (i, j) de la matriz M tecleamos

M (i, j) (11)

Si no ponemos punto y coma al final de la orden el valor obtenido aparecerá en pantalla. También podemos asignar dicho valor a un escalar:

a = M (i, j) ; (12)

  • Para acceder a la fila i de la matriz M tecleamos

M (i, :) (13)

Por ejemplo: M (1, :) (14) nos devolverá el vector fila (^) h 1 2

i (15)

  • Para acceder a la columna j de la matriz M tecleamos

M (:, j) (16)

  • También podemos acceder a un rango determinado de la matriz. La orden

M (i 1 : i 2 , j 1 : j 2 ) (17)

  • Valores y vectores propios de los elementos de la matriz A : eig (A) ; (26)
  • Descomposición de cholesky de la matriz A : chol (A) ; (27)
  • Elementos de la diagonal de la matriz A : diag (A) ; (28)
  • Suma y producto, por columnas, de los elementos de la matriz A :^3 sum (A) ; (29) prod (A) ; (30)
  • Matlab también permite operar “elemento a elemento” entre matrices. Imag- inemos las matrices A =

(31)

B =

(32) Matlab nos permite multiplicar, dividir, ... dichas matrices elemento a elemento. Para ello debemos poner un punto delate del operador que deseemos utilizar: Operación Orden Resultado Multiplicación A. ∗ B

División A./B

Potencia A.ˆB

(^3) Para obtener la suma y producto por filas utilizaríamos las mismas funciones pero sobre la matriz transpuesta: sum (A^0 ) ; prod (A^0 ) ;

  • Concatenación de matrices A =

(34) La orden B = [A, A + 3; A ∗ 2 , A − 1] ; (35) genera la matriz

B =

  

   (36)

3.3 Arrays multidimensionales

Matlab permite crear arrays de más de dos dimensiones. Por ejemplo, la orden

A = zeros(2, 2 , 3); (37)

crea un array de tres dimensiones: un cubo formado por tres matrices de dimensión 2 x 2.

4 M-file: escritura de programas

M-files, también llamados scripts, permiten al usuario escribir un conjunto de órdenes en un editor de texto (incluido en el programa Matlab) para ejecutarlas posterior- mente en el orden en el que se han escrito. En lugar de introducir las órdenes una a una en el command window o ventana de comandos las órdenes se escriben una tras otra en un M-file que posteriormente se ejecuta. Para abrir un M-file: File → New → M-file. Los M-files se guardan (File → Save) en el directorio en el que estemos trabajando (fijado en la ventana current directory) con extensión .m. El comando save guarda las variables que se encuentren en el workspace con extensión .mat. Tanto los M-files como los ficheros de datos, creados previamente, se abren desde la ventana current directory haciendo doble click sobre ellos.

(6), situado en la botonera superior del M-file.

Figura 6: Boton Run.

5 Utilización de la ayuda

Una de las principales ventajas de Matlab con respecto a similares programas consiste en la gran cantidad de información que el usuario puede obtener del funcionamiento del programa y de los comandos a través de la ayuda (Menú Help). Para programar en Matlab es necesario saber manejarse en el entorno de trabajo y saber utilizar la ayuda. Cualquier duda sobre como utilizar una función o cual es el comando para realizar una determinada operación puede resolverse utilizando la ayuda. El menú Help contiene, además de dos aplicaciones para introducir al usuario el entorno de trabajo (Help → Using the Desktop and Help → Using the Command Window), una pestaña llamada Matlab Help. Matlab Help permite al usuario buscar información de tres formas diferentes:

  1. La pestaña Contents permite ver un índice con todas las aplicaciones y Tool- boxes^5 de Matlab.
  2. La pestaña Index permite buscar, por orden alfabético, en el índice de materias de Matlab, información sobre palabras clave (comandos, ordenes, ... ). Por (^5) Matlab dispone de Toolboxes, que comercializa de forma separada al programa, sobre gran can- tidad de materias: optimización, financial toolbox, financial derivatives toolbox, partial differential equations toolbox, statistics toolbox, GARCH toolbox, ... Cada toolbox contiene funciones predefinidas de la materia que trata. Documentación (en PDF) de cada toolbox está disponible en la pestaña de la toolbox y en www.mathworks.com. Las Toolboxes han dado a Matlab gran parte del valor añadido y del prestigio del que ahora disfruta.

Figura 7: Matlab Help.

ejemplo, si escribimos plot obtenemos información sobre dicho comando, que se utiliza para hacer gráficos.

  1. La pestaña Search busca en toda la documentación de ayuda de Matlab las palabras introducidas.

6 Uso de funciones incluidas en Matlab

Para utilizar las funciones que Matlab incorpora, lo mas conveniente es consultar la ayuda. Las funciones constan de una serie de variables de entrada (inputs) que deben ser proporcionados por el usuario y una serie de variables de salida (outputs) como resultado de la ejecución de la función. A modo de ejemplo, analizamos la función regress que permite realizar regresión lineal. Si tecleamos regress en la pestaña Index de ayuda de Matlab obtenemos información sobre como utilizar la función. A continuación presentamos el resultado de dicha búsqueda:

X = [ones(10,1) (1:10)'] X = 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 y = X * [10;1] + normrnd(0,0.1,10,1) y =

[b,bint] = regress(y,X,0.05) b =

bint = 9.9165 10. 0.9822 1.

Compare b to [10 1]'. Note that bint includes the true model values.

Reference [1] Chatterjee, S. and A. S. Hadi. Influential Observations, High Leverage Points, and Outliers in Linear Regression. Statistical Science, 1986. pp. 379- 416.

refline regstats

Generalmente las funciones pueden tener una o varias variables de entrada y una o varias variables de salida. En este caso la función regress tiene dos variables de entrada obligatorias: un vector columna y de datos sobre la variable dependiente, de dimensión nx 1 , y una matriz X, de dimensión nxp, que contiene (por columnas) p variables independientes. Si no incluimos ningúna otra variable de entrada, la función regress devuelve (en una de las variables de salida) un intervalo de confianza al 95% de los parámetros estimados. Si, por el contrario, incluimos una tercera variable de entrada alpha, el intervalo de confianza es del (1 − alpha) %. Este ejemplo ilustra el hecho de que muchas funciones de Matlab tienen un número de variables de entrada variable. Respecto a las variables de salida, si escribimos b = regress(y, X); (39)

solamente obtenemos una variable de salida b con los parámetros estimados. Por el contrario, si escribimos

[b, bint, r, rint, stats] = regress(y, X); (40)

obtenemos un conjunto de variables de salida: b, bint, r, rint, stats que recogen, entre otras cosas un intervalo de confianza para los parámetros estimados (bint), los errores de la regresión (r), el R^2 de la regresión, ... Al igual que con los variables de entrada, las funciones de Matlab pueden generar un número variable de variables de salida, dependiendo de como se escriba la orden. Para utilizar de forma eficiente dichas funciones el menú de ayuda de Matlab nos proporciona información sobre dichas funciones, sus variables de entrada y variables de salida.

7 Funciones propias

En ocasiones nos interesa utilizar funciones que Matlab no tiene predefinidas. Por ejemplo, supongamos que necesitamos evaluar, en repetidas ocasiones la siguiente

Pueden crearse funciones propias con un número variable de variables de entrada y variables de salida. La utilización de funciones propias con varias variables de salida cumple en Matlab la misma función que las denominadas subrutinas cumplen en otros programas como Fortran. Información acerca de estas opciones puede encontrarse en el menú ayuda de Matlab, tecleando “passing variable numbers of arguments” en la pestaña Search. El uso de funciones propias es la manera más limpia de programar. Otra de las ventajas de escribir funciones propias en M-files separados del programa principal es la posibilidad de utilizar dichas funciones en otros programas.

8 Bucles

La mejor forma de saber cómo funciona un bucle y cual es su sintaxis es utilizar la ayuda de Matlab. En esta sección presentamos algunos de los más utilizados.

8.1 Condición if

Forma general:

if (condición 1) órdenes a ejecutar si condición 1 se satisface elseif (condición 2) órdenes a ejecutar si condición 2 se satisface ... else órdenes a ejecutar si no se satisface ninguna de las condiciones anteriores end (45) Ejemplo: if (a > b) c = a; else c = b end

Para evaluar las condiciones se utilizan operadores lógicos como: Operador Descripción > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que == Igual que ~= Distinto que & Si | O ~ No

8.2 Bucle for

Forma general:

for contador=inicio : fin órdenes a ejecutar end

Ejemplo: M-file función factorial function h = fun_factorial(n) if (n == 0) h = 1; else h = 1; for i=1:n h = h ∗ i; end end % final del if

8.3 Bucle while

Forma general:

while (condición) órdenes a ejecutar end