Ecuaciones no Lineales y Optimización | 4ta Parte

in #steemstem5 years ago


Saludos queridos lectores, bienvenidos nuevamente a mi Blog. En la ciencia, como en la Ingeniería, las ecuaciones no lineales, es un tema de gran interés, ya que las mayoría de los fenómenos físicos o de la vida real, están modelados por ecuaciones no lineales; estos fenómenos naturales por lo general se dicen que están fuera de equilibrio es estos casos y las ecuaciones dependerán de la naturaleza del fenómeno, es decir, discretas o continuas, en cuyos casos se representan por mapeo o ecuaciones diferenciales respectivamente. En esta publicación continuaremos tratando el tema de las Ecuaciones no Lineales y Optimización, en su cuarta entrega. A continuación presentaremos algunas detalles o aspectos importantes, acerca de la minimización de funciones en una variable real, de la misma manera mostraremos los Script y funciones desarrolladas en GNU Octave para tal fin. Espero sigan disfrutando; esta publicación está dirigida a profesionales e investigadores con algunas destrezas en temas de análisis real, cálculo avanzado, entre otros. Al final, les dejare una corta bibliografía, donde podrán consultar algunos tópicos especiales para los interesados. Estoy abierto a sus comentarios y dudas que puedan surgir dentro del tema. Sin perder más tiempo, comencemos.


Titulo

La función fzero es una función de propósito general que se encarga de encontrar raíces de funciones donde no se requiere de conocer sus derivadas. Una llamada simple implica sólo el nombre de la función y un valor inicial. Por ejemplo, si tenemos la siguiente función



Función construida como ejemplo. Elaborado en GNU Octave, por @abdulmath.

entonces tenemos,

La función que le podemos pasar a fzero debe ser una función de una sola variable real. Por lo tanto, fzerono puede ser usada para encontrar un cero de una función como la siguiente



Función construida como ejemplo. Elaborado en GNU Octave, por @abdulmath.

Sin embargo, si a, b, c, y d son variables globales, entonces podemos definir la función de la siguiente manera y luego aplicar la función fzero a



Función construida como ejemplo. Elaborado en GNU Octave, por @abdulmath.


Como una aplicación que involucra a la función fzero. Supongamos que las ubicaciones de los planetas M y T en el momento t vienen dadas por



y

Sin perdida de generalidad podemos suponer que estos planetas son Mercurio y la Tierra. Ambas órbitas son elípticas con un foco, el Sol, situado en el origen de coordenadas, a saber (0, 0). Para un observador ubicado en la Tierra T, Mercurio M está en conjunción si está localizado en el segmento de línea recta Sol-Tierra. Claramente hay una conjunción en t = 0. El objetivo es calcular el tiempo de las siguientes 10 conjunciones y el espacio entre ellas. Para ello, definimos la función siguiente, y notemos que en el momento que ocurre la conjunción, esta función definida abajo es cero.



Función para calcular las conjunciones de Mercurio y la Tierra. Elaborado en GNU Octave, por @abdulmath.

Antes de determinar las próximas 10 conjunciones en el tiempo, trazemos una gráfica de la función SenoMercurioTierra para tener una idea aproximada sobre el espaciamiento de las conjunciones.



Gráfica del Seno del ángulo Mercurio-Sol-Tierra. Elaborado en GNU Octave, por @abdulmath.

A primera vista parece que este hecho ocurre cada 60 días aproximadamente. Sin embargo, SenoMercurioTierra también es cero cuando los dos planetas están alineados con el sol en el centro (en ese caso se dice que Mercurio está en oposición a la Tierra con respecto al Sol). Se deduce entonces que el espacio entre las conjunciones es de aproximadamente 120 días y por lo tanto es razonable usar fzero con el valor inicial 120k para calcular el tiempo de la k-ésima conjunción.

Entonces podemos crear un script que permita la entrada de un factor de espaciado arbitrario y luego calcule las conjunciones



Script para calcular las conjunciones. Elaborado en GNU Octave, por @abdulmath.

entonces obtenemos los siguientes resultados:

Proxímas 10 ConjuncionesEspaciado Estimado = 115.000
ConjunciónTiempoEspaciado
1112.476112.476
2234.682122.206
3348.554113.872
4459.986111.433
5581.491121.505
6697.052115.561
7807.815110.762
8928.020120.206
91045.440117.420
101155.908110.467


Titulo

Supongamos que queremos calcular la separación mínima entre Mercurio y la Tierra durante los próximos 1000 días dado que sus respectivas ubicaciones dadas por las ecuaciones (1) y (2). Por lo tanto, queremos resolver el problema
siguiente:



donde


Este es un ejemplo de un problema de optimización en una dimensión. La función que estamos tratando de optimizar se llama función objetivo. El conjunto S puede ser el conjunto completo de números reales o un subconjunto de los mismos debido a las limitaciones de la variable independiente.

