Você está na página 1de 49

Aplicaciones Numéricas en

Investigación de Operaciones
6

Prof. Gonzalo Müller


gmullerb@mail.com
Postgrado de Investigación de Operaciones
Facultad de Ingeniería
Universidad Central de Venezuela
Clase Anterior
 Resolución Numérica de un problema
 Métodos Secuenciales ó Directos.
 Métodos Iterativos.
 Métodos Evolutivos.
 Iteración.
 Solución Aceptable.
 Algebra clásica:
 Sucesión, Sumatoria, Productoria.
 Evaluación de un Polinomio:
 Forma tradicional, Forma factorizada.
 polyval.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 2
Clase Anterior
 Evaluación de la derivada de un polinomio:
 polyder.
 Raíces de una ecuación cuadrática.
 Raíces de una función:
 Bisección.
 Secante.
 Newton-Raphson.
 Búsqueda incremental.
 fzero.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 3
Clase Anterior
 Raíces de un polinomio:
 Laguerre´s.
 División sintética de un polinomio.
 Regla de Descartes.
 roots.

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


Desempeño de un Algoritmo
 Algoritmo constituyen una secuencia de pasos que
permiten resolver un problema.
 Un algoritmo es totalmente inútil si no es capaz de
resolver en un tiempo finito (tiempo aceptable) el
problema para el que fue diseñado.
 Hoy en día se han popularizado debido a la evolución
de las computadoras, lo que permite gran velocidad de
cálculo, y sin ellas sería imposible resolver problemas
reales complejos.

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


Desempeño de un Algoritmo
 Factores del Desempeño:
 El tiempo dependerá en gran parte del computador
utilizado, es por ello que el desempeño de un
algoritmo generalmente es medido por la cantidad
de operaciones elementales requeridas por éste
en un computador hipotético.
 El desempeño se verá afectado por la cantidad de
atributos que deba manejar para resolver el
problema.

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


Desempeño de un Algoritmo
 Dado estos factores, al describir el desempeño de un
algoritmo se define un número de n atributos,
variables o entradas y se expresa el desempeño como
el numero de operaciones elementales requeridas en
función de un número de entradas n.
 A esto se le conoce como complejidad del
algoritmo.
 Normalmente la complejidad se expresa como el
limite superior número de pasos requeridos.

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


Desempeño de un Algoritmo
 La función O (de orden) permite expresar la
complejidad de un algoritmo:
Dada dos funciones f(n), f: N→R y g(n), g:N→R
f(n): Número de paso requeridos por el algoritmo.
g(n): Limite superior de la complejidad del algoritmo.
Se dice que el algoritmo tiene complejidad O(g(n))
cuando n → ∞ si existe K > 0 y n0 tal que:
|f(n)| ≤ K |g(n)| ∀n > n0

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


Desempeño de un Algoritmo

K g(n)

f(n)

n0

Ejemplo: Determinar la complejidad de un algoritmo


que requiere n5 – 2 n2 + 2

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


Desempeño de un Algoritmo

K g(n)

f(n)

n0

Ejemplo: Determinar la complejidad de un algoritmo


que requiere n5 – 2 n2 + 2
|n5 – 2 n2 + 2|≤ n5 + 2 n2 + 2 para n0 > 1

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


Desempeño de un Algoritmo

K g(n)

f(n)

n0

Ejemplo: Determinar la complejidad de un algoritmo


que requiere n5 – 2 n2 + 2
|n5 – 2 n2 + 2|≤ n5 + 2 n2 + 2 para n0 > 1
|n5 – 2 n2 + 2|≤ n5 + 2 n5 + 2 n5

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


Desempeño de un Algoritmo

K g(n)

f(n)

n0

Ejemplo: Determinar la complejidad de un algoritmo


que requiere n5 – 2 n2 + 2
|n5 – 2 n2 + 2|≤ n5 + 2 n2 + 2 para n0 > 1
|n5 – 2 n2 + 2|≤ n5 + 2 n5 + 2 n5
|n5 – 2 n2 + 2|≤ 5 n5 → O(n5)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 12
Desempeño de un Algoritmo
 Propiedades:
 Suma:
O(g(n)+ h(n)) = O(max{g(n),h(n)})

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


Desempeño de un Algoritmo
 Propiedades:
 Suma:
O(g(n)+ h(n)) = O(max{g(n),h(n)})
 Suma una constante:
O(K+g(n)) = O(g(n))

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


Desempeño de un Algoritmo
 Propiedades:
 Suma:
O(g(n)+ h(n)) = O(max{g(n),h(n)})
 Suma una constante:
O(K+g(n)) = O(g(n))
 Producto:
O(g(n) * h(n)) = O(g(n) * h(n))

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


Desempeño de un Algoritmo
 Propiedades:
 Suma:
O(g(n)+ h(n)) = O(max{g(n),h(n)})
 Suma una constante:
