Beruflich Dokumente
Kultur Dokumente
Ejercicio 1:
Considere (1 , 2 ) = 12 + 22 + 1 2 1 2
a) Comenzando en el punto 0 = [1 0] calcule resultante de 2 pasos de
Steepest Decent (bsqueda de lnea exacta).
b) Comenzando en el punto 0 = [2 ] calcule el resultante de un paso
del mtodo de newton.
c) Si el punto inicial es tal que ||0 || = 10, calcule el numero de
iteraciones de Steepest Decent que grantiza 0.001 (Ayuda:
La desigualdad de Rayleigh establece que para > 0 y cualquier vector
, 2 2 2 ).
Desarrollo:
a)
21 + 2 1
1
]
(0 ) = [ ]
22 + 1 1
0
= arg min ( ( ))
(1 , 2 ) = [
1
1
1
( ( )) (( )) = 0 = ([ ] [ ]) ( [ ])
0
0
0
1
1
1
([
]) ( [ ]) = [1 2 ] ([ ]) = 1 2 = 0
0
0
0
1
=
2
El siguiente paso est dado por +1 = + (( ))
1
1 1
1
+1 = [ ] + [ ] = [2]
0
2 0
0
Ahora segunda iteracin:
0
(+1 ) = [ 1]
1
1
0
0
0
1
1
1
1 0
([2] [ 1]) ( [ 1]) = ([ 2 ]) [1] = [ ] [1] =
1
2
4
2
2 2
0
2
2
2
2
1
=
2
+2
b) 0 = [2 ]
1
1
1 0
= [2] + [1] = [2]
1
2
0
2
4
2 + 2 1
4.97
(1 , 2 ) = [ 1
] (0 ) = [
]
22 + 1 1
6.69
2 1
2 (1 , 2 ) = [
] = ( )
1 2
1.0808
2 1 1 4.97
= ( )1 (0 ) = [
] [
]=[
]
6.69
2.8082
1 2
1
1.0808
+1 = + = [2 ] + [
] = [3]
1
2.8082
3
c)
||0 || = 10
Debemos garantizar:
0.001
Sacamos los valores propios de 2 (1 , 2 ) =
2 1
=[
]
1 2
2 1
0
2
1
[
][
]=[
]
1 2
0
1
2
Y obtenemos 1 = 3 2 = 1
Usando la desigualdad Rayleigh 2 2 2
0 2 0 2 30 2
1 2 2 3 2
Kantorovich nos ayuda para:
=
=3
1 2
+1 2 (
) 2
+1
Suponiendo +1 = y = 0 ahora sabemos tambin que por cada
1
1 2
1
1 2 2 ( ) 0 2
30 2
2
2
12
2
30 2
2
3 102 2
0.001
1
2 log (
) 2 log
2
3 10
28.1603 2
14.0801
Por tanto se debe de llegar en este nmero de iteraciones, pero como no podemos
partir una iteracin, suponemos la cota superior sea .
Ejercicio 2:
Considere el problema de optimizacin sin restricciones:
.
(1 , 2 ) = 1 (412 + 222 + 41 2 + 22 + 1)
a) Cuando estudiamos en clase la convergencia de Steepest Descent, vimos
que una de las motivaciones para hacer el anlisis del caso cuadrtico es
que en una vecindad de un mnimo local de la funcin, sta se puede
aproximar bien por una funcin cuadrtica. Utilice un aproximacin
cuadrtica para calcular la tasa de convergencia de Steepest Descent para
1
puntos cercanos al mnimo local localizado en 1 = , 2 = 1.
2
1 (412
2
22 + 41 2 + 161 +
2 1 (21 + 22 + 3)
13.18
2 ( ) = [
102 + 9)
6.59
]
6.59
6.59
Hallamos los valores propios:
13.18 6.59
0
13.18
[
][
]=[
6.59 6.59
0
6.59
Donde 1 = 17.2656 2 = 2.5190
=
= 6.8541
1 (41 + 42 + 6)
]
4 1
6.59
]
6.59
b) [1 , 2 ] = [0 0]
Aplicamos el mtodo de gradiente descendente
1 (412 + 222 + 41 2 + 81 + 62 + 1)
(1 , 2 ) = [
]
1 (42 + 41 + 2)
= arg min ( ( ))
1
([1 , 2 ]) = [ ]
2
0
1
1
( ( )) (( )) = 0 = ([ ] [ ]) ( [ ])
0
2
2
(20 2
20 + 1) 1
[
] [ ] = (44 20 2 5)
0
(12 + 2)
Por tanto contamos con dos valores posibles de alpha:
1 = 0.1202
2 = 2.0797
El siguiente paso est dado por:
+1 = + 1 (( )) o +1 = + 2 (( ))
0.1202
+1 = [
] 1
0.2404
2.0797
+1 = [
] 2
4.1595
Evaluamos los valores en al funcin y escogemos el paso que menor valor
alcance.
(+1 1 ) = 0.716
(+1 1 ) = 9.895
Que en comparacin de ( ) = 1
El valor que tiene menor valor seria 1 = 0.1202
c) [1 , 2 ] = [0
4]
2 + 41 + 2)
1 (412 + 222 + 41 2 + 161 + 102 + 9) 1 (41 + 42 + 6)
2 (1 , 2 ) [
]
2 1 (21 + 22 + 3)
4 1
2.625 3
( ) = [
]
3
4
2.625 3 1 2.375
= ( )1 ( ) = [
] [
] = [4. 33]
3
4
1
3
4.
33
3
3
4
4
(+1 ) = 2418.2236
( ) = 0.625
Lo cual nos indica que el mtodo de newton para este caso no encuentra un paso
adecuado para la primera iteracin, donde la funcin evaluada en el punto hallado
(+1 ) es grande en comparacin con el punto ( ).
(1 , 2 ) = [
Ejercicio 3:
Considere la funcin cuadrtica en R.
1
(1 , 2 , 3 ) = 1212 + 422 + 32
2
a) Implemente en MATLAB el algoritmo de descenso de gradiente con paso
constante mostrado en el algoritmo 1 para minimizar la funcin .
b) Explore las propiedades de convergencia de este algoritmo. Para esto:
I.
Corra el algoritmo para valores de = 0.02, 0.04, 0.06, 0.12, 0.2 y 0.3
para varios puntos iniciales en cada caso.
II. Grafique como funcin del nmero de iteraciones para varios
casos ilustrados.
III. Determine experimentalmente el mximo valor de para lograr
convergencia al mnimo.
IV. Determine experimentalmente la tasa de convergencia (en el peor
caso) del algoritmo.
V. Explique la razn terica de sus hallazgos.
Desarrollo:
a) Se implement el siguiente algoritmo para el desarrollo de las pruebas
clc;
clear all;
%----------- Gradiente Descendente - punto 3-----------%
Xk=[1;1;1];
syms x1 x2 x3;
VAR=[x1 x2 x3];
fx=16*x1^2+4*x2^2+1/2*x3^2;
gradiente=gradient(fx);
k=1;
a=0.01; %Valores del paso entre iteracin deseado.
Q=[24 0 0;
0 8 0;
0 0 1];
%4 = limite de convergencia con valor de [0,0,x] con 0.25*x3^2
%1 = limite de convergencia con valor de [0,0,x] con x3^2
%2 = limite de convergencia con valor de [0,0,x]
%0.25 = limite de convergencia con valor de [0,x,x]
%0.0625 = limite de convergencia con valor de [x,x,x]
while(true)
gk=double(subs(gradiente,VAR,Xk'));
if (norm(gk)<0.001)
fprintf ('Finalizo en %d iteraciones\n',k);
break;
else
k=k+1;
end
Xaux=Xk;
Xk=Xk-a*gk;
fprintf ('k=%d Xk=[%.4f,%.4f,%.4f] f=%.15f\n',k,Xk(1),Xk(2),Xk(3)
,double(subs(fx,VAR,Xk')));
Norm(k)=Xk'*Q*Xk;
end
tk=1:1:k;
plot(tk,Norm);
hold on;
grid on;
b)
I.
converger
[1 1 1]
0.02
343
3
[1 1 0.001]
0.02
53
[200 2000 0.0001]
0.02
97
2
[1 1041 1000 0.00001]
0.02
108
1
[1 1 1]
0.04
171
3
[1 1 0.001]
0.04
25
[200 2000 0.0001]
0.04
45
2
[1 1026 1000 0.00001]
0.04
43
[1 1 1]
0.06
113
3
[1 1 0.001]
0.06
15
[200 2000 0.0001]
0.06
27
2
[1 1026 1000 0.00001]
0.06
129
1
[1 1 1]
0.12
[0
1 0.001]
0.12
4
3
[0 2000 0.0001]
0.12
7
[0 1000 0.00001]
0.12
6
2
[0
1
1]
0.2
32
3
[0 1 0.001]
0.2
19
2
[0 2000 0.0001]
0.2
34
3
[0 1000 0.00001]
0.2
33
2
[0 1 1]
0.3
[0 0 0.001]
0.3
2
[0 0 0.0001]
0.3
1
3
[0 0 0.00001]
0.3
1
[0 0 1]
2
II.
[ ]
0.833
0.25
[0 ]
2
[0 0 ]
, ,
(Donde es de la forma 12 + 22 + 32 | , , )
Por tanto para una convergencia del algoritmo aplicado a la funcin
V.
Donde
=
= 24
Por tanto
1
= 0.92
+1
Ejercicio 4:
1
13
53
43
19
19
43
53
13
43
19
]
13
53
2340
1764
( ) = [
]
1820
2268
= arg min ( ( )) = 44.1509
21.1509
11
+1 = + = [
]
13
17
,
=
= 0.2453
,
0.2453
1
1
+1 = + = [
]
0
1
2
3
4
([ , , , ])
+
1
2
3
4
2340
1764
( ) = [
]
1820
2268
,
=
= 0.0079
,
4.5731
2.8910
+1 = + = [
]
1.3320
0.8599
142.5052
167.3914
(+1 ) = [
]
119.2031
78.8210
+1 , +1
=
= 0.0040
,
151.9443
160.2758
+1 = +1 + = [
]
111.8617
87.9696
Una vez realizado esto el algoritmo actualiza el valor de y repite el proceso un
total de 4 iteraciones.
Ejercicio 5:
Minimice la funcin del punto anterior usando el mtodo de Quasi Newton con
actualizacin DFP, partiendo del punto 0 = [23 11 13 17].
Desarrollo:
Se desarrolla el algoritmo que nos ayudara a realizar los clculos del mtodo de
Quasi Newton.
clc;
clear all;
syms x1 x2 x3 x4 alp;
X=[x1;x2;x3;x4];
Q=[53 13 19 43;
13 53 43 19;
19 43 53 13;
43 19 13 53];
fx=1/2*(X.'*Q*X);
gradiente=gradient(fx);
Xk=[23;11;13;17];
Sk=eye(4);
for k=0:3
gk=double(subs(gradiente,X.',Xk.'));
dk=-Sk*gk;
a=double(solve(subs(gradiente,X.',(Xk+alp*dk).').'*dk))
Xk1=Xk+a*dk;
gk1=double(subs(gradiente,X.',Xk1.'));
pk=Xk1-Xk;
qk=gk1-gk;
Sk=Sk+((pk*pk.')/(pk.'*qk))-(((Sk*qk)*(qk.'*Sk))/(qk.'*Sk*qk));
Xk=Xk1
end
1
0
= [
0
0
0 0
0 0
]
1 0
0 1
2340
1764
= ( ) = [
]
1820
2268
2340
1764
= = [
]
1820
2268
= arg min ( + ) = 0.0079
+1
0
1
0
0
4.5731
2.8910
= + = [
]
1.3320
0.8599
142.5052
167.3914
(+1 ) = [
]
119.2031
78.8210
18.4269
13.8910
= +1 = [
]
14.3320
17.8599
2197
1931
= (+1 ) ( ) = [
]
1939
2189
0.7203 0.2461 0.2471 0.2787
( )( )
0.2461 0.7834 0.2174 0.2452
= +
=[
]