04 de Abril de 2018
Postgrado de Investigación de Operaciones
Facultad de Ingeniería
Universidad Central de Venezuela
OPTIMIZACIÓN
NO LINEAL
UNIDIMENSIONAL
Puntos a tratar
1. Introducción
2. Teoremas de interés
3. Método de bisección
Los métodos para obtener la solución de un
PPNL se basan en
obtener una sucesión de
puntos
tales que su límite sea una solución
óptima del problema que se considera. Para
asegurar la convergencia debe suponerse que
el PPNL es un problema convexo diferenciable.
Sin embargo, estos algoritmos se aplican aún
cuando no se satisfacen estas condiciones.
Considere el problema:
Minimizar
donde
y
es una función
diferenciable para cada
( )
=
Z
f x
:
→
f R
R
∈
x
R
Introducción
∈
x
R
Los métodos se dividen en dos categorías:
1. Los que usan información sobre las
derivadas. Se basan en aplicar métodos
numéricos.
2. Los que sólo usan evaluaciones de la
función
objetivo.
Utilizan,
entre
otros
métodos, fórmulas de interpolación para
estimar iterativamente el mínimo de un
problema unidimensional.
Puntos a tratar
1. Introducción
2. Teoremas de interés
3. Método de bisección
Sea
f
definida en un intervalo
abierto I, y suponga que f tiene un
máximo relativo o un mínimo relativo
en un punto c interior a I. Si la
derivada
existe, es
.
Teorema usando la primera derivada
Suponga f continua en un intervalo cerrado
[a,b] y además que existe la derivada
en
todo
punto
del
intervalo
abierto
(a,b),
excepto posiblemente en un punto c.
a. Si
es positiva para todo
y
negativa para todo
, f tiene un
máximo relativo en c
b. Si
es negativa para todo
y
positiva para todo
, f tiene un
mínimo relativo en c
Teorema usando la primera derivada
f '
f '(x)
f '(x)
x
<
c
x
<
c
x
>
c
x
>
c
Sea c un punto crítico de f en un intervalo
abierto (a,b); esto es, suponga que
y
.
Suponga también que existe la segunda
derivada
en (a,b). Se tiene entonces:
a) Si
es negativa en (a,b), f tiene un
máximo relativo en c
b) Si
es positiva en (a,b), f tiene un
mínimo relativo en c
Teorema usando la segunda derivada
f '(c)
=
0
a
< <
c
b
f ''
f ''
f ''
Ejemplo numérico 1
3
1
2
2
f(x)
=
x
−
x
2
1
3
f '(x)
0
3x
x
0
x(3x 1)
0
x
0, x
=
⇒
− =
⇒
−
=
⇒
=
=
1
3
f ''(x)
6x 1
f ''(0)
1
0,
f ''( )
1
0
=
−
⇒
= − <
= >
Máximo relativo
Mínimo relativo
(0,0)
1
1
3
54
( ,
−
)
Ejemplo numérico 2
2
2 3
f(x)
=
(x
−
2)
3 2 4 x 3 x 2f '(x)
=
0
⇒
−=
0
⇒
x
=
0
f '(0 )
0, f '(0 )
0
f '( 2 )
0, f '( 2 )
0
f '(
2 )
0, f '(
2 )
0
−
+
−
+
−
+
>
<
<
>
−
<
−
>
Máximo relativo
Mínimo relativo
3
(0, 4)
( 2,0) ; (
−
2,0)
Ejemplo numérico 3
4
f(x)
=
x
3
f '(x)
=
0
⇒
4x
=
0
⇒
x
=
0
2
f ''(x)
=
12x
⇒
f ''(0)
=
0
(0,0) Mínimo relativo
2
f ''( )
ε =
12
ε >
0
Puntos a tratar
1. Introducción
2. Teoremas de interés
3. Método de bisección
1. Sea f cóncava hacia arriba o cóncava
hacia abajo en un intervalo I que contiene
al intervalo [a,b].
2. Si f’ es una función continua sobre el
intervalo [a,b] y si
entonces f
debe tener un mínimo local (f es cóncava
hacia arriba) o un máximo local (f es
cóncava hacia abajo) en (a,b).
Método de bisección
3. El método de bisección explota esta idea
asi: si
entonces se calcula el
iterado como
y se investiga si
se cumple
. Si lo es, entonces
f’ tiene un cero en [a,c].
Método de bisección
f '(a)f '(b)
<
0,
1 2c
=
(a
+
b)
f '(a)f '(c)
<
0
Sea f’ continua en [a,b] y suponga
que
, el método de
bisección
genera
una
sucesión
denotada
que se aproxima a r
con la propiedad
Método de bisección
f '(a).f '(b)
<
0
n
{c }
n
n 1
b
a
c
r
;
n
0
2
+
−
− ≤
≥
Método de bisección
← ← ← = = ← inicio leer (a,b,iteraciones,cotaerror,cotaimagen) u f'(a) v f'(b) e b-a escribir (a,b,u,v)si signo(u) signo(v) entonces stop
desde k 1 hasta iteraciones hacer
e ← + ← < < ≠ e 2 c a e w f'(c) escribir (k,a,u,c,w,b,v,e)
si e cot aerror o w cot aimagen entonces stop
si signo(w) signo(u) entonces
← ← ← ← b c v w sino a c u w fin_si fin_desde fin
1. El script
bisecgraf.m
realiza el cálculo de
una raíz de una función aplicando el
método de bisección.
2. El archivo
bisecgraf.m
es una función en
MATLAB. Para ejecutar el algoritmo escriba
en el ambiente MATLAB:
bisecgraf('biseccion',2,6,0,7,100)
3. El código de la función
biseccion
se
transcribe a continuación. Llame al script
como
biseccion.m
. La función
bisección
es a quien se le calcula la raíz.
function y = biseccion(x)
y = (1-x.*cos(x)).*x;
Método de bisección
-40 -30 -20 -10 0 10 20 f( x ) Método de bisección x=a x=c 1 3 2 Solucion finalOrden y tasa de convergencia
En el método de bisección se
sabe que
Por otro lado
n
n
n 1
n 1
n 1
n 1
(b
a )
1
1
e
c
r
(b
a )
2
2
2
∗
+
+
+
+
−
=
−
≤
−
=
n
n
n
n
1
e
c
r
(b
a )
2
∗
=
−
≤
−
Orden y tasa de convergencia
Por lo tanto
El método de bisección converge
linealmente
a
con
tasa
de
convergencia igual a ½.
n 1
n
1
e
e
2
+
≈
r
∗
Puntos a tratar
1. Introducción
2. Teoremas de interés
3. Método de bisección
Como el método de Bisección converge muy
lentamente, se intentó diseñar un método que
converja más rápidamente pero con la misma
propiedad
que
el
método
de
Bisección:
asegurar la convergencia encerrando la raíz
en cada paso.
Como antes, se supone que
y se
aproxima el gráfico de f por una recta que
pase por los puntos
y
y la raíz
de esta recta “c” será una aproximación a la
raíz r de f’(x).
Método de falsa posición
f '(a).f '(b)
<
0
(a, f '(a))
(b, f '(b))
Se
descarta
uno
de
los
extremos
y
se
reemplaza por
c
para obtener un nuevo
intervalo que contenga a
r
y se repite el
proceso. La ecuación de la recta será
Método de falsa posición
f '(b)
f '(a)
g(x)
f '(b)
(x
b)
b
a
−
=
+
−
−
Si se llama c a la raíz de esta recta, entonces
se tiene
así que
por lo tanto
Método de falsa posición
g(c)
=
0,
f '(b)
f '(a)
f '(b) (c
b)
0
b
a
−
+
−
=
−
b
a
c
b
f '(b)
f '(b)
f '(a)
−
= −
−
Método de falsa posición
← ← = = ← − − inicio leer (a,b,iteraciones,cotaimagen,cotalongitud) u f'(a) v f'(b) escribir (u,v)si signo(u) signo(v) entonces stop
desde k 1 hasta iteraciones hacer c b v (b
[
a)( −]
← < − < ≠ ← v u) w f(c) escribir (k,a,u,c,w,b,v)si w cot aimagen o b a cotalongitud entonces stop si signo(w) signo(u) entonces
b c ← ← ← v w sino a c u w fin_si fin_desde fin