Clase 1 de Aplicaciones Numéricas en Investigación de Operaciones
description
Transcript of Clase 1 de Aplicaciones Numéricas en Investigación de Operaciones
Aplicaciones Numéricas en Investigación de Operaciones1
Prof. Gonzalo Müller
Postgrado de Investigación de Operaciones
Facultad de Ingeniería
Universidad Central de Venezuela
ClasesClases
� Las clases:
� 5:15pm a 7:15pm
� Están estructuradas de la siguiente manera:
� Resumen de clase anterior.
Conceptos, Ejemplos y Ejercicios.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 2
� Conceptos, Ejemplos y Ejercicios.
� Resumen de clase.
ConsultasConsultas
� Oficina
� Martes y Viernes a partir 4:45 pm.
� Correo electrónico
�
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 3
� Laminas:
� www.scribd.com
EvaluaciónEvaluación
� Actividades en laboratorio, 70%.
� Trabajo final, 30%.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 4
Orientación del Curso
� Conjunto de herramientas numéricas que puedan emplear en el postgrado, la tesis y en el trabajo.
� Que le permitan resolver problemas específicos oparte del problema.
� Sencillas.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 5
� Sencillas.
� Más utilizadas.
� Sin demostraciones.
Matlab
� Matlab: Matrix Laboratory, Herramienta deinvestigación, desarrollo y análisis que permiteexpresar en notación matemática familiar el problema,el método de resolución y la solución.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 6
Matlab
� Matlab permite realizar una gran variedad de tareasdestinadas a la resolución numérica de distintosproblemas:
� Operaciones con matrices.
� Graficación.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 7
� Graficación.
� Calculo estadístico.
� Desarrollo de algoritmos.
� Simulación.
Ambiente de trabajo Matlab
� El ambiente de trabajo consta de diferentes ventanas:
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 8
Ambiente de trabajo Matlab
� Ventana de comandos: ingresar variables y ejecución de funciones.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 9
Ventana
de
comandos
Ambiente de trabajo Matlab
� Ventana de variables: contiene una lista de todas las variables utilizadas.
Ventana
de
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 10
de
variables
Ambiente de trabajo Matlab
� Ventana de historia: contiene una lista de todos los comandos ejecutados.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 11
Ventana
de
historia
Funciones Matemáticas
�� FuncionesFunciones MatemáticasMatemáticas: Matlab ofrece un granconjunto de funciones matemáticas predefinidas.
Entre estas se encuentran:
� Valor Absoluto: abs(x)
� Raíz Cuadrada: sqrt(x)
x2 x
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 12
� Raíz Cuadrada: sqrt(x)
� Exponencial: exp(x)
� Logaritmo neperiano: log(x)
� Logaritmo base 10: log10(x)
� Signo: sign(x):-1 si x < 0, 0 si x = 0,1 si x > 0.
2 xxe
xlog e
xlog10
Funciones Matemáticas
� Se pueden realizar combinaciones de estas paralograr la expresión matemática deseada.
Ejemplo:)esen( 2 5
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 13
sin(sqrt(exp(5)))
help elfun permite obtener una lista detallada de las funciones
)esen(
Variables
� Todas las variables en Matlab constituye un arreglo.
� Desde un escalar hasta un arreglo N-dimensional.
� Para utilizar variables simplemente se realizan dospasos:
� Definir un nombre.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 14
� Definir un nombre.
� Asignar un valor.
� Estos dos procedimientos van de la mano
� Si se asigna un valor a un nombre no definido se crea una
variable y se le asigna un valor.
� Si la variable ya existe se le asigna un nuevo valor.
Definición de nombre
�� ReglasReglas parapara definirdefinir nombrenombre dede laslas variablesvariables:
1. Se forma con un secuencia de los siguientescaracteres:
� a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 15
� A B C D E F G H I J K L M N O P Q R S T
U V W X Y Z
� 0 1 2 3 4 5 6 7 8 9
� _
Definición de nombre
2. No puede contener espacios en blanco, ni ningúnotro carácter diferente de los indicados enanteriormente.
3. El primer carácter no puede ser un dígito.
4. Hay distinción entre las letras mayúsculas y
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 16
4. Hay distinción entre las letras mayúsculas yminúsculas.
5. Puede tener hasta 31 caracteres.
Recomendación: utilizar un nombre que tengan
un significado para el dato que representa.
Definición de nombre
6. No puede ser ninguno de los nombres ya definidospor Matlab. Algunos de estos son:
ans
abs
computer
realmin
realmax
bitmax
date
clock
beep
log
sin
sign
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 17
computer
version
ver
license
pi
tan
bitmax
flops
inf
nan
i
log10
beep
etime
tic
toc
j
input
sign
cputime
Pause
sqrt
exp
eps
Definición de nombre
� Matlab define sus propias variables entre las que seencuentran:
ans Resultado defecto
eps Delta minimo (1 + eps > 1)
inf, Inf Infinito (1/0)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 18
inf, Inf Infinito (1/0)
nan, NaN No es número (0/0)
i, j imaginario
pi pi
realmin Positivo más pequeño
realmax Positivo más grande
date fecha actual
AsignaciónAsignación
� Establece un valor para una variable:
� Un valor constante.
� El valor de otra variable.
� Resultado de una expresión aritmética o lógica.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 19
� Se utiliza el símbolo = para la asignación
nombre = valor
Siempre a la izquierda
AsignaciónAsignación
Ejemplo:
A = 24 ← Correcto
A = B ← Correcto (Asigna el valor de B a A)
A = (B + 1)/2 ← Correcto
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 20
24 = A ← Incorrecto
B = A ← Correcto (Asigna el valor de A a B)
(B + 1)/2 = A ← Incorrecto
AsignaciónAsignación
Ejemplo:
)esen(y
5x
2 x=
=
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 21
x = 5
y = sin(sqrt(exp(x)))
Arreglos
� La asignación de los valores de un arreglo siempre debe estar encerrada entre llaves.
nombre = [matriz]
� Cada fila esta definida por un conjunto de elementos separados con espacios o tabulaciones y un ; que
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 22
separados con espacios o tabulaciones y un ; que indica el final de la fila.
A = [A11 A12 A13 … ; A21 A22 A23 … ; …]
Arreglos
� La asignación de los valores de un arreglo siempre debe estar encerrada entre llaves.
nombre = [matriz]
� Cada fila esta definida por un conjunto de elementos separados con espacios o tabulaciones y un ; que
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 23
separados con espacios o tabulaciones y un ; que indica el final de la fila.
A = [A11 A12 A13 … ; A21 A22 A23 … ; …]
=
26
53
12
A A = [2 1; 3 5; 6 2]
Arreglos
� Es posible acceder a un elemento especifico de la matriz:
nombre(fila, columna)
=
12
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 24
=
26
53A
Arreglos
� Es posible acceder a un elemento especifico de la matriz:
nombre(fila, columna)
A(1,1)
=
12
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 25
=
26
53A
Arreglos
� Es posible acceder a un elemento especifico de la matriz:
nombre(fila, columna)
A(1,1)
=
12
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 26
Ejemplo:
A = [2 1; 3 5; 6 2]
a = A(1,1) + A(3,1)
A(3,1)
=
26
53A
Arreglos
� De ser necesario se pueden crear arreglos a partir de otro arreglo realizando una selección de una parte del mismo:
nombre = (seleccion1,seleccion2,...)
donde selección es un arreglo que especifica las filas, las columnas, etc.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 27
las columnas, etc.
=
26
53
12
A
Filas: 1 3 Columnas: 1 2
Arreglos
� De ser necesario se pueden crear arreglos a partir de otro arreglo realizando una selección de una parte del mismo:
nombre = (seleccion1,seleccion2,...)
donde selección es un arreglo que especifica las filas, las columnas, etc.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 28
las columnas, etc.
=
26
12D
Filas: 1 3 Columnas: 1 2
D=A([1 3],[1 2])
=
26
53
12
A
Arreglos
Ejemplo:
=
26
53
12
A
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 29
A = [2 1; 3 5; 6 2]
D = A([1 3],[1 2])
E = [1 3]
F = [1 2]
D = A(E,F)
Operaciones útiles en Matlab
� : genera una secuencia de valores
� comienzo:final
� comienzo:delta:final
� Esto permite generar matrices, seleccionarsubmatrices.
1:3 ≡ 1 2 3
1:0.3:2 ≡ 1 1.3 1.6 1.9
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 30
submatrices.
Operaciones útiles en Matlab
� : genera una secuencia de valores
� comienzo:final
� comienzo:delta:final
� Esto permite generar matrices, seleccionarsubmatrices.
1:3 ≡ 1 2 3
1:0.3:2 ≡ 1 1.3 1.6 1.9
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 31
submatrices.
Ejemplo:
C = [1:3; 4:6; 7:9]
G = C(2:3,1:2)
Selecciona una submatriz de C
Crear matriz 3x3
Arreglos
� También se pueden utilizar las funciones matemáticas con argumentos arreglos.
Ejemplo:
A = [2 1; 3 5; 6 2]
H = sqrt(A)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 32
H = sqrt(A)
Genera una matriz 3x2 conla raíz cuadrada de cada unode los elementos de A
Arreglos
� También se pueden utilizar las funciones matemáticas con argumentos arreglos.
Ejemplo:
A = [2 1; 3 5; 6 2]
H = sqrt(A)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 33
H = sqrt(A)
=
=
26
53
12
)2(sqrt)6(sqrt
)5(sqrt)3(sqrt
)1(sqrt)2(sqrt
H
Arreglos
Todo es una matriz, un escalar es una
matriz 1x1.
a = [Escalar] = Escalar
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 34
Recomendación: utilizar nombres en:
• Minúsculas para Escalares.
• Mayúsculas para Arreglos.
Operadores Aritméticos
� Suma: +
� Resta: -
� Multiplicación: *
� División: /
� Exponenciación: ^
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 35
� Exponenciación: ^
� Transpuesta: '
=
26
53
12
A B = A'
Operadores Aritméticos
� Suma: +
� Resta: -
� Multiplicación: *
� División: /
� Exponenciación: ^
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 36
� Exponenciación: ^
� Transpuesta: '
B = A'
=
261
632B
=
26
53
12
A
Operadores Aritméticos
� Las mayoría de las operaciones y funciones en Matlab operan sobre los elementos del arreglo de forma individual.
� Excepto las operaciones de multiplicación, divisióny exponenciación, para esto existen:
Multiplicación: .*
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 37
� Multiplicación: .*
� División: ./
� Exponenciación: .^
Multiplica, divide ó eleva cada elemento de la matrizpor el valor dado, respectivamente.
Operadores Aritméticos
� Multiplicación: .*
=
mnmn
2121
12121111
B*A......
......B*A
...B*AB*A
*. BA
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 38
Operadores Aritméticos
� Multiplicación: .*
� División: ./
=
mnmn
2121
12121111
B*A......
......B*A
...B*AB*A
*. BA
=
12121111
......B/A
...B/AB/A
/. BA
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 39
=
mnmn
2121
B/A......
......B/A/. BA
Operadores Aritméticos
� Multiplicación: .*
� División: ./
=
mnmn
2121
12121111
B*A......
......B*A
...B*AB*A
*. BA
=
12121111
......B/A
...B/AB/A
/. BA
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 40
� Exponenciación: .^
=
mnmn
2121
B/A......
......B/A/. BA
=
b
mn
b
21
b
12
b
11
A......
......A
...AA
b.^A
=
mn
21
1211
B
mn
B
21
B
12
B
11
A......
......A
...AA
.^BA
Operadores Aritméticos
Ejemplo:
Q = D*D1
=
26
12D
=
52
41D1
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 41
C = D.*D1
E = D/D1
F = D./D1
G = D^2
H = D.^2
≡ D*D1-1
D\D1 ≡ D-1*D1
El comando clear elimina todas las variable en memoria
Definición de Funciones
� Matlab permite al usuario definir sus propias funciones.
� Para construir una función es necesario definir unarchivo M.
� Una vez definida la función se puede realizar una
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 42
� Una vez definida la función se puede realizar unallamada como a cualquier función predefinida.
� El valor devuelto por una función puede ser unescalar o un arreglo.
Matlab ofrece un editor de archivos M
Definición de Funciones
� El archivo M tiene la siguiente forma:
Encabezado
Cuerpo
*.m
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 43
� El encabezado contiene la declaración de lafunción.
� El cuerpo contiene la definición de la función.
*.m
Definición de Funciones
� La declaración permite que la función se reconocida por Matlab.
� La declaración establece:
� Nombre la función.
� Parámetros que recibe.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 44
� Parámetros que recibe.
� La definición contiene todas la instrucciones ycálculos necesarios que constituyen la función.
� Es necesario definir una Variable de Retorno quecontiene el resultado a ser devuelto.
Definición de Funciones
� Forma de la función:
function salida = nombre(parámetro1, parámetro2,
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 45
... )
salida = ...
nombre.m
Definición de Funciones
� Forma de la función:
function salida = nombre(parámetro1, parámetro2,
Establece que el archivo
M contiene una función
Nombre de
acceso a la
función Parámetros entre paréntesis y
separados por comas
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 46
� El nombre del archivo y el de la función debencoincidir.
... )
salida = ...
nombre.m
Variable de Retorno
Definición de Funciones
� Ejemplo:)esen(y 2 x
=
function z = sim1(x)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 47
en la ventana de comandos:
y = sim1(5)
function z = sim1(x)
z = sin(sqrt(exp(x)))
sim1.m
Operaciones útiles en Matlab
� ; se coloca al final de una instrucción para evitar la presentación en pantalla del resultado.
Ejemplo:
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 48
function z = sim1(x)
z = sin(sqrt(exp(x)));
sim1.m
El nombre de la función definida no debe coincidir
con el nombre de alguna variable definida y viceversa
� Construir una función en Matlab para resolver el siguiente sistema:
[(A*B)T+2*C2]x = r
A, B, C y r: DatosA, B, C y r: Datos
� Construir una función en Matlab para resolver el siguiente sistema:
[(A*B)T+2*C2]x = r
A, B, C y r: DatosA, B, C y r: Datos
A= B=A= B=
C= r= C= r= →→ x=x=
33 44 55 66
77 88 99 1010
1111 1212 1313 1414
1515 1616 1717 1818
1919 2020 2121 2222
2323 2424 2525 2626
2727 2828 2929 3030
3131 3232 3333 3434
22 11 22 22
11 22 22 22
11 11 22 22
11 11 22 22
11
22
33
44
--1212
--1212
35,187535,1875
--17,187517,1875
ResumenResumen
� Pautas de curso.
� Matlab
� Ambiente de trabajo Matlab
� Funciones Matemáticas
� Variables
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 51
� Definición de nombre
� Asignación
� Arreglos
� acceder a un elemento o submatriz especifico
� Operadores Aritméticos
� por elemento entre matrices: .*, ./, .^
ResumenResumen
� Definición de Funciones
� Encabezado
� Cuerpo
� Variable de Retorno
� Nombre del archivo y de función deben coincidir.
� ; se coloca al final de una instrucción para evitar la
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 1 – GM – 52
� ; se coloca al final de una instrucción para evitar lapresentación en pantalla del resultado.