Los problemas de optimización que consideraremos pueden ser en términos de encontrar un máximo o encontrar un mínimo.



Titulo

Si las evaluaciones de la función no son costosas computacionalmente, se puede utilizar la representación gráfica para limitar la búsqueda de un minimizador. Para ello podemos construir un sencillo script interactivo que nos sirva en realizar esa búsqueda, el cual mostramos a continuación:



Script para la búsqueda gráfica. Elaborado en GNU Octave, por @abdulmath.

Apliquemos BusquedaGrafica al problema de minimizar la siguiente función de separación de Mercurio y la Tierra



Función de separación de Mercurio y la Tierra. Elaborado en GNU Octave, por @abdulmath.

El gráfico inicial se muestra en la siguiente figura


Gráfica Inicial obtenida de la función BusquedaGrafica. Elaborado en GNU Octave, por @abdulmath.

Cada vez que BusquedaGrafica muestra un gráfico, solicita que seleccionemos un nuevo intervalo de interés, el que debería ser más pequeño que el inicial. En la figura anterior podemos apreciar que la separación mínima entre Mercurio y la Tierra se encuentra en algún punto del intervalo [900, 950]. Obteniendo la siguiente gráfica


Gráfica con zoom obtenida de la función BusquedaGrafica. Elaborado en GNU Octave, por @abdulmath.

Nótese que nuestro ejemplo tiene muchos mínimos locales en el intervalo de interés [0, 1000], y esto trae a colación un aspecto importante del problema de optimización. En algunos problemas, como el que nos ocupa, se busca un mínimo global. En otros contextos, algunos o todos los mínimos locales son de interés, por lo que se requiere un conocimiento detallado de la función del objetivo para abordar un problema global mínimo, lo que puede deberse a la representación gráfica o a la consideración de diversos aspectos de la aplicación subyacente. La búsqueda de un mínimo local es más fácil de automatizar y es el tema que hablaremos en la próxima publicación.



Queridos amigos y lectores, espero hayan disfrutado de esta segunda entrega de este tan apasionante e interesante tema del cálculo numérico, Ecuaciones no Lineales y Optimización | 4ta Parte apoyado con el entorno GNU Octave, en esta oportunidad pudimos estudiar algunas detalles o aspectos importantes, acerca de la minimización de funciones en una variable real. Espero que el mismo sea de apoyo a ustedes en sus trabajos, o quizás sirva de apoyo para sus hijos, nietos, sobrinos o amigos que quieran aprender un poco más del maravilloso mundo de las matemáticas y la programación. No olviden dejar sus comentarios. Saludos y nos leemos pronto.


Si desean consultar un poco más del tema pueden usar las siguientes referencias:

  • Demidovich, B. P., and I. A. Maron. Computational Mathematics Mir, Moscow, 1976.
  • Björck, Åke. Numerical methods in matrix computations. Vol. 59. Cham: Springer, 2015.
  • Burden, Richard L., and J. Douglas Faires. Numerical analysis. Ninth Edition. Cengage Learning. 2011.

Las imágenes, separadores y las ecuaciones fueron creadas y editadas por @abdulmath usando software libre, GNU Octave, , GIMP e Inkscape.



@SteemSTEM es un proyecto comunitario con el objetivo de promover y apoyar la Ciencia, la Tecnología, la Ingeniería y las Matemáticas en la blockchain Steem. @Stem-espanol es parte de esta comunidad, si desea apoyar el proyecto, puedes contribuir con contenido en español en las áreas de Ciencia, Tecnología, Ingeniería y Matemáticas, utilizando las etiquetas #steemstem y #stem-espanol.



Sort:  

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by abdulmath from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.





This post has been voted on by the SteemSTEM curation team and voting trail in collaboration with @curie.

If you appreciate the work we are doing then consider voting both projects for witness by selecting stem.witness and curie!

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Congratulations @abdulmath! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 3000 upvotes. Your next target is to reach 4000 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Be ready for the next contest!
Trick or Treat - Publish your scariest halloween story and win a new badge

You can upvote this notification to help all Steemit users. Learn why here!

¡Felicitaciones, @abdulmath, por tu contribución en la divulgación del conocimiento matemático, perticularmente por la manera claramente explícita como presenta tus artículos. El tópico relativo a las "Ecuaciones Diferenciales No Lineales" es de gran relevancia en Ingeniería y, por supuesto, en múltiples áreas del saber, por el sin fin de aplicaciones que envuelve. La optimización le imprime un elemento adicional que lo hace mucho más interesante. Sugerencia: Te invito a que veas mi artículo reciente sobre "Confiabilidad", vinculado al estudio que desarrollé sobre un caso real. Mil bendiciones para ti. Amén.

Coin Marketplace

STEEM 0.32
TRX 0.11
JST 0.034
BTC 66384.36
ETH 3272.25
USDT 1.00
SBD 4.27