Autor Tema: Método del gradiente, método de Newton y método quasi-Newton

0 Usuarios y 1 Visitante están viendo este tema.

03 Septiembre, 2024, 05:34 am
Leído 5265 veces

Florruiz

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 154
  • País: ve
  • Karma: +0/-1
Hola compañeros, necesito ayuda con este ejercicio de optimización no lineal, no he encontrado algo que me ayude a resolverlo. Yo no pretendo que me lo resuelvan porque la idea es que yo aprendo, lo que sí necesito es la ayuda para poder realizarlo. Si alguien me puede ir indicando lo que debo hacer, estaré sumamente agradecida por favor, sé que hay personas de mucho nivel en este grupo que pudieran ayudarme.

El ejercicio es el siguiente:

Las pérdidas de energía de un generador de potencia superconductor dependen de la presión y temperatura del fluido de refrigeración según la expresión:

\( \displaystyle f(x_1, x_2) = 100(x_2 −x_1^ 2)^2 + (1− x_1)^2 \) donde \( f(x_1, x_2)  \)son las perdidas, \( x_1 \) la presión, y \( x_2 \) la temperatura. Determina las condiciones de trabajo que minimizan las pérdidas empleando los siguientes métodos:
 (a) Método del gradiente.
 (b) Método de Newton.
 (c) Método quasi-Newton.

03 Septiembre, 2024, 11:01 am
Respuesta #1

robinlambada

  • Moderador Global
  • Mensajes: 4,129
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola.
Hola compañeros, necesito ayuda con este ejercicio de optimización no lineal, no he encontrado algo que me ayude a resolverlo. Yo no pretendo que me lo resuelvan porque la idea es que yo aprendo, lo que sí necesito es la ayuda para poder realizarlo. Si alguien me puede ir indicando lo que debo hacer, estaré sumamente agradecida por favor, sé que hay personas de mucho nivel en este grupo que pudieran ayudarme.

El ejercicio es el siguiente:

Las pérdidas de energía de un generador de potencia superconductor dependen de la presión y temperatura del fluido de refrigeración según la expresión:

\( \displaystyle f(x_1, x_2) = 100(x_2 −x_1^ 2)^2 + (1− x_1)^2 \) donde \( f(x_1, x_2)  \)son las perdidas, \( x_1 \) la presión, y \( x_2 \) la temperatura. Determina las condiciones de trabajo que minimizan las pérdidas empleando los siguientes métodos:
 (a) Método del gradiente.
 (b) Método de Newton.
 (c) Método quasi-Newton.


El método del gradiente es muy sencillo. Consiste en empezar dando un valor arbitrario a \( (x_1,x_2) \) a partir de ahora por comodidad llamare \( \vec{x}=(x_1=x,x_2=y) \) y aplicar un algoritmo iterativo.

Como el maximo crecimiento de la función viene en dirección del gradiente, el maximo decrecimiento ( que es lo que buscamos para el mínimo) viene en sentido opuesto, es decir en dirección \( -\nabla f \).

Tienes que aplicar reiteradamente este algoritmo \( \vec{x}_1=\vec{x}_0-\epsilon \nabla f \) (*)

Con \( \vec{x}_0=(x_0,y_0) \) un valor arbitrario y \( 0<\epsilon<1 \) y con (*) calculas \( \vec{x}_1 \) y asi sucesivamente.

Si te fijas un poco en la  expresión de \( f(x,y) \) , ves que es suma de dos cuadrados  \( 100(y −x^ 2)^2 \)  y  \( (1− x)^2 \)

Esto garantiza que \( f(x,y)\geq{}0\,\, \forall{(x,y)}\in{\mathbb{R}} \) , el mínimo es \( f(x,y)=0\Leftrightarrow{}(y −x^ 2)^2=(1− x)^2=0 \)

Por tanto, el mínimo esta en \( (1,1) \)

Puedes empezar por ejemplo con \( \vec{x}_0=(-1,1) \) y con \( \epsilon = \displaystyle\frac{1}{2} \), solo necesitas una iteración, que no es lo normal, si pones valores menores , necesitas más iteraciones , pero es más seguro, pues si pone un \( \epsilon \) grande* puede que te saltes el mínimo.

