{"id":702,"date":"2019-08-13T13:26:47","date_gmt":"2019-08-13T11:26:47","guid":{"rendered":"http:\/\/www.joanillo.org\/?p=702"},"modified":"2020-10-01T13:27:25","modified_gmt":"2020-10-01T11:27:25","slug":"experimentos-de-verano-modelo-matematico-de-como-decae-la-luz-solar-al-atardecer","status":"publish","type":"post","link":"https:\/\/www.joanillo.org\/?p=702&lang=es","title":{"rendered":"Experimentos de verano: modelo matem\u00e1tico de como decae la luz solar al atardecer"},"content":{"rendered":"<p><a href=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2019\/08\/LDR_capvespre2.png\"><img loading=\"lazy\" src=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2019\/08\/LDR_capvespre2-300x122.png\" alt=\"\" title=\"LDR_capvespre2\" width=\"300\" height=\"122\" class=\"alignright size-medium wp-image-1982\"><\/a>Me est\u00e1 rondando por la cabeza hacer una serie de experimentos captando dades amb sensors y procesando los datos en el ordenador. Espero hablar de ello pronto, hay bastantes ideas chulas que se pueden desarrollar. Aqu\u00ed va una peque\u00f1a muestra. Y una de las t\u00e9cnicas clave para hacer todo esto que quiero hacer es enviar por el protocolo serie los datos de un sensor (arduino) a un programa C++ que se est\u00e1 ejecutando en el ordenador.<\/p>\n<p>En la foto se puede ver c\u00f3mo se recogen los datos del sensor en el ordenador. Los datos se van grabando en un fichero, y se pueden procesar a posteriori. En este caso tengo un sensor LDR que capta la luz solar, y se trata de ver c\u00f3mo decae la iluminaci\u00f3n a medida que se va haciendo oscuro. \u00bfQu\u00e9 comportamiento tendr\u00e1? El estado inicial es asint\u00f3tico (iluminaci\u00f3n plena), y el estado final tambi\u00e9n (oscuridad). \u00bfQu\u00e9 pasa en medio? Sabemos que a la naturaleza no le gustan los cambios bruscos. Hemos de unir las dos rectas con una curva. Esto nos puede dar una curva sigmoide, en la que habr\u00eda un punto de inflexi\u00f3n de cambio m\u00e1ximo en el decrecimiento de la iluminaci\u00f3n? \u00bfSer\u00e1 cierto este comportamiento, este modelo matem\u00e1tico? Vamos a comprobarlo.<\/p>\n<p>Una vez tenemos el fichero con los datos, los procesaremos con las librer\u00edas cient\u00edficas <strong>numpy<\/strong> y <strong>scipy<\/strong> de Python. Como podemos ver en el c\u00f3digo, se propone una l\u00ednea de m\u00e1ximo ajuste de tipo sigmoide. Y efectivamente obtenemos una buena soluci\u00f3n y un buen ajuste como se puede ver en la gr\u00e1fica. En este caso, la ecuaci\u00f3n obtenida es:<\/p>\n<blockquote><p>y =987.24 * (1 \/ 1 +  exp(-0.07*(x-393.87))) +-8.02<\/p><\/blockquote>\n<p>No hemos de hacer demasiado caso a los datos del eje X, son tan s\u00f3lo puntso. Sencillamente tener en cuenta que la distancia entre puntos son 30 segundos.<\/p>\n<p>Esta es una sencilla y buena demostraci\u00f3n de verano (un divertimento) de que la Naturaleza se describe con funciones matem\u00e1ticas. Las mates son una buena herramienta para describir el comportamiento de la Naturaleza. Y que los fen\u00f3menos exponenciales son inherentes a la F\u00edsica.<\/p>\n<p>Este \u00faltimo a\u00f1o he estado estudiando m\u00e9todos num\u00e9ricos y las librer\u00edas cient\u00edficas de Python, y realmente le veo muchas posibilidades, que quiero ir explorando este curso que comenzar\u00e1 de aqu\u00ed poco.<\/p>\n<blockquote><p>\n# -*- coding: utf-8 -*-<br \/>\n#cel\u00b7la LDR que ha gravat com decau la llum al capvespre.<br \/>\n#La funci\u00f3 que s&#8217;ajusta a les dades \u00e9s una sigmoide<\/p>\n<p>import numpy as np<br \/>\nimport matplotlib.pyplot as plt<br \/>\nfrom scipy.optimize import curve_fit<\/p>\n<p>def sigmoid(x, a, b, c, d):<br \/>\ny = c \/ (1 + np.exp(-b*(x-a))) + d<br \/>\nreturn y<\/p>\n<p>y = np.loadtxt(&#8216;..\/dades\/LDR_capvespre.txt&#8217;)<br \/>\nx = np.linspace(1,len(y),len(y))<br \/>\n#print (x)<br \/>\n#print (len(x))<\/p>\n<p>popt, pcov = curve_fit(sigmoid, x, y, p0=[350, 0.001,1000, 2]) #\u00e9s necessari ficar uns bons par\u00e0metres inicials<\/p>\n<p>print popt<br \/>\nprint (&#8216;y =c * (1 \/ 1 +  exp(-b*(x-a))) +d &#8216;)<br \/>\nprint (&#8216;y =&#8217; + &#8216;%.2f&#8217;%popt[2] + &#8216; * (1 \/ 1 +  exp(&#8216; + &#8216;%.2f&#8217;%popt[1]  + &#8216;*(x-&#8216; + &#8216;%.2f&#8217;%popt[0] + &#8216;))) +&#8217; +  &#8216;%.2f&#8217;%popt[3] )<\/p>\n<p>plt.figure()<br \/>\nplt.plot(x, y, &#8216;k&#8217;, label=&#8221;Original Noised Data&#8221;)<br \/>\nplt.plot(x, sigmoid(x, *popt), &#8216;r-&#8216;, label=&#8221;Fitted Curve&#8221;)<\/p>\n<p>plt.legend()<br \/>\nplt.show()<\/p>\n<p># Resultat:<br \/>\n#y =c * (1 \/ 1 +  exp(-b*(x-a))) +d<br \/>\n#y =987.24 * (1 \/ 1 +  exp(-0.07*(x-393.87))) +-8.02<\/p><\/blockquote>\n<ul>\n<li>Funci\u00f3n sigmoide en la wikipedia: <a href=\"https:\/\/es.wikipedia.org\/wiki\/Funci%C3%B3n_sigmoide\">https:\/\/es.wikipedia.org\/wiki\/Funci%C3%B3n_sigmoide<\/a><\/li>\n<li>Sensor LDR en la wikipedia:  <a href=\"https:\/\/ca.wikipedia.org\/wiki\/LDR\">https:\/\/ca.wikipedia.org\/wiki\/LDR<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Me est\u00e1 rondando por la cabeza hacer una serie de experimentos captando dades amb sensors y procesando los datos en el ordenador. Espero hablar de ello pronto, hay bastantes ideas chulas que se pueden desarrollar. Aqu\u00ed va una peque\u00f1a muestra. Y una de las t\u00e9cnicas clave para hacer todo esto que quiero hacer es enviar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[292,308,160,324,320,192],"tags":[],"_links":{"self":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/702"}],"collection":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=702"}],"version-history":[{"count":1,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/702\/revisions"}],"predecessor-version":[{"id":703,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/702\/revisions\/703"}],"wp:attachment":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}