Vous êtes sur la page 1sur 49

Aplicaciones Numéricas en

Investigación de Operaciones
3

Prof. Gonzalo Müller


gmullerb@mail.com
Postgrado de Investigación de Operaciones
Facultad de Ingeniería
Universidad Central de Venezuela
Clase anterior
 Bits y Bytes
 Sistemas de Numeración
 Sistema Binario de Numeración
 Números:
 Punto Fijo.
 Punto flotante
 Precisión Sencilla
 Precisión Doble
 Redondeo
Clase anterior
 Limitaciones computacionales
 Overflow Error
 Underflow Error
 Errores
 de redondeo
 de truncamiento(discretización de un problema real)
 Números en Matlab
Clase anterior
 Gráficas de Línea: plot, plot3
 Gráficas 3D: surf, mesh, meshgrid
 Ajustando la gráfica: axis, grid.
 Documentando la gráfica: *label, title, legend.
 Otras gráficas: scatter, hist, stem, stairs, bar, pie,
scatter3
 Gráficas Múltiples: subplot
 Gráfica de una función: fplot
 Apuntador a función: function_handle
Otros tipos de datos en Matlab
 Arreglo de celdas (Cell arrays): constituyen un arreglo
donde cada elemento del arreglo es un arreglo.

...

... ...

...

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 5


Otros tipos de datos en Matlab
 Para construir un arreglo de celdas:
 Se coloca la colección entre llaves, {}.
variable = {arreglo1 arreglo2; ...}
 Se utiliza la función cell:
variable = cell(tamaño1, tamaño2, ...)

 Para acceder a un elemento del arreglo de celdas se


debe utilizar las llaves
variable{indice1, indice2, ...}

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 6


Otros tipos de datos en Matlab
Ejemplo:
A = [2 1; 3 5; 6 2]
2 1 3 4
3 5 B = [3 4; 1 5]
1 5
6 2
C = [2.5; 3.1; 2.4]
2.5 D = 2.5
3.1 2.5

2.4

Crea arreglo de celdas E = {A B; C D}


Accede a arreglo de J = E{1,1} * E{1,2}
celdas

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 7


Otros tipos de datos en Matlab
 Estructuras: vector de celdas donde cada elemento se
accede a través de un nombre (y no un número):

{1} {N}

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 8


Otros tipos de datos en Matlab
 Estructuras: vector de celdas donde cada elemento se
accede a través de un nombre (y no un número):

Nombre1 {1} NombreN {N}

Cada elemento de la estructura se le llama campo

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 9


Otros tipos de datos en Matlab
 Para construir una estructura:
 A cada campo se le da un nombre y se asigna un
valor:
variable.campo1 = valor1
variable.campo2 = valor2

variable.campoN = valorN

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 10


Otros tipos de datos en Matlab

 Se utiliza la función struct:

variable = struct(campo1, valor1,


campo2, valor3 ..., campoN, valorN)

 Para acceder a un campo de la estructura se debe


utilizar el nombre del campo:
variable.campoK

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 11


Otros tipos de datos en Matlab
Ejemplo:

2 1 3 4 2.5
3 5 3.1 2.5
1 5
6 2 2.4

F.matriz1 = [2 1; 3 5; 6 2]
F.matriz2 = [3 4; 1 5]
Crea estructura
F.vector1 = [2.5; 3.1; 2.4]
F.valor1 = 2.5
Accede a la estructura H = F.matriz1* F.matriz2

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 12


Otros tipos de datos en Matlab
 Texto: vector fila donde cada elemento es un carácter.

MATLAB

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 13


Otros tipos de datos en Matlab
 Texto: vector fila donde cada elemento es un carácter.

MATLAB

M A T L A B

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 14


Otros tipos de datos en Matlab
 Texto: vector fila donde cada elemento es un carácter.

MATLAB

M A T L A B

Ejemplo:
Text1 = ‘MATLAB’
Text2 = [‘M’ ‘A’ ‘T’ ‘L’ ‘A’ ‘B’]
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 15
Otros tipos de datos en Matlab
 Como sería un arreglo de textos?

‘MATLAB’

‘LINUX’
?
‘C++’

‘2009’

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 16


Archivos en Matlab
 Matlab trabaja básicamente con dos tipos de archivos:
 Archivo de variables Matlab.
 Permite almacenar múltiples variables.
 La extensión mat le indica a Matlab que es un
archivo de variables (no es de texto).
 Archivo de texto.
 Solo se puede almacenar una matriz.
 La extensión del archivo puede ser cualquiera menos
mat.

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 17


Archivos en Matlab
 El archivo de texto de matrices debe tener el siguiente
formato:
 Espacios en blancos separan los elementos de cada fila.

A11 A22 ... A1n


A12 ... A2n
...

Am1 Am2 ... Amn