O(K+g(n)) = O(g(n))
 Producto:
O(g(n) * h(n)) = O(g(n) * h(n))
 Producto por una constante:
O(K*g(n)) = O(g(n))
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 16
Desempeño de un Algoritmo
Ejemplo:
Un algoritmo que requiere 3 bucles anidados donde el
número de operaciones realizadas en cada bucle es
igual al numero de entradas del algoritmo, se dice que
tiene complejidad O(n3):
… n operaciones
V

F
V
… O(n3)
F
V

F
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 17
Desempeño de un Algoritmo
Ejemplo: Determinar la complejidad del algoritmo del
simplex:
1. Se realizan un máximo:
 n  iteraciones
 
m

2. En cada iteración se requiere el producto de una


matriz por un vector:
m * m operaciones

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


Desempeño de un Algoritmo
La complejidad será:

 n  
O  *m*m 
 m  

n m
  ≤ n
m

O(n m *m 2 )
O(n m
)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 19
Desempeño de un Algoritmo

Determinar la complejidad de un
algoritmo es una arte que requiere de
mucha destreza, ingenio y experiencia

La complejidad de un algoritmo
establecerá su utilidad práctica

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


Desempeño de un Algoritmo
 Un algoritmo se considera útil si su complejidad es
polinomial con respecto del número de entradas.
 Algoritmos de tiempo polinomial:
O(n), O(n3) , O(n2.5), O(n log n)
 Algoritmos de tiempo no polinomial:
O(n!), O(2n) , O(nn)
O(n3) es considerado el límite
aceptable para el tiempo polinomial
Generalmente el estudio de algoritmos no polinomiales
es abandonado por los investigadores al surgir
algoritmos polinomiales para el problema el cuestión
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 21
Solución de un sistema de ecuaciones
lineales

Ax=c

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


Método Tipo Trunca
Eliminación Gaussiana(n3) Directo No
 Resolver:
x = A-1 c

 A 11 A 12 ... A 1n   c1 
A A 2n   
 21  
 ... ...   
  
 A n1 A n2 ... A nn  cn 

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


Eliminación Gaussiana
 Fase 1: Triangularización de la matriz A
 Obtener 1 en Ae11. Se opera sobre
toda la fila
 Obtener 0 en Ae21 ... Aen1.
 Repetir el proceso para Aekk . 2 ≤ k ≤ n - 1
k=1
Obtener 1 en Aekk Se opera
sobre toda
Obtener 0 en Ae(k+1)k ... Aenk la fila

k=k+1
Mientras (k ≤ n - 1)

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


Eliminación Gaussiana
 Fase 2: Resolución por sustitución
 Obtener xn.
 Sustituir xn en ecuación n – 1 y obtener xn-1.
 Repetir hasta obtener x1.

x n = c' n / Ae' nn
n
x k = c' k − ∑ Ae' kj x j
j = k +1

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


Eliminación Gaussiana
 Fase 2:
xn = c’n /Ann
k=n–1
xk = c’k
j=k+1
xk = xk – Akj*xj
j=j+1
Mientras (j ≤ n)
k=k–1
Mientras (k ≥ 1)

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


Eliminación Gaussiana

Pros Contras

Fácil de implementar Los errores de redondeo


tienden a propagarse, x1
presentar el mayor efecto
n
x k = c' k − ∑ A ' kj x j
j= k +1

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


 Construir una función en Matlab que obtenga las
soluciones de un sistema de ecuaciones por
eliminación gaussiana.

 Matriz  Raices

3x+2y+z-4t=0
6x+4y+2z+t=0
9x+6y+3z-12t=0
3x+2y+z+5t=0
Método Tipo Trunca
Gauss(n2) Iterativo No
 Se basa en el despeje de la ecuaciones que forman el
sistema:

 n 
x k =  c' k − ∑ A kj x j  / A kk
 j=1, j≠ k 

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


Gauss
 Si se denota x(t) la solución en una iteración t, se tiene:

Esquema iterativo:

 n 
x k =  c' k − ∑ A kj x j  / A kk
{t +1} {t}

 j=1, j≠ k 

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


Gauss
k=0
xk= c’k
j=1

V
j~=k

xk = xk – Akj*yj
j=j+1
Mientras (j ≤ n)
xk = xk /Akk
k=k–1
Mientras (k ≥ 1)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 31
Gauss
 Condición de Convergencia Suficiente y Necesaria: El
método converge si la suma de los valores absolutos
de los elementos que no pertenecen a la diagonal son
menores que la suma de los valores absolutos de la
diagonal:
k =n j= n k =n

∑ ∑A
k =1 j=1, j≠ k
kj < ∑ A kk
k =1

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


 Construir una función en Matlab que determine si un
sistema converge con el método de Gauss.

 Matriz  true o false

