Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Optimización de Sistemas
Pablo Suárez Reyero
25 de septiembre de 2022
Introducción
En esta serie de ejercicios se han realizado todos los ejercicios de forma teórica y práctica, esta última
con la ayuda de Matlab.
Al correr el código selAnaliticos(DNI), donde DNI: 06620359, han aparecido los casos que tengo que re-
solver en cada tarea. Para la tarea 1 tengo que resolver los Casos 1 y 2. En el caso de la tarea 2 he tenido
que resolver los Casos 2 y 4. Finalmente, en la tarea 3 solo tengo que resolver el Caso 1 y el Caso 3 que
se muestran en el enunciado de la tarea 2.
En esta serie de ejercicios, todos los valores imaginarios obtenidos son despreciados, pues estamos opti-
mizando con una variable de decisión f : x ∈ R
Tarea 1
Determinar los puntos extremos (mı́nimos, máximos y puntos de inflexión) de las siguientes funciones
dependientes de una única variable de decisión:
Caso 1
df (x)
= 5x4 − 15x2 − 20
dx
d2 f (x)
= 20x3 − 30x
dx2
Una vez obtenidas las dos primitivas de f (x), las dos se igualan a 0. Al igualar la segunda derivada de la
función a 0, se obtienen los máximos ası́ como los mı́nimos de la función. Para dfdx(x)
= 0 se obtiene como
∗
resultado: x ∈ {−2, 2} ∴ Si se introducen estas soluciones en la expresión de la segunda primitiva, podremos
saber si se tratan de máximos , mı́nimos o de puntos de inflexión. Se introducen las soluciones en la segunda
primitiva:
1
max{f (x)} = −100
El método analı́tico, nos devuelve los siguientes valores que hacen 0 la primera derivada de la función;
x∗ = {2, −j, j, 2}. Tal y como se ha mencionado en la introducción de esta práctica, se está optimizando con
una variable de decisión x : x ∈ R, por lo que las soluciones complejas quedan descartandas, ∴ x′∗ ∈ {2, 2}
Como podemos comprobar en el gráfico de arriba, no se consigue ver con claridad el máximo y el mı́nimo
correspondientes a los puntos x′∗ ∈ {2, 2}. Acotando los ejes, se obtiene:
2
Aquı́ ya se puede comprobar la posición de los máximos y los mı́nimos de la función. La parte cóncava
se corresponde con el máximo (x∗ = −2) y la parte convexa se corresponde con un mı́nimo (x∗ = 2)
Para determinar si estos óptimos son globales o locales, depende del rango en el que se miren. Pero aun
teniendo esto en cuenta y ciñéndonos a la teorı́a, los dos óptimos son locales, se han inspeccionado diferentes
rangos y en ningún otro rango hay un cambio de una pendiente positiva y otra negativa y viceversa, esto nos
podrı́a dar a entender que serı́an máximos y mı́nimos globales, simplemente porque no hay otro máximo ni
otro mı́nimo a parte de los que se muestran. Pero esto no es ası́, porque es una función no acotada, lo que
significa que solo tiene óptimos locales.
Si el orden de la derivada es par, se trata de un extremo local; un máximo si f n (xi ) < 0 y un mı́nimo
si f n (xi ) > 0
Teniendo en cuenta esto, entonces nuestros dos optimos serı́an locales, porque el orden de la derivada es
de 2, por lo tanto par.
Caso 2
0′ 75
1
f (x) = 0′ 65 − − 0′ 65 · arctg (2)
1 + x2 x
Es importante notar que la función objetivo en este caso, no es continua 1 . Como se ha visto en teorı́a, para
calcular los máximos y mı́nimos ası́ como los puntos de inflexión, se ha de derivar la función dos veces.
df (x) 3x 13
= +
dx 2
2(x + 1) 2 20x · ( x12 + 1)
2
d2 f (x) 3 13 6x2 13
= − 1 − +
dx2 2(x2 + 1)2 10x3 · ( x2 + 1) (x2 + 1)3 10x5 · ( x12 + 1)2
Una vez obtenidas las dos primitivas de f (x), las dos se igualan a 0. Al igualar la segunda derivada de
la función a 0, se obtienen los máximos ası́ como los mı́nimos de la función. Para dfdx
(x)
= 0 se obtiene
∗ ′ ′
como resultado: x ∈ {−1 7295, −0 5782} ∴ Si se introducen estas soluciones en la expresión de la segunda
primitiva, podremos saber si se tratan de máximos , mı́nimos o de puntos de inflexión. Se introducen las
soluciones en la segunda primitiva:
6(−1′ 7295)2
2
d f (x) f¨(x∗1 ) = 3
2((−1′ 7295)2 +1)2 − 13
1
10(−1′ 7295)3 ·( (−1′ 7295)
− ((−1′ 7295)2 +1)3 + 13
1
10(−1′ 7295)5 ·( (−1′ 7295) 2
2 +1) 2 +1)
= 6(−0′ 5782)2
dx2 x=x∗ f¨(x∗2 ) = 3
− 13
− + 13
2((−0′ 5782)2 +1)2 1
10(−0′ 5782)3 ·( (−0′ 5782)2 +1) ((−0′ 5782)2 +1)3 1
10(−0′ 5782)5 ·( (−0′ 5782)2 +1)
2
f¨(x∗1 ) = −0,0470
f¨(x∗ ) = 0,4203
2
3
max{f (x)} = −0,0470
En el gráfico de arriba podemos ver el máximo y el mı́nimo mencionados antes, pero podemos ver como se
tratan de óptimos locales. Al ver el gráfico podrı́amos pensar que hay un máximo global y un mı́nimo global
que el método analı́tico no ha sabido devolver, pero en realidad la linea vertical que une esos dos óptimos,
analı́ticamente no existe, e ilustra la presencia de un limite, por la izquierda se tiene: lı́mx→0 f (x) = ∞ y por
la derecha se tiene: lı́mx→(x>0) f (x) = 0′ 6. Por lo que teóricamente no se tratan ni de un máximo ni de un
mı́nimo, pero si fuese ası́, el máximo global (el pico más alto en el gráfico) se consigue para un x∗ = −0′ 05
y el mı́nimo global es para x∗ ≈ 0. Estos no aparecen, pues al derivar 2 , se obtiene el siguiente resultado
gráfico, donde solo se aprecian los óptimos analı́ticos mencionados anteriormente:
Caso 3
(Este caso no lo tenia que resolver)
Tarea 2
Determinar los puntos extremos (mı́nimos, máximos y puntos de inflexión) de las siguientes funciones
dependientes de dos variables de decisión.
Como se ha mencionado en la introducción de este informe, en esta tarea he resuelto los Casos 1 y 3
2 f (x) = arctg(x) → f˙(x) = 1
1+x2
al derivar no hay arctn lo que no da lugar a una discontinuidad
4
Figura 4: Representación gráfica de la primera derivada de la función del segundo caso.
Caso 1
(Este caso no lo tenia que resolver)
f (x1 , x2 ) = x31 − 2x1 − x21 + 6x2 + x22 (4)
Caso 2
x∗ = −1 1
4
Ahora se procede con el cálculo de la matriz hessiana:
2 2
∂ f (x) ∂ f (x)
2 2
2∂x1 ∂x1 x2 4 0
∇ f (x) := ∂ f (x) ∂ 2 f (x)
= (7)
0 12
∂x2 x1 ∂x22
Como en la segunda derivada ya no hay ninguna variable de decisión (ni x1 y tampoco x2 ) solamente hay
que enunciar los valores obtenidos tras igualar el gradiente de la función a 0. Obteniendo:
2 ∗ 4 0
∇ f (x ) =
0 12
Como ∇2 f (x∗ ) es definida, entonces se tiene un óptimo local y sabiendo que x∗ = −1 41 con ∇2 f (x∗ )
5
Figura 5: Representación gráfica en 2 dimensiones
Analizando esta gráfica se concluye algo que contradice lo dicho sobre la naturaleza local del óptimo
obtenido, y es que gráficamente se puede notar como se trata de un óptimo global, en este caso, un mı́nimo
global, pues no hay más mı́nimos en la función, esto se ha comprobado muy fácilmente, rotando la función,
representándola en otro rango, etc, etc
Caso 3
(Este caso no lo tenia que resolver)
6
Caso 4
x∗,1 = 0 0
x∗,3 = 0 −8
3
x∗,3 = −4
3 0
x∗,3 = −4 −8
3 3
Ahora solamente hay que sustituir los valores obtenidos tras igualar el gradiente de la función a 0 en el
resultado de la Hessiana, ası́ se podrá caracterizar cada solución, pues serán matrices diagonales y por ello
se podrán ver directamente los eigenvalues que serán los encargados de caracterizar la matriz. Se obtienen:
0 4
∇2 f (x∗,1 ) = ⇒ positiva
8 0
4 0
∇2 f (x∗,2 ) = ⇒ indef inida
0 −8
2 ∗,3 −4 0
∇ f (x ) = ⇒ indef inida
0 8
2 ∗,4 −4 0
∇ f (x ) = ⇒ negativa
0 −8
Esto significa que se tendrán un máximo y un mı́nimo, siendo los dos óptimos de carácter local, además
de 2 puntos sillas, pues hay dos matrices hessianas que son indefinidas.
7
Figura 7: Representación gráfica en 2 dimensiones
En esta representación en 2D, podemos observar los dos punto silla (el de abajo a la derecha y el de
arriba a la izquierda).
8
Tarea 3
Determinar las expresiones genéricas para calcular los parámetros que ajustan la curva a un conjunto de
puntos.
Como se ha mencionado en la introducción de este informe, en esta tarea he resuelto los Casos 1 y 3.
Como ya se ha estudiado en teorı́a, hay una manera práctica, cómoda y sencilla de ajustar funciones, este
método es el método de ajuste por mı́nimos cuadrados. Este método hace uso de la función del error, que
tiene la siguiente forma;
X
er(a, b) = (yi − f (xi ))2 (12)
i∈RN :i=1:N
Caso 1
Sustituyendo:
N
X N
X
er(a, b, c, d) = (yi − (ax3i + bx2i + cxi + d)) ≡2
(ax3i + bx2i + cxi + d − yi )2 (15)
i∈RN :i=1 i∈RN :i=1
Teniendo la expresión final de la función del error para dicha función, procedemos con el cálculo ∇er(a, b, c, d).
Por definición se sabe que;
∂er(a,b,c,d) P
2 · (ax3i + bx2i + cxi + d − yi ) · x3i
∂a N
∂er(a,b,c,d) Pi∈R :i=1:N
Pi∈RN :i=1:N 2 · (ax3i + bx2i + cxi + d − yi ) · x2i
∂b
∇er(a, b, c, d) := ∂er(a,b,c,d) = (16)
3 2
N :i=1:N 2 · (axi + bxi + cxi + d − yi ) · xi
i∈R
∂c
3 2
P
i∈RN :i=1:N 2 · (axi + bxi + cxi + d − yi ) · 1
∂er(a,b,c,d)
∂d
Por comodidad los 2’s al principio de cada sumatorio se retiran. A continuación se aı́slan los parámetros
{a, b, c, d}
6
+ Pi=1:N (x5i ) · b + Pi=1:N (x4i ) · c + Pi=1:N (x3i ) · d = Pi=1:N yi xi
P P P P P
Pi=1:N (xi5 ) · a
Pi=1:N (xi4 ) · a
+ Pi=1:N (x4i ) · b + Pi=1:N (x3i ) · c + Pi=1:N (x2i ) · d = Pi=1:N yi xi
i=1:N (xi ) · a + Pi=1:N (x3i ) · b + Pi=1:N (x2i ) · c + i=1:N (xi ) · d = Pi=1:N yi xi
3
+ i=1:N (x2i ) · b + i=1:N (xi ) · c
P
i=1:N (xi ) · a +N · d = i=1:N yi
Expresándolo como un producto de matrices, se obtiene la siguiente expresión:
6 5 4 3 3
P P P P P
Pi=1:N xi5 Pi=1:N xi4 Pi=1:N xi3 Pi=1:N xi2 a Pi=1:N yi xi2
Pi=1:N xi4 Pi=1:N xi3 Pi=1:N xi2 Pi=1:N xi · b = Pi=1:N yi xi
i=1:N xi (17)
Pi=1:N xi2 Pi=1:N xi i=1:N xi
c i=1:N yi xi
3
P P
x
i=1:N i x
i=1:N i i=1:N xi N d i=1:N yi
∴ La solución a dichos parámetros tendrá la siguiente forma:
P 6
P 5
P 4
P 3
−1 P 3
a Pi=1:N x5i Pi=1:N xi4 Pi=1:N xi3 Pi=1:N xi2 Pi=1:N yi xi2
b
= Pi=1:N xi4 Pi=1:N xi3 Pi=1:N xi2 Pi=1:N xi · Pi=1:N yi xi
c i=1:N xi (18)
Pi=1:N xi2 Pi=1:N xi i=1:N xi
i=1:N yi xi
3
P P
d i=1:N xi i=1:N xi i=1:N xi N i=1:N yi
9
Caso 2
(Este caso no lo tenia que resolver)
2
f (x) = ae−bx (19)
Caso 3
≡
" PN PN #
2
i∈R N :i=1 a · cos(bxi ) = i∈RN :i=1 yi · cos(bxi )
PN 2
P N
i∈RN :i=1 −xi · a · cos(bxi )sin(bxi ) = i∈RN :i=1 −yi · −xi · a · sin(bxi )
Me he quedado atascado en este punto. No se puede separar por completo las variables a y b para de-
jarlas como en el primer caso en forma de ecuación matricial. No hace falta hacer todo el desarrollo para
darse cuenta de esto, pero desarrollar expresiones ayuda a refrescar algunos conceptos matemáticos y ayuda
a recordar expresiones o identidaddes trigonométricas.
Lo primero que se me ocurrió tras llegar a ese punto es realizar el arcosin(...) en los dos lados de la igualdad
para quitar los sin’s(...) para separar las variables, pero no se puede, porque en la parte de abajo de la
matriz en la sección izquierda de la igualdad, está el término; −xi · a2 · cos(bxi )sin(bxi ) y al realizar el arco-
sin(...) no resolverı́a el problema porque el sin de dentro no se esfumarı́a, ya que va multiplicado al término
−xi · a2 · cos(bxi )
Una posible solución serı́a utilizar logaritmos para convertir los productos en sumas, pero esto no arre-
gları́a nada ya que serı́a una aproximación de la función inicial y afectarı́a a todo el resultado. Además a
nivel práctico, al añadirle una función al resultado obtenido habrı́a conflictos.
Comprobar si las funciones expresiones genéricas obtenidas pueden servir para realizar el
ajuste a unos datos que genere el alumno con las funciones anteriores, unos parámetros dados
y un ruido aditivo gaussiano.
Lo que se ha hecho en este apartado, es implementar la expresión analı́tica correspondiente al primer caso
de ajuste de una recta por el método de mı́nimos cuadrados. En el tercer caso, no se puede implementar,
pues no se pueden aislar las variables a y b.
10
Volviendo al primer caso, obtuvimos la siguiente expresión matricial:
P 6
P 5
P 4
P 3
−1 P 3
a Pi=1:N xi5 Pi=1:N xi4 Pi=1:N xi3 Pi=1:N xi2 Pi=1:N yi xi2
b
= Pi=1:N xi4 Pi=1:N xi3 Pi=1:N xi2 Pi=1:N xi · Pi=1:N yi xi
c i=1:N xi
Pi=1:N xi2 Pi=1:N xi i=1:N xi
i=1:N yi xi
3
P P
d i=1:N xi i=1:N xi i=1:N xi N i=1:N yi
Para este apartado, se han probado con varios datos recogidos tras representar varias funciones, entre ellas
aquellas que se han resuelto en la primera tarea. Se ha empezado con una función polinómica de orden 3,
yi : xi ∈ RN , pues xi = {0, ..., N }. En yi los parámetros a, b, c, d son constantes con un valor inicial arbitrario,
estas constantes son más tarde calculadas por la expresión de arriba.
yi = ax3i + bx2i + cx + d
Se ha implementado el siguiente código de Matlab:
Tarea 3 Caso 1
clc
clear all
close all
%Caso1Tarea1
N = 20;
%x = 0:1:N;
%fx = x.ˆ3−5*x.ˆ2−20*x+5;
%ploteamos la f u n c i n
figure(1)
plot(xi,yi,'*');hold on;
title('Samples');
xlabel('x');ylabel('f(x)');grid on;
%Dibujo
x = 0:1:N;
yy = a*x.ˆ3+b*x.ˆ2+c*x+d;
figure(2)
plot(xi,yi,'ob',x,yy,'g',x,sol(1)*x.ˆ3+sol(2)*x.ˆ2+sol(3)*x+sol(4),'r')
legend('Datos','Recta original','Recta estimada');
xlabel('x');ylabel('a*x.ˆ3+b*x.ˆ2+c*x+d');grid on
11