El archivo puede contener cometarios comenzando con el carácter %

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 18


Archivos en Matlab
 El archivo de texto de matrices debe tener el siguiente
formato:
 Espacios en blancos separan los elementos de cada fila.
 Cada línea representa una fila.

A11 A22 ... A1n


A12 ... A2n
...

Am1 Am2 ... Amn

El archivo puede contener cometarios comenzando con el carácter %

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 19


Archivos en Matlab
 El archivo de texto de matrices debe tener el siguiente
formato:
 Espacios en blancos separan los elementos de cada fila.
 Cada línea representa una fila.
 Cada fila debe tener la misma cantidad de elementos

A11 A22 ... A1n


A12 ... A2n
...

Am1 Am2 ... Amn

El archivo puede contener cometarios comenzando con el carácter %

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 20


Archivos en Matlab
 Las principales funciones para manejar archivos:
 Escritura:
 save.
 dlmwrite.

 Lectura:
 load.
 dlmread.

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 21


Escritura de archivos en Matlab
 save: guarda los valores de las variables indicadas en
un archivo de variables Matlab.

save(‘archivo.mat’, ‘variable1’, ...,


‘variableN’)

 Si no se indican variables se almacena todas las


variables de trabajo existentes.
whos –file archivo lista las variables definidas,
sus tipos y sus tamaños en el archivo indicado

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 22


Escritura de archivos en Matlab
 dlmwrite: guarda una matriz en un archivo de texto.

dlmwrite(‘archivo’,variable)

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 23


Escritura de archivos en Matlab
 dlmwrite: guarda una matriz en un archivo de texto.

dlmwrite(‘archivo’,variable)

Se puede guarda una matriz en un archivo de texto


con un delimitador específico:

dlmwrite(‘archivo’,variable,
‘delimitador’)
la coma , es el carácter por defecto en dlmwrite

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 24


Lectura de archivos en Matlab
 load: cargar matrices o variables desde un archivo de
variables Matlab.

load(‘archivo.mat’)

 Cada variable almacenada es restaurada en memoria


con el nombre que fue almacenada.
 Si la variable existe en memoria, se sobrescribe.

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 25


Lectura de archivos en Matlab
 load: cargar matrices o variables desde un archivo de
variables Matlab.

load(‘archivo.mat’)

 Cada variable almacenada es restaurada en memoria


con el nombre que fue almacenada.
 Si la variable existe en memoria, se sobrescribe.

Se puede indicar cuales variables cargar del archivo:


load(‘archivo.mat’,’var1’,…,’varN’)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 26
Lectura de archivos en Matlab
 Si se desea se puede almacenar las variables contenidas
en una archivo de datos Matlab en una variable:

variable = load(‘archivo.mat’,…,’varN’)

La variable resultante es una estructura donde cada


campo corresponde con una variable del archivo con
el mismo nombre con el que fue almacenada.

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 27


Lectura de archivos en Matlab
 dlmread : Carga la matriz contenida en un archivo de
texto en una variable especifica:

variable = dlmread( ‘archivo.ext’)

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 28


Lectura de archivos en Matlab
 dlmread : Carga la matriz contenida en un archivo de
texto en una variable especifica:

variable = dlmread( ‘archivo.ext’)

Si el archivo de texto está delimitado con un carácter


específico se debe emplear:

variable = dlmread(
‘archivo.ext’,’delimita’)

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 29


Lectura de archivos en Matlab
Es posible cargar un rango de la matriz almacenada:

variable = dlmread(
‘archivo.ext’,’delimita’, ‘rango’)

rango:
 vector:[FilaSup ColumnaIzq FilaInf ColumnaDer]
Ejemplo: [0 1 1 2]
 rango notación hoja de calculo A1..Z9
la función importdata permite leer data con
encabezados y colocarlo en un estructura
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 30
Archivos en Matlab
 Las matrices pueden ser definidas en otros
programas siempre que se exporte correctamente la
información.
 Excel, Access, etc.
 Las funciones xlsread y xlswrite permite trabajar con
archivos Excel directamente.

Existen otras funciones para el manejo de archivo que


permiten establecer un mayor detalle o trabajar a bajo nivel

Es posible importar archivos de otros


formatos utilizando el Import Wizard
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 31
 Construir una función en Matlab que dado el nombre
del archivo retorne un vector con:
 el número del expediente con la máxima oferta
(utilizar la función max).
 el número del expediente con la mínima oferta
(utilizar la función min).
El archivo tiene el siguiente formato:
#expediente1 oferta1

… …

#expedienteN ofertaN
Archivos en Matlab
 print: almacena en un archivo la última imagen
generada:

print(‘archivo.ext’,’-dFormato’)

Los principales formatos: Formato -dFormato


BMP mono -dbmpmono
BMP 24 bit -dbmp
JPEG -djpeg
PDF -dpdf
PGM -dpgm
PNG -dpng
PPM -dppm
TIFF -dtiff

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 33