3x+2y+z-4t=0 9x+3y+4t=0
6x+4y+2z+t=0 x+6y-4t=0
9x+6y+3z-12t=0 8x+y+9t=0
3x+2y+z+5t=0
 Construir una función en Matlab que obtenga las
soluciones de un sistema de ecuaciones por el método
de Gauss.

 Matriz  Raices

3x+2y+z-4t=0 9x+3y+4t=0
6x+4y+2z+t=0 x+6y-4t=0
9x+6y+3z-12t=0 8x+y+9t=0
3x+2y+z+5t=0
Método Tipo Trunca
Gauss-Seidel(n2) Iterativo No
 Se basa en el despeje de la ecuaciones que forman el
sistema:

 n 
x k =  c' k − ∑ A kj x j  / A kk
 j=1, j≠ k 

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


Gauss-Seidel
 Si se denota x(t) la solución en una iteración t, se tiene:

 n 
x k =  c' k − ∑ A kj x j  / A kk
{t +1} {t}

 j=1, j≠ k 

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


Gauss-Seidel
 Si a medida que se estiman los valores se sustituyen
inmediatamente se tiene:

 k -1 n 
x k =  c' k −∑ A kj x j − ∑ A kj x j  / A kk
{t +1} {t +1} {t}

 j=1 j = k +1 
Recién evaluadas Obtenidas en la
iteración anterior

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


Gauss-Seidel
 Si a medida que se estiman los valores se sustituyen
inmediatamente se tiene:

Esquema iterativo:
 k -1 n 
x k =  c' k −∑ A kj x j − ∑ A kj x j  / A kk
{t +1} {t +1} {t}

 j=1 j = k +1 

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


Gauss-Seidel
k=0
xk= c’k
j=1

V
j~=k

xk = xk – Akj*xj
j=j+1
Mientras (j ≤ n)
xk = xk /Akk
k=k–1
Mientras (k ≥ 1)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 6 – GM – 39
Gauss-Seidel
 Condición de Convergencia Necesaria: El método
converge si la suma de los valores absolutos de los
elementos que no pertenecen a la diagonal son
menores que la suma de los valores absolutos de la
diagonal:
k =n j= n k =n

∑ ∑A
k =1 j=1, j≠ k
kj < ∑ A kk
k =1

Si la matriz es estrictamente dominante


diagonalmente el método de Gauss siempre converge
pero el método Gauss-Seidel puede no converger

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


Gauss-Seidel

Pros Contras

•Más fácil de implementar que Menos estable que Gauss


Gauss (al menos una variables
menos)
•Converge más rápidamente
que Gauss

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


 Construir una función en Matlab que obtenga las
soluciones de un sistema de ecuaciones por el método
de Gauss-Seidel.

 Matriz  Raices

3x+2y+z-4t=0 9x+3y+4t=0
6x+4y+2z+t=0 x+6y-4t=0
9x+6y+3z-12t=0 8x+y+9t=0
3x+2y+z+5t=0
Matriz Inversa

A-1

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


Método Tipo Trunca
Gauss-Jordan(n3) Directo No
 El procedimiento es similar a la Fase 1 de Eliminación
de Gauss, pero en se requiere obtener una matriz
diagonal

 A 11 0 ... 0 
 0 A 22 0 
 
 ... ... 
 
 0 0 ... A nn 

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


Gauss-Jordan
 La matriz A se extiende para contener una matriz
identidad

 A 11 A 12 ... A 1n 1 0 ... 0 
 
 A 21 A 2n 0 1 0
 ... ... ... ...
 
 A n1 A n2 ... A nn 0 0 ... 1 

Al finalizar el procedimiento esta matriz


constituirá la matriz inversa de A

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


Gauss-Jordan
 Diagonalización de la matriz A
 Obtener 1 en Ae1k. 1 ≤ k ≤ n Se opera sobre
toda la fila
 Obtener 0 en Aej1. 1 ≤ j ≤ n, j ≠ k

k=1
Obtener 1 en Aekk
Obtener 0 en Aej1. 1 ≤ j ≤ n, j ≠ k
k=k+1
Mientras (k ≤ n - 1)

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


Gauss-Jordan
 Si se incluye un vector c de constantes es posible
resolver el sistema de ecuaciones A x = c

 A 11 A 12 ... A 1n c1 1 0 ... 0
 
 A 21 A 2n 0 1 0
 ... ... .. .. 
 
 A n1 A n2 ... A nn cn 0 0 ... 1

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


Gauss-Jordan
 Es recomendable intercambiar las filas de la matriz de
tal manera de que en la diagonal se encuentren los
mayores elementos de esta manera se reducen los
errores por redondeo.

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


Resumen
 Desempeño de un Algoritmo
 Solución de un sistema de ecuaciones lineales
 Eliminación Gaussiana
 Gauss
 Gauss-Seidel
 Matriz Inversa
 Gauss-Jordan

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

Você também pode gostar