Sunteți pe pagina 1din 72

Aplicaciones Numéricas en

Investigación de Operaciones
4

Prof. Gonzalo Müller


gmullerb@mail.com
Postgrado de Investigación de Operaciones
Facultad de Ingeniería
Universidad Central de Venezuela
Clase anterior
 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 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

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


Metodología para resolución de un problema
 Pasos a seguir en la resolución de un problema:
Definición del problema

Formulación del modelo matemático

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


Metodología para resolución de un problema
 Pasos a seguir en la resolución de un problema:
Definición del problema

Formulación del modelo matemático

Desarrollo de un método numérico para resolución

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


Metodología para resolución de un problema
 Pasos a seguir en la resolución de un problema:
Definición del problema

Formulación del modelo matemático

Desarrollo de un método numérico para resolución

Implementación computacional del método

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


Metodología para resolución de un problema
 Pasos a seguir en la resolución de un problema:
Definición del problema

Formulación del modelo matemático

Desarrollo de un método numérico para resolución

Implementación computacional del método

Búsqueda y evaluación de la solución

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


Algoritmo
 Algoritmo
Algoritmo: Es el conjunto detallado de pasos
secuénciales, ordenados y detallados que permiten
lograr un objetivo.
 Secuenciales: Deben ser ejecutados uno detrás de
otro.
 Ordenados: Ya que la posición del paso es
fundamental.
 Detallados: Deben estar lo suficientemente
detallado para que no exista ninguna duda en su
puesta en marcha.

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


Algoritmo
 Características de un buen algoritmo:
algoritmo
 Finito: Siempre termina luego de la ejecución de un
número finito de pasos.
 Definido: Se obtiene el mismo resultado a partir de
los mismos datos.
 Preciso: No debe contener ambigüedades, no pude
ser sujeto de interpretación.

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


Algoritmo
 Partes de un algoritmo:
algoritmo
 Entrada: Datos necesarios para comenzar el
proceso.
 Proceso: Se realizan todas las operaciones y cálculos
necesarios con los datos de entrada.
 Salida: Se obtiene un resultado.

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


Algoritmo

Una Solución
Entrada xk

Proceso
Algoritmo para
bajar de peso
Algoritmo

Salida xk+1
Una Mejor
Solución

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


Representación de un algoritmo
 Existen básicamente tres formas de representar los
algoritmos:
 Pseudo código.
 Diagramas de Flujo.
 Diagramas Rectangulares Estructurados.

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


Representación de un algoritmo
 Diagramas Rectangulares Estructurados (DRE):
Constituyen una representación gráfica de la secuencia
de pasos a realizar.
 La operaciones se escriben con símbolos
normalizados.
 Permiten mantener el orden.
 Permiten una analogía que facilita la codificación.
 También conocidos como: Diagramas de Nassi-
Schneiderman.

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


Representación de un algoritmo
 Toda la secuencia de pasos se coloca dentro de un
rectángulo:

Paso 1

Paso 2

Paso n

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


Representación de un algoritmo
 En el primer bloque se debe colocar el nombre del
algoritmo.
 En el último bloque se debe colocar Fin.
Nombre

Paso 1

Paso 2

FIN

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


Estructuras básicas
 Todo algoritmo se construye con 3 estructuras básicas:
 Secuencial.
 Selectiva.
 Repetitiva.

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


Estructura Secuencial
 Estructura Secuencial:
Secuencial Un paso se ejecuta uno detrás
de otro.
DRE

Paso 1

Paso 2

Paso n

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


Estructura Secuencial
Ejemplo: Construir el DRE para leer y sumar dos
números.

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


Estructura Selectiva
 Estructura Selectiva:
Selectiva Una secuencia de pasos se
ejecuta dependiendo de una condición dada.

 También se le llama condicional.


 Dos tipos:
 Sencilla
 Doble

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


Estructura Selectiva
 Estructura Condicional Sencilla
Sencilla: Se ejecuta una
instrucción si la condición dada es verdadera.

DRE
Condición
V F

Paso 1

...

Paso n

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


Estructura Selectiva
Ejemplo: Construir el DRE del algoritmo para
convertir un número en negativo si es positivo.

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


Estructura Selectiva
 Estructura Condicional Doble
Doble: Se ejecutan alguna de
dos secuencias de instrucciones dependiendo de la
condición dada.
DRE

Condición
V F

Paso 1 Paso 1’

... ...

Paso n Paso n’

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


Estructura Selectiva
Ejemplo: Construir el DRE del algoritmo para
convertir un numero según la siguiente regla: Sumar 1
si es negativo o Restar 1 de lo contrario.

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


Estructura Repetitiva
 Estructura Repetitiva:
