Вы находитесь на странице: 1из 75

Aplicaciones Numéricas en

Investigación de Operaciones
5

Prof. Gonzalo Müller


gmullerb@mail.com
Postgrado de Investigación de Operaciones
Facultad de Ingeniería
Universidad Central de Venezuela
Clase Anterior
 Metodología para resolución de un problema
 Algoritmo
 Partes de un algoritmo:
 Entrada
 Proceso
 Salida
 Diagramas Rectangulares Estructurados
Clase Anterior
 Estructuras básicas
 Secuencial.
 Selectiva.
 Sencilla
 Doble

 Repetitiva.
 Hacer Mientras
 Mientras
Clase 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: Solución
A, B, C, D
...

Enfoque 1
Resolución Numérica de un problema

Datos de
problema:
A, B, C, D
...
Solución

Solución
Posible
(Profeta) Enfoque 2
Resolución Numérica de un problema

 Métodos Secuenciales ó Directos.

 Métodos Iterativos.

 Métodos Evolutivos.
Resolución Numérica de un problema

Datos Solución

Métodos
Directos
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

Datos Solución

Métodos
Iterativos
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ón0
k=0

Búsqueda de

nueva solución

Soluciónk
k=k+1

V
k<N N: número de iteraciones

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ón0
k=0

Búsqueda de

nueva solución

Soluciónk
k=k+1

V
k<N N: número de iteraciones

Solución = SoluciónN
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ónk
k=k+1

V k < N &&
Solución no aceptable 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ónk
k=k+1

V k < N &&
Solución no aceptable Solución =
Soluciónk
Resolución Numérica de un problema
 Iteración: representa una transformación de una
solución xk a solución xk+1:

xk xk+1

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:

Iteración 2

x0 x1 xn

Iteración 1 Iteración n

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


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 – 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:
Error relativo. Si el valor es alto
║xk+1 – xk║/║ xk ║ < ε 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 – 19
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 – 20
Algebra clásica

La mayoría de los métodos la utilizan como herramienta


básica

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


Método Tipo Trunca
Sucesión, Sumatoria, Productoria Directo No
 Sucesión:
{X k } = X 1 , X 2 , L = g(k) = g(1), g(2), L

 Sumatoria:N
∑ g(k) = g(1) + g(2) + L + g(N)
k =1

 Productoria:
N

∏ g(k) = g(1) ∗ g(2) ∗L ∗ g(N)


k =1
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 22
 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.


Evaluación de un polinomio

P(x) = ∑akxk

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


Método Tipo Trunca
∑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(x)=an

Pn-1(x) = an-1 + x Pn(x)

Pn-2(x) = an-2 + x Pn-1(x)

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


∑akxk
 Forma factorizada:
 P(x) = P0(x)

Pn(x) = an
Pk–1(x) = ak–1(x) + x Pk(x)

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


∑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)

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


 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
Tradicional:
 x = 0.1 x = 0.111111111111
½ * n (n -1)
 Y comparar: multiplicaciones

 Cantidad de sumas y multiplicaciones.


Factorizada:
 Resultados.
n multiplicaciones
Evaluación de la derivada de un polinomio

P′(x)
P(x) = ∑akxk

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


Método Tipo Trunca
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 – 34


P′(x) en Matlab
 polyder: Calcula la derivada de un polinomio.

polyder(coeficientes)

Ejemplo:
(x2 – 2x + 3)′

polyder([1 –2 3])

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


 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)
 Coeficientes
 P′(x)
x
 P″(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.

 P(x)
 Coeficientes
 P′(x)
x
 P″(x)

Utilizando la función de Matlab polyder y polyval.


 Construir una función en Matlab que calcule la
derivada de un polinomio dado el vector de
coeficientes del polinomio.

 Coeficientes  Coeficientes

 Sin utilizar la función de Matlab polyder.


Raíces de una ecuación cuadrática

a x2 + b x +c = 0

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


Método Tipo Trunca
Discriminante Directo No

a x2 + b x +c = 0

− b ± b 2 − 4ac
x=
2a

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


 Construir una función en Matlab que obtenga las
raíces de una ecuación cuadrática.

 Coeficientes  Raices
(Vector) (Vector)

 Sin utilizar las funciones de Matlab para hallar


raíces.
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

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


Método Tipo Trunca
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

N=ln((b – a)/ε)/ln(2)
 Es el método más confiable.
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 43
Bisección
 Dato inicial: a{0}, b{0}
x{0} = (a{0} + b{0})/2
 Esquema iterativo:
signo(f(a{k})) ==
signo(f(x{k}))
V F

a{k+1} = x{k} a{k+1} = a{k}

b{k+1} = b{k} b{k+1} = x{k}

f(a{k}) = 0,
x{k+1} = (a{k+1} + b{k+1})/2 f(b{k}) = 0 ó
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 44
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.
 f(x)
 Raíz
[a b]
Matriz proceso
e

Debe retornar:
f(x) = x 2 − 1
 raíz x2
f(x) = e − 10sen(x)
 matriz del proceso:
x{k} f(x{k}) a{k} b{k}
Método Tipo Trunca
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 – 46


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 – 47


Secante

Pros Contras

Fácil de implementar Requiere 2 puntos iniciales


 No requiere la derivada de de estimación
la función.
Más estable que Newton-
Raphson

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


 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}

f(x) = x 2 − 1
x2
f(x) = e − 10sen(x)
Método Tipo Trunca
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 – 50


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 – 51


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 la derivada de la
Requiere 1 puntos inicial de función.
estimación La función debe ser
Más rápido derivable
Puede divergir
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 52
Newton-Raphson
 Divergencia del método

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


 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:

x{k} f(x{k}) x{k-1}

f(x) = x 2 − 1
x2
f(x) = e − 10sen(x)
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.

x
a b

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


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.
δ

x
a b
 Si el intervalo es grande que la separación de las
raíces se perderán algunas.
δ

x
a b
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 56
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).

x
a b

 Raíces dobles no será detectadas.

x
a b

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


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 – 58


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 – 59
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

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


Método Tipo Trunca
Laguerre´s Iterativo No
 Dato inicial:
x{0}
 Esquema iterativo:
{k +1} {k} n
x =x −
U(x{k} )

{k}
 {k}
U + (x )
{k}
U + (x ) > U − (x ) {k}

U(x ) =  {k} {k} {k}


U − (x ) U − (x ) > U + (x )
{k}
U ± (x ) = Q(x ) ± {k}
(n − 1)[nW(x {k}
) − Q (x ) 2 {k}
]
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 61
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 – 62


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 = an
bk–1 = rbk + ak
r: raíz
Aplicaciones Numéricas en Investigación de Operaciones – Prof. Gonzalo Müller – Clase 2 – GM – 63
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 – 64


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 – 65
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 – 66


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

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


 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
∑akxk = 0 en Matlab
 roots: Determina las raíces de un polinomio.

roots(coeficientes)

Ejemplo:
x2 – 2x + 3 = 0

roots([1 –2 3])

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


 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:
x{k} a{k} b{k} tiempo
 Construir un script en Matlab que calcule todas las
raíces reales de un polinomio por Newton-Raphson
utilizando 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:
x{k} Pk tiempo
 Construir un script en Matlab que calcule todas las
raíces reales de un polinomio por Laguerre´s
utilizando 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:
x{k} Pk tiempo
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 – 73
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 – 74
Resumen
 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 2 – GM – 75

Вам также может понравиться