{"id":700,"date":"2019-08-13T13:25:23","date_gmt":"2019-08-13T11:25:23","guid":{"rendered":"http:\/\/www.joanillo.org\/?p=700"},"modified":"2020-10-01T13:26:43","modified_gmt":"2020-10-01T11:26:43","slug":"experiments-destiu-model-matematic-de-com-decau-la-llum-solar-quan-es-fa-fosc-al-capvespre","status":"publish","type":"post","link":"https:\/\/www.joanillo.org\/?p=700","title":{"rendered":"Experiments d&#8217;estiu: model matem\u00e0tic de com decau la llum solar quan es fa fosc al capvespre"},"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>M&#8217;est\u00e0 rondant el cap fer una s\u00e8rie d&#8217;experiments captant dades amb sensors i processant les dades a l&#8217;ordinador. Espero parlar-ne aviat, hi ha bastantes idees xul\u00b7les que es poden desenvolupar. Aqu\u00ed va una petita mostra. I una de les t\u00e8cniques claus per fer tot aix\u00f2 que vull fer \u00e9s enviar pel protocol s\u00e8rie les dades del sensor (arduino) a un programa C++ que s&#8217;est\u00e0 executant a l&#8217;ordinador.<\/p>\n<p>En la foto es pot veure com es recull les dades del sensor a l&#8217;ordinador. Les dades es van gravant en un fitxer, i es poden processar a posteriori. En aquest cas tinc un sensor LDR que capta la llum solar, i es tracta de veure com decau la il\u00b7luminaci\u00f3 a mida que es fa fosc. Quin comportament tindr\u00e0? L&#8217;estat inicial \u00e9s assimpt\u00f2tic (il\u00b7luminaci\u00f3 plena), i l&#8217;estat final tamb\u00e9 (foscor). Qu\u00e8 passa pel mig? Sabem que a la natura no li agraden els canvis bruscos. Hem d&#8217;unir les dues rectes amb una corba. Aix\u00f2 ens d\u00f3na una corba sigmoide, en la qual hi hauria un punt d&#8217;inflexi\u00f3 de canvi m\u00e0xim en el decreixement de la il\u00b7luminaci\u00f3? Ser\u00e0 cert aquest comportament, aquest model matem\u00e0tic? Anem a comprovar-ho.<\/p>\n<p>Un cop tenim el fitxer amb les dades, les processarem amb les llibreries cient\u00edfiques <strong>numpy<\/strong> i <strong>scipy<\/strong> de Python. Com podem veure en el codi, es proposa una l\u00ednia de m\u00e0xim ajustament de tipus sigmoide. I efectivament obtenim una bona soluci\u00f3 i un bon ajustament com es pot veure en la gr\u00e0fica. En aquest cas, l&#8217;equaci\u00f3 obtinguda \u00e9s:<\/p>\n<blockquote><p>y =987.24 * (1 \/ 1 +  exp(-0.07*(x-393.87))) +-8.02<\/p><\/blockquote>\n<p>No hem de fer massa cas a les dades de l&#8217;eix de les X, s\u00f3n tan sols punts. Senzillament tenir en compte que la dist\u00e0ncia entre punts s\u00f3n 30 segons.<\/p>\n<p>Aquesta \u00e9s una senzilla i bona demostraci\u00f3 d&#8217;estiu (un divertimento) de qu\u00e8 la natura es descriu amb funcions matem\u00e0tiques. Les mates s\u00f3n una bona eina per descriure el comportament de la naturalesa. I que els fen\u00f2mens exponencials s\u00f3n inherents a la F\u00edsica.<\/p>\n<p>Aquest \u00faltim any he estat estudiant m\u00e8todes num\u00e8rics i les llibreries cient\u00edfiques de Python, i realment hi veig un munt de possibilitats, que vull anar explorant aquest curs que comen\u00e7ar\u00e0 d&#8217;aqu\u00ed poc.<\/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\u00f3 sigmoide a la viquip\u00e8dia: <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 a la viquip\u00e8dia:  <a href=\"https:\/\/ca.wikipedia.org\/wiki\/LDR\">https:\/\/ca.wikipedia.org\/wiki\/LDR<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>M&#8217;est\u00e0 rondant el cap fer una s\u00e8rie d&#8217;experiments captant dades amb sensors i processant les dades a l&#8217;ordinador. Espero parlar-ne aviat, hi ha bastantes idees xul\u00b7les que es poden desenvolupar. Aqu\u00ed va una petita mostra. I una de les t\u00e8cniques claus per fer tot aix\u00f2 que vull fer \u00e9s enviar pel protocol s\u00e8rie les dades [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,45,19,16,12,36],"tags":[],"_links":{"self":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/700"}],"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=700"}],"version-history":[{"count":1,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/700\/revisions"}],"predecessor-version":[{"id":701,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/700\/revisions\/701"}],"wp:attachment":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}