Repetitiva Una secuencia de pasos se
repite en forma consecutiva dependiendo de una
condición dada.
 También se le llama Bucle o Lazo.
 Cada repetición se conoce como ciclo o iteración.
 Dos tipos:
 Hacer Mientras
 Se ejecuta al menos una vez la secuencia.
 Mientras
 Puede que nunca se ejecute la secuencia.

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


Estructura Repetitiva
 Estructura Repetitiva Hacer Mientras
Mientras: Una secuencia
de paso se repite en forma consecutiva mientras se
cumpla una condición dada.
DRE

Paso 1

Paso n
Mientras Condición

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


Estructura Repetitiva
 Estructura Repetitiva Mientras:
Mientras Una secuencia de paso
se repite en forma consecutiva dependiendo de una
condición dada.
DRE

Mientras Condición
Paso 1
...
Paso n

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


Estructura Repetitiva
Ejemplo: Construir el DRE del algoritmo para leer un
numero hasta que este sea no negativo.

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:
 Entrada: N
 Salida: Sumatoria S

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:
 Entrada: N
 Salida: Sumatoria S

k =N
S = ∑k
k =0

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:
 Entrada: N
 Salida: Sumatoria S ...
k debe tener un
k =N k=0
valor inicial de 0
S = ∑k ...
k =0

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:
 Entrada: N
 Salida: Sumatoria S ...

k =N k=0

S = ∑k ...
k =0
Se incrementa k k=k+1

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:
 Entrada: N
 Salida: Sumatoria S
k=0
k =N
S = ∑k …

k =0 Se incrementa k k=k+1
Mientras k ≤ N
desde 0 hasta N

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:
 Entrada: N
 Salida: Sumatoria S
k=0
k =N
S = ∑k Se calcula la S=S+k

k =0 Sumatoria k=k+1
Mientras k ≤ N

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros: Se inicializa en
la Sumatoria
 Entrada: N
 Salida: Sumatoria S S=0
k=0
k =N
S = ∑k S=S+k

k =0 k=k+1
Mientras k ≤ N

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


Representación de un algoritmo
Ejemplo: Construir un algoritmo que sume los
primeros N números enteros:
 Entrada: N
Sumatoria
 Salida: Sumatoria S S=0
k=0
k =N
Formalidad
S = ∑k S=S+k

k =0 k=k+1
Mientras k ≤ N
FIN

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


Representación de un algoritmo
DRE de funciones:
 Entrada: N
 Salida: Sumatoria S

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


Estructuras Básicas de Programación
 Estructura Condicional Sencilla
Sencilla:
DRE MATLAB

Condición if Condición
V
Paso 1
Paso 1 …
... Paso N
end
Paso n

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


Estructuras Básicas de Programación
 Estructura Condicional Doble
Doble:
DRE MATLAB
if Condición
Paso 1
Condición
V F …
Paso 1 Paso 1’ Paso N
else
... ...
Paso 1’
Paso n Paso n’ …
Paso N’
end
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 40
Estructuras Básicas de Programación
 Estructura Repetitiva Mientras:
Mientras
DRE MATLAB

Mientras Condición while Condición

Paso 1 Paso 1

...
Paso N
Paso n
end

Matlab no dispone de la estructura Hacer Mientras


Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 41
Expresiones Lógicas
 Las condiciones de las estructuras selectivas y
repetitivas constituyen expresiones lógicas que se
evalúan en: Expresiones Lógicas

 Verdadero
 Falso Condición
Mientras Condición V F

Paso 1 Paso 1 Paso 1’

... ... ...

Paso n Paso n Paso n’

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


Expresiones Lógicas
 Las expresiones lógicas se construyen con:

 Operadores relacionales.

 Operadores lógicos.

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


Expresiones Lógicas
 Operadores Relaciónales:
Relaciónales Establece la relación entre
dos valores numéricos.
 Mayor que: >
 Menor que: <
 Igual que: ==
 Mayor o igual que: >=
 Menor o igual que: <=
 Distinto que: ~=
Variable, Constante ó Expresión matemática operador Variable, Constante ó Expresión matemática
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 44
Operadores Lógicos
 Operadores Lógicos: Se utilizan para combinar
expresiones lógicas.
 Y: &&
 O: ||
Expresión lógica operador Expresión lógica

 Negación: ~

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


Operadores Lógicos
 Operadores Lógicos: Se utilizan para combinar
expresiones lógicas.
 Y: &&
 O: ||
Expresión lógica operador Expresión lógica

(A == 5)&&(B > 0)

 Negación: ~

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


Operadores Lógicos
 Operadores Lógicos: Se utilizan para combinar
expresiones lógicas.
 Y: &&
 O: ||
Expresión lógica operador Expresión lógica

