Clase Aplicaciones Numéricas en Investigación de Operaciones 05
description
Transcript of Clase Aplicaciones Numéricas en Investigación de Operaciones 05
Aplicaciones Numéricas en Investigación de Operaciones5
Prof. Gonzalo Müller
Postgrado de Investigación de Operaciones
Facultad de Ingeniería
Universidad Central de Venezuela
Clase AnteriorClase Anterior
� Metodología para resolución de un problema� Algoritmo� Partes de un algoritmo:
� Entrada� Proceso� Salida
� Diagramas Rectangulares Estructurados
Clase AnteriorClase Anterior
� Estructuras básicas � Secuencial.� Selectiva.
� Sencilla� Doble
� Repetitiva.� Hacer Mientras� Mientras
Clase AnteriorClase Anterior
� 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.
Resolución Numérica de un problema
Datos de problema: A, B, C, D
...
Solución
Enfoque 1
Resolución Numérica de un problema
Datos de problema: A, B, C, D
...
Solución
Enfoque 2
Solución Posible (Profeta)
Resolución Numérica de un problema
� Métodos Secuenciales ó Directos.
� Métodos Iterativos.
�Métodos Evolutivos.
Resolución Numérica de un problema
Solución
Métodos
Directos
Datos
Resolución Numérica de un problema
� Métodos Secuenciales: Se realiza una secuencia de pasos que obtienen la solución del problema.
…
…
Solución
…
…
Resolución Numérica de un problema
Solución
Métodos
Iterativos
Datos
Resolución Numérica de un problema
� Los métodos iterativos parten de una solución inicial que se aproxima a la solución el método procede a mejorar la solución.
� El proceso se repite hasta completar un número definido de iteraciones o hasta obtener un solución aceptable.
� Se requiere:
� Solución inicial.
� Un algoritmo para mejorar la solución.
� Una regla de parada.
Resolución Numérica de un problema
� Métodos Iterativos: Se realiza un proceso de búsqueda cíclica por un número fijo de iteraciones.
…
…
Solución
…
k < NV
k = 0
N: número de iteraciones
k = k + 1Soluciónk
Solución0
Búsqueda de nueva solución
Resolución Numérica de un problema
� Métodos Iterativos: Se realiza un proceso de búsqueda cíclica por un número fijo de iteraciones.
…
…
Solución = SoluciónN
…
k < NV
k = 0
N: número de iteraciones
k = k + 1Soluciónk
Solución0
Búsqueda de nueva solución
Resolución Numérica de un problema
� Métodos Evolutivos: Se realiza un proceso de búsqueda cíclica que parte de una solución inicial que evoluciona hasta una solución aceptable.
� Aunque existe un número fijo de iteraciones el proceso puede detenerse antes al encontrar una solución aceptable.
…
Solución
…
k < N && Solución no aceptable
V
k = k + 1Soluciónk
Resolución Numérica de un problema
� Métodos Evolutivos: Se realiza un proceso de búsqueda cíclica que parte de una solución inicial que evoluciona hasta una solución aceptable.
� Aunque existe un número fijo de iteraciones el proceso puede detenerse antes al encontrar una solución aceptable.
…
Solución = Soluciónk
…
k < N && Solución no aceptable
V
k = k + 1Soluciónk
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 16
Resolución Numérica de un problema
� Iteración: representa una transformación de una solución xk a solución xk+1:
xk+1xk
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 17
Resolución Numérica de un problema
� Iteración: representa una transformación de una solución xk a solución xk+1:
x0 x1 xn
Iteración 1
Iteración 2
Iteración n
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 18
Resolución Numérica de un problema
� Solución Aceptable: Es necesario definir regla de paradas que establezcan si la solución en estudio ha alcanzado un valor el cual se considere suficientemente bueno para finalizar el proceso de búsqueda.
� Distancia alcanza en M iteraciones:
║xk – xk – M║< ε� Distancia relativa en una iteración:
║xk+1 – xk║/║ xk║< ε
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 19
Resolución Numérica de un problema
� Solución Aceptable: Es necesario definir regla de paradas que establezcan si la solución en estudio ha alcanzado un valor el cual se considere suficientemente bueno para finalizar el proceso de búsqueda.
� Distancia alcanza en M iteraciones:
║xk – xk – M║< ε� Distancia relativa en una iteración:
║xk+1 – xk║/║ xk║< ε Error relativo. Si el valor es alto no se considera una buena aproximación a la solución
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 20
Resolución Numérica de un problema
�Mejora en la solución luego de M iteraciones
|f(xk) – f(xk – M)| < ε�Mejora relativa en la solución en una iteración:
|f(xk) – f(xk + 1)| / |f(xk)| < ε� Cercanía a un valor meta M:
|f(xk) – M|< ε� Cercanía relativa a un valor meta M:
|f(xk) – M| / |f(xk)| < ε� etc.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 21
Algebra clásica
La mayoría de los métodos la utilizan como herramienta básica
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 22
Sucesión, Sumatoria, Productoria Directo No
� Sucesión:
� Sumatoria:
� Productoria:
g(N)g(2)g(1)g(k)N
1k
+++=∑=
L
g(N)g(2)g(1)g(k)N
1k
∗∗∗=∏=
L
{ } LL ,g(2)g(1),g(k),X,XX 21k ===
� Construir una función en Matlab que dado la cantidad de términos (N) y la función (g(x)) retorne la sucesión, la sumatoria y la productoria correspondiente.
� Sin utilizar las funciones de Matlab
� Construir una función en Matlab que dado la cantidad de términos (N) y la función (g(x)) retorne la sucesión, la sumatoria y la productoria correspondiente.
� Utilizar las funciones de Matlab: sum, prod.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 25
Evaluación de un polinomio
P(x) = ∑akxk
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 26
∑akxk Directo No
� Forma tradicional:
P(x) = a0 + a1 x1 + a2 x2 + ··· + ak xk + ··· + an xn
� Forma factorizada:
P(x) = a0 +
(a1+(a2+··· (ak+··· (an-2+(an-1+ an x)x)x··· x)x··· x)x)x
Pn-1(x) = an-1 + x Pn(x)
Pn(x)=an
Pn-2(x) = an-2 + x Pn-1(x)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 27
∑akxk
� Forma factorizada:
� P(x) = P0(x)
Pn(x) = anPk–1(x) = ak–1(x) + x Pk(x)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 28
∑akxk en Matlab
� polyval: Evalúa un polinomio.
polyval(coeficientes, x)
� x: puede ser un vector o una matriz
Ejemplo:
x2 – 2x + 3
polyval([1 –2 3], 2)
� Construir una función en Matlab que evalué un polinomio dado el vector de coeficientes del polinomio y el valor de x .
� Forma tradicional.
� Forma factorizada.(Sin recursividad)
� Sin utilizar la función de Matlab polyval.
Las funciones tic y toc de Matlab permiten establecer
el tiempo que tomo un conjunto de operaciones
� Construir una función en Matlab que evalué un polinomio dado el vector de coeficientes del polinomio y el valor de x .
� Forma tradicional.
� Forma factorizada.(Sin recursividad)
� Forma factorizada.(Con recursividad)
� Sin utilizar la función de Matlab polyval.
� Dados los siguiente polinomios:
P(x) = 8 + 3x + 5x2 + 3x6
P(x) = 5 – 4x + 9x3 – ½ x5
� Evaluar por ambas formas y polival:� x = 0.3 x = 0.333333333333
� x = 0.1 x = 0.111111111111
� Y comparar:� Cantidad de sumas y multiplicaciones.
� Resultados.
� Dados los siguiente polinomios:
P(x) = 8 + 3x + 5x2 + 3x6
P(x) = 5 – 4x + 9x3 – ½ x5
� Evaluar por ambas formas y polival:� x = 0.3 x = 0.333333333333
� x = 0.1 x = 0.111111111111
� Y comparar:� Cantidad de sumas y multiplicaciones.
� Resultados.
Tradicional:
½ * n (n -1)
multiplicaciones
Factorizada:
n multiplicaciones
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 33
Evaluación de la derivada de un polinomio
P′(x)
P(x) = ∑akxk
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 34
P′(x) Directo No
� Partiendo de la forma factorizada:
� 1º Derivada: P′(x) = P′0(x)
P′n(x) = 0
P′k–1(x) = Pk(x) + x P′k(x)
� 2º Derivada: P″(x) = P″0(x)
P″n(x) = 0
P″k–1(x) = 2P′k(x) + x P″k(x)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 35
P′(x) en Matlab
� polyder: Calcula la derivada de un polinomio.
polyder(coeficientes)
Ejemplo:
(x2 – 2x + 3)′
polyder([1 –2 3])
� Construir una función en Matlab que evalué la un polinomio, su 1º derivada y su 2º derivada partiendo de la forma factorizada dado el vector de coeficientes del polinomio y el valor de x.
� P(x)
� P′(x)
� P″(x)
� Coeficientes
� x
� Construir una función en Matlab que evalué la un polinomio, su 1º derivada y su 2º derivada partiendo de la forma factorizada dado el vector de coeficientes del polinomio y el valor de x.
�Utilizando la función de Matlab polyder y polyval.
� P(x)
� P′(x)
� P″(x)
� Coeficientes
� x
� Construir una función en Matlab que calcule la derivada de un polinomio dado el vector de coeficientes del polinomio.
� Sin utilizar la función de Matlab polyder.
� Coeficientes � Coeficientes
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 39
Raíces de una ecuación cuadrática
a x2 + b x +c = 0
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 40
Discriminante Directo No
a x2 + b x +c = 0
2a4acbb
x2 −±−
=
� Construir una función en Matlab que obtenga las raíces de una ecuación cuadrática.
� Sin utilizar las funciones de Matlab para hallar raíces.
� Coeficientes
(Vector)
� Raices
(Vector)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 42
Raíces de una función
f(x) = 0
Aunque una función puede tener raíces complejas, estas suelen ser de poco interés ya que no tienen significado
físico
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 43
Bisección Iterativo No
� Raíces Reales.
� Toma en cuenta los cambios de signo de la función.
� Parte de un intervalo de búsqueda el cual en cada iteración se reduce
� Es el método más confiable. N=ln((b – a)/ε)/ln(2)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 44
Bisección
� Dato inicial: a{0}, b{0}
x{0} = (a{0} + b{0})/2
� Esquema iterativo:
x{k+1} = (a{k+1} + b{k+1})/2
a{k+1} = x{k} a{k+1} = a{k}
b{k+1} = b{k} b{k+1} = x{k}
signo(f(a{k})) == signo(f(x{k}))
V F
f(a{k}) = 0, f(b{k}) = 0 óf(x{k}) = 0
� Construir una función en Matlab que obtenga las raíces de una función dada utilizando el método de bisección.
Debe retornar:
� raíz
� matriz del proceso:
x{k} f(x{k}) a{k} b{k}
� f(x)
�[a b]
�e
� Raíz
�Matriz proceso
10sen(x)ef(x)
1xf(x)2x
2
−=
−=
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 46
Secante Iterativo No
� Raíces Reales.
� Corte con el eje x de una recta estimada como la interpolación entre dos puntos.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 47
Secante
� Dato inicial:
x{0}, x{1}
� Esquema iterativo:
x{k+1} = x{k} – [f(x(k})(x{k} – x{k – 1})]/[f(x{k}) – f(x{k – 1})]
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 48
Secante
Pros Contras
�Fácil de implementar
� No requiere la derivada de la función.
�Más estable que Newton-Raphson
�Requiere 2 puntos iniciales de estimación
� Construir una función en Matlab que obtenga las raíces de una función dada utilizando el método de Secante. Debe retornar:
� raíz
� matriz del proceso:
x{k} f(x{k}) x{k-1} x{k-2}
10sen(x)ef(x)
1xf(x)2x
2
−=
−=
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 50
Newton-Raphson Iterativo No
� Raíces Reales.
� Corte de la tangente al polinomio en el punto de evaluación con el eje x.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 51
Newton-Raphson
� Dato inicial:
x{0}
� Esquema iterativo:
x{k+1} = x{k} – f(x{k})/f´(x{k})
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 52
Newton-Raphson
� Condición de Convergencia Suficiente y Necesaria:
|f(x)f´´(x)/[f´(x)]2|< 1, ∀x
� Si el polinomio es tangente a el eje x el método puede no converger (f´(x{k}) = 0).
Pros Contras
�Fácil de implementar
�Requiere 1 puntos inicial de estimación
�Más rápido
�Requiere la derivada de la función.
�La función debe ser derivable
�Puede divergir
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 53
Newton-Raphson
� Divergencia del método
� Construir una función en Matlab que obtenga las raíces de una función dada utilizando el método de Newton-Raphson. Debe retornar:
� raíz
� matriz del proceso:
10sen(x)ef(x)
1xf(x)2x
2
−=
−=
x{k-1}f(x{k}) x{k}
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 55
Búsqueda incremental
� Si bien es cierto se puede tener una ideal inicial de la raíz en algunos problemas físicos, no siempre es el caso.
� Se puede definir una malla de estudio dentro de un intervalo de incertidumbre en función de hallar los ceros de la función.
bax
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 56
Búsqueda incremental
1. Se define una malla con intervalos δ
� Si el intervalo es lo suficientemente pequeño es muy probable que contenga una sola raíz.
� Si el intervalo es grande que la separación de las raíces se perderán algunas.
bax
δ
bax
δ
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 57
Búsqueda incremental
2. Se buscan cambios de signos
� Si f(x1) y f(x2) tiene signos opuestos, entonces al menos una raíz se encuentra en el intervalo (x1, x2).
� Raíces dobles no será detectadas.
bax
bax
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 58
Búsqueda incremental
� Algunas singularidades puede confundirse con raíces.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 59
f(x) en Matlab
� fzero: Determina una raíz de la función partiendo de un valor dado.
fzero(coeficientes, x)
� x: solución inicial.
Ejemplo:
f1(x) = x2 – 2x + 3 = 0
fzero(@f1, 0.5)
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 60
Raíces de un polinomio
∑akxk = 0
Aunque el polinomio puede tener raíces complejas, estas suelen ser de poco interés ya que no tienen significado
físico
Método Tipo Trunca
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 61
Laguerre´s Iterativo No
� Dato inicial:
x{0}
� Esquema iterativo:
[ ])(xQ)nW(x1)(n)Q(x )(xU
)(xU)(xU)(xU
)(xU)(xU)(xU )U(x
)U(xn
xx
{k}2{k}{k}{k}
{k}{k}{k}
{k}{k}{k}{k}
{k}{k}1}{k
−−±=
>
>=
−=
±
+−−
−++
+
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 62
Laguerre´s
Q(x{k}) = P′(x{k})/P(x{k})
W(x{k}) = Q2(x{k}) – P″(x{k})/P(x{k})
Si los coeficientes son reales las raíces
complejas siempre vienen en pares
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 63
División sintética de un polinomio
� En líneas generales estos métodos permiten obtener 1 raíz del polinomio.
� Una vez obtenida esta raíz se procede a eliminarla del polinomio y así obtener un polinomio Q de menor grado:
Q(x) = b0 + b1 x1 + b2 x2 + ··· + bk xk + ··· + bn–1 xn–1
donde:
bn–1 = anbk–1 = rbk + ak
r: raíz
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 64
Regla de Descartes
Sea un polinomio P(x) con coeficientes reales tales que P(0) ≠ 0:
Número de Raíces Positivas es igual al número de cambios de signo de termino a termino o menor a este por un entero par (raíces complejas viene en pares).
Número de Raíces Negativas es igual al número de cambios de signo de termino a termino de P(-x) o menor a este por un entero par.
Los términos de coeficientes nulos no se toman en cuenta
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 65
Regla de Descartes
Ejemplo:
P(x) = 8 + 3x + 5x2 + 3x6↓
0 raíces positivas
P(x) = 5 – 4x + 9x3 – ½ x5↓
3 raíces positivas ó
1 positiva y 2 complejas
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 66
Regla de Descartes
P(x) = x4 – 5x2 + 4↓
2 raíces positivas ó
0 raíces positivas y 2 complejas
P(–x) = x4 – 5x2 + 4↓
2 raíces negativas ó
0 raíces negativas y 2 complejas
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 67
Regla de Descartes
P(x) = x4 – 5x2 + 4↓
2 raíces positivas y 2 raíces negativas ó
2 raíces positivas y 2 raíces complejas ó
2 raíces negativas y 2 raíces complejas ó
4 complejas
� Construir una función en Matlab que obtenga la cantidad de raíces positivas y la cantidad de raíces negativas de un polinomio dado el vector de coeficientes.
� Coeficientes � Cantidad de raíces positivas
� Cantidad de raíces negativas
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 69
∑akxk = 0 en Matlab
� roots: Determina las raíces de un polinomio.
roots(coeficientes)
Ejemplo:
x2 – 2x + 3 = 0
roots([1 –2 3])
� Construir un script en Matlab que calcule todas las raíces reales de un polinomio por bisección utilizando búsqueda incremental.
�El método debe:
�Graficar el polinomio y las soluciones.
�Almacenar en un archivo el gráfico obtenido.
�Almacenar en un archivo las soluciones.
�Almacenar en un archivo las iteraciones:
a{k} tiempob{k}x{k}
� Construir un script en Matlab que calcule todas las raíces reales de un polinomio por Newton-Raphsonutilizando división sintética.
�El método debe:
�Graficar el polinomio y las soluciones.
�Almacenar en un archivo el gráfico obtenido.
�Almacenar en un archivo las soluciones.
�Almacenar en un archivo las iteraciones:
tiempoPk x{k}
� Construir un script en Matlab que calcule todas las raíces reales de un polinomio por Laguerre´sutilizando división sintética.
�El método debe:
�Graficar el polinomio y las soluciones.
�Almacenar en un archivo el gráfico obtenido.
�Almacenar en un archivo las soluciones.
�Almacenar en un archivo las iteraciones:
tiempoPk x{k}
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 73
Resumen
� 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 2 – GM – 74
Resumen
� 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 2 – GM – 75
Resumen
� Raíces de un polinomio:
� Laguerre´s.
� División sintética de un polinomio.
� Regla de Descartes.
� roots.