Este método es el método básico que consiste en analizar la pendiente de la función con la derivada
1️⃣
Hacer la derivada de la función
f′(x)
2️⃣
Igualar la derivada a 0 para hallar los puntos candidatos a máximos o mínimos
f′(x)=0x1=m,x2=n,x3=t
3️⃣
Analizar si el punto candidato es un máximo o un mínimo
Opción 1: Observar la pendiente de los puntos a la izq y dch del punto candidato para determinar si el un máximo o mínimo. Si la pendiente del punto a la izq y el de a la dch es + y - respectivamente, es un maximo, si es al reves, es un mínimo. Si la pendiente es del mismo signo, no es ni un máximo ni un mínimo
f′(m−0.00001)=+k1,f′(m+0.00001)=−k2
Hacer lo mismo para los puntos n y t
💡
Si el resto de puntos candidatos están separados, podemos cojer un número próximo al candidato sin necesidad de ser tan preciso
Opción 2: Calcular la 2º derivada y sustituir el punto candidato en esta. Si el resultado es + será un mínimo, si el resultado es - será un máximo
f′′(m)=−k1
Hacer lo mismo para los puntos n y t
4️⃣
De los puntos candidatos, que sean máximo o mínimos, dependiendo de lo que estemos buscando, los sustituiremos en la función original para hallar el que maxímiza o minimiza el resultado de esta
max{f(m),f(t)}
Suponiendo que como n será un mínimo no hace falta cancularlo
💡
Si esta derivada da 0, repetir con la f′′′
Método de Newton
💡
El método de Newton es útil para cuando el método analítico es imposible o muy dificil
ℹ️
El método de Newton es un método iterativo que intenta dibujar una parábola que se aproxima mucha a la función para un púnto concreto.
💡
El método de newton se hace para una funciónla cual es posible calcular su segunda derivada
💡
Pasos para resolver un ONL por el método de Newton
2️⃣
Datos
ϵ → Margen de error
x0 → Valor de x inicial
1️⃣
Seleccionamos un punto inicial x0 y una tolerancia ϵ>0
2️⃣
Iteramos mientras que ∣f′(xk)∣>ϵ
Columnas de tabla de iteraciones
k → Número de Iteración
xk → Valor de x resultante de la operación de la siguiente función, siendo xk el valor de la fila de arriba para esa columna. Siendo xk+1 el valor de la fila actual
xk+1=xk−f′′(xk)f′(xk)
f′(xk) → Valor de x en la primera derivada
f′′(xk) → Valor de x en la segunda derivada
k
xk
f′(xk)
f′′(xk)
0
Dato de valor inicial
Sustituimos xk de esta fila en la primera derivada
Sustituimos xk de esta fila en la segunda derivada
1
Aplicamos la fórmula de xk+1 con el valor de arriba
Sustituimos xk de esta fila en la primera derivada
Sustituimos xk de esta fila en la segunda derivada
2
Aplicamos la fórmula de xk+1 con el valor de arriba
Sustituimos xk de esta fila en la primera derivada. Comprobamos si debemos seguir iterando
Sustituimos xk de esta fila en la segunda derivada
…
…
…
…
3️⃣
Conclusiones
Cuando paremos de iterar, tendremos que hayar los maximizadores o minimizadores, y los máximos y mínimos.
💡
Realmente solo hace falta calculas los mínimos en los problemas de minimización, e igual para los máximos
Para saber si es maximizador o minimizador y si x∗ será máximo o mínimo
Si f′′(x∗)<0 entonces x∗ es un maximizador
Si f′′(x∗)>0 entonces x∗ es un minimizador
Hallar el min/maximizador
El último valor de la tabla de la columna xk
x∗→xk
Hallar el mínimo/máximo
Sustituimos x∗ en la función original
f(x∗)=m
💡
Este método nos sirve también para problemas de maximización
Vector gradiente y Matriz hessiana
💡
Los conceptos de esta sección sirven para analizar la funciones multidimensionales, osea que tienen varias variables: f(x1,x2)
🔖
Conceptos
Gradiente → El equivalente a la pendiente para las funciones de más de una variable
x → Vector de valores para sustituir en la función multidimensional
Punto de silla → Punto en el cual una variable es un máximizador y la otra es minimizador
ℹ️
Para calcular el gradiente de un punto, podemos aplicar la siguiente fórmula
∇f(x)=(∂x1∂f,∂x2∂f)⊤
Explicación del vector ∇f
El primer elemento (∇f1) es la derivada de f respecto de x1
El segundo elemento (∇f2) es la derivada de f respecto de x2
🔚
El valor del gradiente se halla sustituyendo los valores de x en la función f: f(x)
ℹ️
Matriz hessiana
La matriz hessiana es el siguiente paso después de calcular ∇f . Es el equivalente a calcular la segunda derivada.
El valor de la matriz hessiana se halla sustituyendo los valores de x en la función h: h(x)
🗃️
Definitud de la matriz hessiana
ℹ️
Cuando decimos todos los determinantes de H, nos referimos a los determinantes de de las submatrices de H hasta H en orden creciente desde H11 siendo este el primer determinanteEjemplo
Dada una matriz de orden n siendo en este ejemplo n=3, tendremos que calcular determinantes
H1 = det(1)=1
H2=det(H22)=1⋅5−2⋅4=−3
H3=det(H)=0
Para cuando la matriz es diagonal (analizamos la diagonal principal)
Para que H sea definida positiva
Todos los elementos de la diagonal principal son mayores que cero
Para que H sea semidefinida positiva
Todos los elementos de la diagonal principal son mayores o iguales que cero
Para que H sea definida negativa
Todos los elementos de la diagonal principal son menores que cero
Para que H sea semidefinida negativa
Todos los elementos de la diagonal principal son menores o iguales que cero
Para que H sea indefinida
Resto de casos:
El signo empieza en positivo y hay algún elemento negativo
Para cuando la matriz es simétrica y no diagonal (analizamos los determinantes)
Para que H sea definida positiva
Todos los determinantes son mayores que cero
Para que H sea semidefinida positiva
El signo de todos los determinantes de H es positivo, pero al menos uno es cero (que no sea el primero)
Para que H sea definida negativa
El signo del primer determinante es negativo y el resto alternados en signo
Para que H sea semidefinida negativa
El signo del primer determinante es negativo y el resto alternados en signo o cero
Hallar los puntos óptimos (minimizadores y máximizadores)
🥇
Condiciones de optimalidad de primer orden
🔚 Hallar los puntos estacionarios: ∇f(x)=0
Dado un vector gradiente ∇f(x)=(f′(x1),f′(x2)) entonces para hallar los puntos estacionarios resolveremos el sistema:
{f′(x1)=0f′(x2)=0
Los puntos estacionarios serán la combinación de soluciones para x1 con x2
Ejemplo
Dado un gradiente cuyos elementos son
{4x12(x1−3)=06(x2−5)=0
Las soluciones de x1 son: x1=0 y x1=3
Las soluciones de x2 son: x2=5
Por lo que los puntos estacionarios son
x=(0,5)
x=(3,5)
🥈
Condiciones de optimalidad de segundo orden
🔚 Verificar si los puntos hallados anteriormente son estacionarios
Sustituiremos en H los puntos estacionarios hallados (x)
H(x)>0 → Es un mínimo local
H(x)<0 → Es un máximo local
H(x) indefinida → Es un punto de silla
📖
Se dice que si el punto x∗ pertenenciente a una matriz hessiana…
Si dicha matriz es semidefinida, entonces se entiende que cumple la Condición Necesaria de Optimalidad de segundo Orden (CNO2)
Si dicha matriz es definida, entonces se entiende que cumple la
Condición Suficiente de Optimalidad de segundo Orden (CSO2)
Si dicha matriz es infefinida, entonces la función representa un Punto de silla
Métodos de optimización multidimensional
Método del gradiente
📖
Método del gradiente
💡
Mejoraremos el punto xk siendo que
La dirección de máximo descenso (problemas de minimización)
dk=−∇f(xk)
La dirección de mínimo descenso (problemas de maximización)
dk=+∇f(xk)
Pasos del método del gradiente
0️⃣
Seleccionamos los valores iniciales
Seleccionamos la solución inicial, osea el valor de x(k=0)=sol. Observamos que se utiliza el exponenete 0 para denotar la solución inicial, este exponente se corresponde con el valor inicial de el índice de solución k, y siendo sol dicho valor inicial.
Seleccionamos el índice de solución k, osea el valor que iremos incrementando en cada iteración
Seleccionamos la toreancia, osea el valor umbral ϵ>m, siendo m dicho umbal
1️⃣
Calculamos el gradiente
Calculamos el vector gradiente de la función ∇f(x(k)), para la solución actual. La solución actual es f(x(k)) siendo k el valor del índice de solución de la iteración actual
2️⃣
Comprobamos proximidad a un punto estacionario
Si el valor absoluto de ∇f(x(k)) es menor que el umbral deninfido para la tolerancia, entonces el punto x(k) está suficientemente cerca de un punto estacionario. Esto se calcula con el producto escalar (raiz de la suma de cuadrados, osea, como hacer pitágoras)
3️⃣
Elegimos la dirección del gradiente (valor de x para el siguiente índice de solución)
Si la función objetivos es de maximización
dk=∇f(x(k))
Si la función objetivos es de minimización
dk=−∇f(x(k))
4️⃣
Expresión para calcular el siguiente punto
El siguiente punto se debe calcular con respecto al punto actual más el valor de la dirección (d0) multiplicado por una incognita
⁍
5️⃣
Calcular el nuevo punto
Ahora sustituiremos el nuevo punto en la función inicial f(x) el punto xk+1. Esta operación no dará como resultado una función unidimensional la cual ahora podremos calcular f(xk+1)=0
Despejaremos λ de la expresión anterior y nos dará su valor. Ahora, calcularemos el nuevo punto sustituyendo el valor de lamda en la expresión hallada en el paso anterior(paso 4️⃣) → xk+1(λ)
El resultado será el nuevo punto
6️⃣
Incrementar el índice de solución
Ahora, incrementaremos el valor del índice de solución, k, ahora k=k+1