Archivos en Matlab
 La función print también sirve para imprimir el gráfico

print()

Imprime un gráfico en la impresora por defecto.


 Si es necesario imprimir en un impresora especifica
se debe indicar su nombre:

print(‘-Pnombre’)

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 34


 Construir una función en Matlab que dado el nombre
del archivo de origen y del archivo de salida:
 realice un histograma con las ofertas.
 guarde la imagen en el archivo de salida.
 retorne la media de las ofertas (utilizar la función
mean)
El archivo de origen tiene el siguiente formato:
#expediente1 oferta1

… …

#expedienteN ofertaN
Archivos en Matlab
 El manejo de archivos es de gran utilidad.
 Persistencia de dato.
 Interconexión de procesos.
 ...

Datos Proceso 1 Datos Proceso 2 Resultado


Entrada Herramienta 1 Salida Herramienta 2

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 36


Salida en Matlab
 disp: presenta información en la ventana de comandos

disp(‘texto’)

disp(variable)
Ejemplo:
disp(‘MATLAB’)
disp(Text1)
disp(A)
disp(F)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 37
Salida en Matlab
 Si se requiere concatenar texto y el valor de variables
es necesario utilizar las instrucciones:
 num2str: convierte número a string
 int2str: convierte entero a string

disp([‘texto’ num2str(variable)])
Ejemplo:
disp([‘Resultado: ’ num2str(H)])

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 38


Entrada en Matlab
 input: solicita un dato de entrada del usuario.

variable = input(‘texto’)

Ejemplo:

k = input(‘Valor inicial:’)

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 39


Entrada en Matlab
 Si el dato de entrada del usuario es un string es
necesario incluir un parámetro adicional:

variable = input(‘texto’, ‘s’)

Ejemplo:

arc = input(‘Nombre del archivo:’, ‘s’)

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 40


Funciones
 Una función puede devolver más de un valor:
function [salida1,salida2,...] =
nombre(parámetro1, parámetro2, ... )
...
salida = ...
...
salida2 = ...
...
nombre.m

 Llamada:
[variable1,variable2,…]=nombre(argumento1,…
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 41
 Construir una función en Matlab que dado el nombre
del archivo:
 retorne el número del expediente con la máxima
oferta (utilizar la función max).
 retorne el número del expediente con la mínima
oferta (utilizar la función min).
 colocar textos sobre el progreso de las operaciones.
El archivo tiene el siguiente formato:
#expediente1 oferta1

… …

#expedienteN ofertaN
 Construir una función en Matlab que retorne el
máximo, el mínimo y la media aritmética de los
elementos de un vector de entrada:
oferta1
 Máximo
…  Mínimo
ofertaN  Media

 Utilizar las funciones matemáticas que ofrece


Matlab: mean, max y min.
 Colocar textos sobre el progreso de las operaciones.
Funciones
 Una función puede no devolver ningún valor:

function nombre(parámetro1, parámetro2, ... )


...

nombre.m

Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 44


 Construir una función en Matlab que dado el nombre
del archivo de origen y del archivo de salida:
 realice un histograma con las ofertas.
 guarde la imagen en el archivo de salida.
 colocar textos sobre el progreso de las operaciones.
El archivo de origen tiene el siguiente formato:
#expediente1 oferta1

… …

#expedienteN ofertaN
 Construir una función en Matlab para evaluar:
y = x3*sen(x) – 1/x
 Construir una función para graficar un función en R,
esta debe aceptar como parámetros de entrada:
 Función, x mínima, x máxima.
 Título.
 Archivo de salida del gráfico.
 Probar con la función definida en la primera parte
 Colocar textos sobre el progreso de las operaciones.
 Construir una función en Matlab que dado:
 nombre de archivo 0 (entrada).
 nombre de archivo 1 (salida).
 nombre de archivo 2 (salida).
Archivos
 Calcule y almacene en el archivo 1 (.mat) el
máximo, el mínimo y la media aritmética de los
elementos de la matriz (n x 2) del archivo 0.
 Realice un grafico scatter y guarde en el archivo 2.
 La función debe colocar textos sobre el progreso de las
operaciones.
Resumen
 Otros tipos de datos en Matlab
 Arreglo de celdas
 Estructuras
 Texto
 Archivos en Matlab
 Archivos Matlab (.mat)
 Archivo de texto

 Escritura:
 save.
 dlmwrite.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 48
Resumen
 Lectura:
 load.
 dlmread.
 Archivo de gráfico: print
 Salida en Matlab: disp
 Entrada en Matlab: input
 Funciones
 más de un retorno: function [salida1,salida2,...] = …
 sin retorno: function nombre(parámetro1,…
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 3 – GM – 49

Vous aimerez peut-être aussi