(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:

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


Algoritmos en Matlab
Ejemplo: Construir una función en Matlab que sume
los primeros N números enteros:
 Entrada: N
 Salida: Sumatoria S

k =N
S = ∑k
k =0

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


Algoritmos en Matlab
Ejemplo: Construir una función en Matlab que sume
los primeros N números enteros:
 Entrada: N
Sumatoria
 Salida: Sumatoria S
S=0
k =N k=0
S = ∑k S=S+k
k = 0 Hacer Mientras k=k+1
no esta definida Mientras k ≤ N
en Matlab FIN

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


Algoritmos en Matlab
Ejemplo: Construir una función en Matlab que sume
los primeros N números enteros:
 Entrada: N
Sumatoria
 Salida: Sumatoria S
S=0
k =N k=0
S = ∑k Mientras k ≤ N
k =0 S=S+k
k=k+1
FIN

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


Algoritmos en Matlab
Ejemplo: Construir una función en Matlab que sume
los primeros N números enteros:
 Entrada: N
Sumatoria
 Salida: Sumatoria S
S=0
k =N k=0
S = ∑k Estructura
Mientras k ≤ N
k =0 S=S+k
repetitiva
k=k+1
while
FIN

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


Algoritmos en Matlab
Ejemplo: Construir una función en Matlab que sume
los primeros N números enteros:
 Entrada: N
Sumatoria
 Salida: Sumatoria S
S=0
k = 0;
S=0; k=0
while k <= N Mientras k ≤ N
S = S + k; S=S+k
k = k + 1;
k=k+1
end
FIN

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


Algoritmos en Matlab
Ejemplo: Construir una función en Matlab que sume
los primeros N números enteros:
 Entrada: N
Sumatoria
 Salida: Sumatoria S
S=0
k = 0;
S=0; k=0
while k <= N Mientras k ≤ N
S = S + k; S=S+k
k = k + 1;
k=k+1
end
FIN

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


 Construir una función en Matlab para resolver:
k =n
r = ∏a
k =1

 Sin utilizar las funciones de Matlab


 Construir una función en Matlab para resolver:
k =n
r = ∏k
k =1

 Sin utilizar las funciones de Matlab


 Construir un función en Matlab que retorne los
valores de w y z:
k =n
w = ∏a
k =1

k =n
z = ∏k
k =1

 Sin utilizar las funciones de Matlab


Scripts
 Matlab ofrece la posibilidad de construir archivos de
script donde se ejecuta toda una secuencia de
sentencias.
 No recibe parámetros: Este archivo no recibe
parámetros de entrada ni genera un valor de salida.

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


Scripts
 Matlab ofrece la posibilidad de construir archivos de
script donde se ejecuta toda una secuencia de
sentencias.
 No recibe parámetros: Este archivo no recibe
parámetros de entrada ni genera un valor de salida.
 Data en memoria: El script puede operar con data
que se encuentre en memoria, data definida
previamente a la ejecución del script.

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


Scripts
 Matlab ofrece la posibilidad de construir archivos de
script donde se ejecuta toda una secuencia de
sentencias.
 No recibe parámetros: Este archivo no recibe
parámetros de entrada ni genera un valor de salida.
 Data en memoria: El script puede operar con data
que se encuentre en memoria, data definida
previamente a la ejecución del script.
 Nueva data: si se define nueva data esta permanece
en la memoria de Matlab una vez terminado el
script. Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 60
Scripts
 Estructura del archivo de script:

SECUENCIA DE SENTENCIAS

nombre.m

El carácter % permite colocar comentarios en el código de la función

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


 Construir un script en Matlab para resolver:
k =n
w = ∏a
k =1

k =n
z = ∏k
k =1

 Sin utilizar las funciones de Matlab.


 Sin input y sin disp.
 Construir un script en Matlab para resolver:
k =n
w = ∏a
k =1

k =n
z = ∏k
k =1

 Sin utilizar las funciones de Matlab.


 Sin input y sin disp. Data en memoria!
 Construir un script en Matlab para resolver:
k =n
w = ∏a
k =1

k =n
z = ∏k
k =1

 Sin utilizar las funciones de Matlab.


 Con input y con disp.
Tips de eficiencia
 Inicialización:
x=0; x=0;
k=1; k=1;
while k <= 100 y = zeros(100,1)
k = k + 1; while k <= 100
x = x + 0.5; k = k + 1;
y(k) = x^2; x = x + 0.5;
end y(k) = x^2;
end

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

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


Resumen
 Estructuras básicas
 Secuencial.
 Selectiva.
 Sencilla
 Doble

 Repetitiva.
 Hacer Mientras
 Mientras

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


Resumen
 Estructuras básicas en Matlab:
 if … end
 if … else … end
 while … end
 Expresiones Lógicas
 Operadores Relaciónales: <, >, ==, <=, >=, ~=
 Operadores Lógicos: &, | , ~
 Scripts
 Tips de eficiencia: Inicialización, Vectorización,
Liberación, Opción dummy.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 4 – GM – 72

S-ar putea să vă placă și