Clase 1 de Aplicaciones Numéricas en Investigación de Operaciones

Preview:

DESCRIPTION

Clase 1 de Aplicaciones Numéricas en Investigación de Operaciones, Prof. Gonzalo Müller, gmullerb@mail.com, Facultad de Ingeniería, UCV

Citation preview

Aplicaciones Numéricas en Investigación de Operaciones1

Prof. Gonzalo Müller

gmullerb@mail.com

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.