Mira este enlace:
Método del gradiente descendente

Saludos.
Envejecer es como escalar una gran montaña: mientras se sube las fuerzas disminuyen, pero la mirada es más libre, la vista más amplia y serena.

La verdadera juventud una vez alcanzada, nunca se pierde.

03 Septiembre, 2024, 11:38 am
Respuesta #2

AlbertR

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 128
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Nota, por si sirve de ayuda adicional, que este ejercicio admite solución algebraica completa sin necesidad de usar métodos numéricos. Hay que minimizar

\( f(x_1,x_2)=100(x_2-x_1^2)^2+(1-x_1)^2 \)

Calculamos las dos derivadas parciales:

\( f'_{x_1}(x_1, x_2)=400x_1^3-400x_1 x_2+2x_1-2 \)

\( f'_{x_2}(x_1, x_2)=-200x_1^2+200x_2 \)

Hay que resolver por métodos algebraicos o por métodos numéricos, el sistema de 2 ecuaciones con 2 incógnitas:

\( 400x_1^3-400x_1 x_2+2x_1-2=0 \)

\( -200x_1^2+200x_2=0 \)

Para resolver algebraicamente, primero vemos que de la segunda ecuación \( f'_{x_2}=0 \) obtenemos \( x_2=x_1^2 \)

Sustituyendo en la primera ecuación \( f'_{x_1}=0 \) y operando obtenemos \( x_1=1 \) lo que significa que \( x_2=1 \)

El punto crítico en el que ambas derivadas se anulan es el punto (1, 1)

Hacemos las derivadas segundas

\( f''_{x_1 x_1}(x_1, x_2)=1200x_1^2-400x_2+2 \)

\( f''_{x_1 x_2}(x_1, x_2)=-400x_1 \)

\( f''_{x_2 x_2}(x_1, x_2)=200 \)

Comprobamos que se cumple que \( f''_{x_2 x_1}=-400x_1=f''_{x_1 x_2} \)

Sustituimos el punto crítico:

\( A=f''_{x_1 x_1}(1, 1)=802 \)

\( B=f''_{x_1 x_2}(1, 1)=-400 \)

\( C=f''_{x_2 x_2}(1, 1)=200 \)

Calculamos el Hessiano:

\( H=A C -B^2=400 \)

Como hemos obtenido H>0 y A>0 eso significa que el punto crítico (1, 1) es un mínimo local de la función.

Saludos.

08 Septiembre, 2024, 01:28 pm
Respuesta #3

Florruiz

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 154
  • País: ve
  • Karma: +0/-1
Amigos muchas gracias por responder, entonces ¿esto quiere decir que las condiciones en las que se minimizan las pérdidas es con una presión y temperatura de \( (1,1) \)? Por el método del gradiente? En el caso de los otros métodos que piden aplicar, ¿los resultados deben ser los mismos? ¿Variando en el criterio de convergencia? ¿Me pueden explicar por favor?

09 Septiembre, 2024, 12:12 pm
Respuesta #4

AlbertR

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 128
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino

...se minimizan las pérdidas es con una presión y temperatura de \( (1,1) \)? Por el método del gradiente?...

Para hallar el mínimo de la función que planteas

\( f(x_1, x_2)=100(x_2-x_1^2)^2+(1-x_1)^2 \)

Yo he usado el método que se usa siempre par calcular máximos y mínimos locales de una función: buscar los "puntos candidatos" en los que las derivadas son cero. Y eso es lo que he hecho arriba: hacer las 2 derivadas parciales de la función e igualas a cero. Se obtiene que los puntos candidatos a extremos locales de la función son los que cumplen el sistema de 2 ecuaciones con 2 incógnitas:

\( 400x_1^3-400x_1 x_2+2x_1-2=0 \)

\( -200x_1^2+200x_2=0 \)

Ahora tenemos que resolver el sistema de ecuaciones y eso lo podemos hacer:

1. Algebraicamente, como lo he hecho yo

2. Mediante métodos numéricos, como por ejemplo

-El método de Newton-Raphson
-El método de cuasi-Newton

Observa que estos 2 últimos métodos, son métodos para resolver numéricamente un sistema de ecuaciones, no son "el método de minimizar" nada


...Por el método del gradiente? En el caso de los otros métodos que piden aplicar, ¿los resultados deben ser los mismos?...

Algebraicamente hemos demostrado que la solución del sistema de ecuaciones es el punto \( (x_1, x_2)=(1, 1) \). Si solucionas el sistema mediante cualquiera de los métodos numéricos citados, si se hace bien, naturalmente que la solución que se obtiene es la misma \( (x_1, x_2)=(1, 1) \).

Después de haber obtenido que la solución al sistema de ecuaciones es el punto \( (x_1, x_2)=(1, 1) \) (por cualquiera de los método señalados) queda la tarea de determinar si ese punto es un máximo, un mínimo o una inflexión. Y para eso se utiliza el determinante Hessiano, que se obtiene de las derivadas segundas, como hemos en el post de más arriba.

Además, por lo que te ha explicado arriba @robinlambada, hay un método numérico alternativo para calcular un mínimo, que se llama Método del Gradiente Descendiente

Saludos.

28 Septiembre, 2024, 06:11 pm
Respuesta #5

Florruiz

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 154
  • País: ve
  • Karma: +0/-1
Amigos vuelvo a consultar porque sigo sin entender, realmente el método de Newton se puede utilizar para encontrar el mínimo de esta función? Necesito ayuda por favor, no entiendo.

29 Septiembre, 2024, 08:12 am
Respuesta #6

robinlambada

  • Moderador Global
  • Mensajes: 4,129
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Amigos vuelvo a consultar porque sigo sin entender, realmente el método de Newton se puede utilizar para encontrar el mínimo de esta función? Necesito ayuda por favor, no entiendo.
Mira este enlace, a mi juicio lo explica muy claro y estate atento hasta el final, pues pone un ejemplo practico de calcular un mínimo para una función concreta.

Método de Newton Para funciones de dos variables:

Ejemplo del método de Newton


P.D.: con el primer enlace te salta al segundo al final, pero por si no lo hace el primer enlace es un resumen más o menos teórico y el segundo es un ejemplo.

Saludos.
Envejecer es como escalar una gran montaña: mientras se sube las fuerzas disminuyen, pero la mirada es más libre, la vista más amplia y serena.

La verdadera juventud una vez alcanzada, nunca se pierde.

11 Noviembre, 2024, 03:52 am
Respuesta #7

Florruiz

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 154
  • País: ve
  • Karma: +0/-1
Hola, vuelvo después de un tiempo a consultar nuevamente acerca de este ejercicio, ¿ustedes creen que se pueda resolver este ejercicio por los métodos antes mencionados en python? Si es posible, pueden ayudarme por favor?🙏 Agradezco cada idea que puedan aportarme. Saludos a todos los miembros de este maravilloso grupo 🙂

11 Noviembre, 2024, 09:26 pm
Respuesta #8

robinlambada

  • Moderador Global
  • Mensajes: 4,129
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola, vuelvo después de un tiempo a consultar nuevamente acerca de este ejercicio, ¿ustedes creen que se pueda resolver este ejercicio por los métodos antes mencionados en python? Si es posible, pueden ayudarme por favor?🙏 Agradezco cada idea que puedan aportarme. Saludos a todos los miembros de este maravilloso grupo 🙂

Supongo que se puede resolver usando python, pero es solo una suposición, pues no conozco python, espera a ver que te dicen otros foreros.
Envejecer es como escalar una gran montaña: mientras se sube las fuerzas disminuyen, pero la mirada es más libre, la vista más amplia y serena.

La verdadera juventud una vez alcanzada, nunca se pierde.

11 Noviembre, 2024, 11:07 pm
Respuesta #9

Florruiz

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 154
  • País: ve
  • Karma: +0/-1
He realizado el ejercicio en python, me gustaría sus opiniónes acerca de los resultados obtenidos, les adjunto el documento que he transformado a PDF.