Beruflich Dokumente
Kultur Dokumente
Investigación de Operaciones
4
Escritura:
save.
dlmwrite.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 2
Clase anterior
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 4 – GM – 3
Metodología para resolución de un problema
Pasos a seguir en la resolución de un problema:
Definición del problema
Una Solución
Entrada xk
Proceso
Algoritmo para
bajar de peso
Algoritmo
Salida xk+1
Una Mejor
Solución
Paso 1
Paso 2
Paso n
Paso 1
Paso 2
FIN
Paso 1
Paso 2
Paso n
DRE
Condición
V F
Paso 1
...
Paso n
Condición
V F
Paso 1 Paso 1’
... ...
Paso n Paso n’
Paso 1
…
Paso n
Mientras Condición
Mientras Condición
Paso 1
...
Paso n
k =N
S = ∑k
k =0
k =N k=0
S = ∑k ...
k =0
Se incrementa k k=k+1
k =0 Se incrementa k k=k+1
Mientras k ≤ N
desde 0 hasta N
k =0 Sumatoria k=k+1
Mientras k ≤ N
k =0 k=k+1
Mientras k ≤ N
k =0 k=k+1
Mientras k ≤ N
FIN
Condición if Condición
V
Paso 1
Paso 1 …
... Paso N
end
Paso n
Paso 1 Paso 1
…
...
Paso N
Paso n
end
Verdadero
Falso Condición
Mientras Condición V F
Operadores relacionales.
Operadores lógicos.
Negación: ~
(A == 5)&&(B > 0)
Negación: ~
(A ~= 5)||(B <= 0)
Negación: ~
Siempre utilice paréntesis para garantizar
el orden de evaluación de las expresiones
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 47
Algoritmos en Matlab
Ejemplo: Construir una función en Matlab que sume
los primeros N números enteros:
k =N
S = ∑k
k =0
k =n
z = ∏k
k =1
SECUENCIA DE SENTENCIAS
nombre.m
k =n
z = ∏k
k =1
k =n
z = ∏k
k =1
k =n
z = ∏k
k =1
nombre.m
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 65
Tips de eficiencia
Vectorización:
x=0;
k=1;
while k <= 100
k = k + 1; x=0:0.5:50;
x = x + 0.5; y = x.^2;
y(k) = x^2;
end
nombre.m
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 66
Tips
Liberación: En la funciones y scripts liberar aquellas
variables que no son necesarias al finalizar:
x=0; x=0;
k=1; k=1;
while k <= 100 while k <= 100
k = k + 1; k = k + 1;
x = x + 0.5; x = x + 0.5;
y(k) = x^2; y(k) = x^2;
end end
clear x
clear k
nombre.m
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 67
Tips
Opción dummy: Si es necesario utilizar una variable
auxiliar para almacenar resultados temporales del
algoritmo la variable predefinida por Matlab ans es
una excelente opción.
k=1; k=1;
while k <= 100 while k <= 100
k = k + 1; k = k + 1;
x = k * 0.5; k * 0.5;
y(k) = x^2; y(k) = ans^2;
end end
nombre.m
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 68
Construir un script en Matlab que dado vector de
entrada que se encuentra en un archivo:
Calculé el máximo, el mínimo y la media aritmética.
hold permite acumular
Realice una gráfica lineal. gráficos en una sola imagen
Marque con círculos el máximo y el mínimo
Trace un línea horizontal en la media.
Almacene la gráfica en un archivo de nombre dado.
Almacene los resultados en un archivo de texto.
Colocar textos sobre el progreso de las operaciones.
Sin utilizar las funciones matemáticas de Matlab.
Resumen
Metodología para resolución de un problema
Algoritmo
Partes de un algoritmo:
Entrada
Proceso
Salida
Diagramas Rectangulares Estructurados
Repetitiva.
Hacer Mientras
Mientras