{"id":1313,"date":"2017-11-08T09:00:18","date_gmt":"2017-11-08T14:00:18","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=1313"},"modified":"2026-04-05T19:48:59","modified_gmt":"2026-04-06T00:48:59","slug":"s1eva2008tii_t1_mn-bacterias-contaminantes","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva10\/s1eva2008tii_t1_mn-bacterias-contaminantes\/","title":{"rendered":"s1Eva2008TII_T1_MN Bacterias contaminantes"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-1eva10\/1eva2008tii_t1_mn-bacterias-contaminantes\/\" data-type=\"post\" data-id=\"481\">1Eva2008TII_T1_MN Bacterias contaminantes<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">a.&nbsp; Planteamiento del problema<\/h2>\n\n\n\n<p>estandarizar la f\u00f3rmula a la forma f(x) = 0<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = 70 e^{-1.5t} + 25 e^{-0.075t} <\/span>\n\n\n\n<p>el valor que debe tomar c = 9, por lo que la funci\u00f3n a desarrollar se convierte en:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 9 = 70 e^{-1.5t} + 25 e^{-0.075t} <\/span>\n\n\n\n<p>y la que se usar\u00e1 en el algoritmo de b\u00fasqueda de raices es:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 70 e^{-1.5t} + 25 e^{-0.075t} -9 = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(t) = 70 e^{-1.5t} + 25 e^{-0.075t} -9 = 0 <\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">b. Intervalo de b\u00fasqueda [a,b]<\/h2>\n\n\n\n<p>Como la variable t representa el tiempo, se inicia el an\u00e1lisis con cero por la izquierda o un poco mayor. a=0<\/p>\n\n\n\n<p>Para verificar que existe ra\u00edz se eval\u00faa f(a) y f(b) buscando valores donde se presenten cambios de signo.<\/p>\n\n\n\n<p>La funci\u00f3n depende de tiempo, por lo que a = 0, y b seleccionar un valor mayor.<\/p>\n\n\n\n<p>Para el caso de b,&nbsp; si fuesen minutos, se pueden probar con valores considerando el tiempo que durar\u00eda un \"experimento\" en el laboratorio durante una clase. Por ejemplo 60 minutos, 30 minutos, etc, para obtener un punto \"b\" donde se garantice un cambio de signo f(a) y f(b)<\/p>\n\n\n\n<p>Para el ejemplo, se prueba con b = 15<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a = 0\nb = 15\nf(a) = f(0) = 70*e<sup>0<\/sup> + 25 e<sup>0<\/sup> -9 = 86\nf(b) = f(15) = 70*e<sup>-1.5*15.<\/sup> + 25 e<sup>-0.075*15<\/sup> -9 = - 0.0036<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">c. N\u00famero de iteraciones<\/h2>\n\n\n\n<p>Calcular el <strong>n\u00famero de iteraciones<\/strong> para llegar a la ra\u00edz con el error tolerado<\/p>\n\n\n\n<p>error = 0.001<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{|15-0|}{2^n} = 0.001 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 15\/0.001 = 2^n <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> log(15\/0.001) = nlog(2) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> n = \\frac{log(15\/0.001)}{log(2)} = 13.87 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> n = 14 <\/span>\n\n\n\n<p>Verificando la selecci\u00f3n usando una gr\u00e1fica, usando 50 tramos entre [a,b] o 51 muestras en el intervalo.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/bacteriasLago02.png\" alt=\"bacterias lago 02\" class=\"wp-image-18703\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">d. iteraciones<\/h2>\n\n\n\n<p>Se encuentra la derivada f'(t) y se aplica el algoritmo Newton-Raphson con valor inicial cero.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(t) = 70 e^{-1.5t} + 25 e^{-0.075t} -9 = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(t) = 70(-1.5) e^{-1.5t} + 25(-0.075) e^{-0.075t} <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">itera = 0 , t0=0<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(0) = 70 e^{-1.5(0)} + 25 e^{-0.075(0)} -9 = 86 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(0) = 70(-1.5) e^{-1.5(0)} + 25(-0.075) e^{-0.075(0)} =-106.875 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_1 = 0 - \\frac{86}{-106.875} = 0.8047 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> errado = |0.8047- 0| = 0.8047 <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">itera = 1<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(0.8047) = 70 e^{-1.5(0.8047)} + 25 e^{-0.075(0.8047)} -9 = 35.472 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(0.8047) = 70(-1.5) e^{-1.5(0.8047)} + 25(-0.075) e^{-0.075(0.8047)} = -33.1694 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_2 = 0.8047 - \\frac{35.472}{-33.1694} = 1.8741 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> errado = |1.8741-0.8047| = 1.0694 <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">itera = 2<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1.8741) = 70 e^{-1.5(1.8741)} + 25 e^{-0.075(1.8741)} -9 = 16.93146 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(1.8741) = 70(-1.5) e^{-1.5(1.8741)} + 25(-0.075) e^{-0.075(1.8741)} = -7.9434 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_1 = 1.8741 - \\frac{16.9314}{-7.9434} = 4.0056 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> errado = |4.0056 -1.8741| = 2.1315 <\/span>\n\n\n\n<p>Se observa que el valor del error crece en cada iteraci\u00f3n, por lo que si solo se hacen tres iteraciones, se concluye que el m\u00e9todo No converge.<\/p>\n\n\n\n<p>Sin embargo con el algoritmo se observa que el m\u00e9todo luego comienza a disminuir, por lo que se calcula hasta la iteraci\u00f3n 7, obteniendo un error de 10<sup>-6<\/sup> y una ra\u00edz en 13.62.<\/p>\n\n\n\n<p>El resultado final se lo encuentra al usar el algoritmo:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>m\u00e9todo de Newton-Raphson\ni &#091;'xi', 'fi', 'dfi', 'xnuevo', 'tramo']\n0 &#091;   0.       86.     -106.875     0.8047    0.8047]\n1 &#091;  0.8047  35.472  -33.1694   1.8741   1.0694]\n2 &#091; 1.8741 16.9314 -7.9434  4.0056  2.1315]\n3 &#091; 4.0056  9.6848 -1.6465  9.8875  5.8819]\n4 &#091; 9.8875  2.9093 -0.8932 13.1445  3.257 ]\n5 &#091;13.1445  0.3282 -0.6996 13.6136  0.4691]\n6 &#091; 1.3614e+01  5.7056e-03 -6.7543e-01  1.3622e+01  8.4474e-03]\n7 &#091; 1.3622e+01  1.8070e-06 -6.7500e-01  1.3622e+01  2.6771e-06]\nraiz en:  13.622016772385326<\/code><\/pre>\n\n\n\n<p>Se usa el algoritmo en Python para encontrar el valor. El algoritmo Newton-Raphson mostrado es m\u00e1s peque\u00f1o que por ejemplo la bisecci\u00f3n, pero requiere realizar un trabajo previo para encontrar la derivada de la funci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 1Eva_IIT2008_T1_MN Bacterias contaminantes\n# M\u00e9todo de Newton-Raphson\nimport numpy as np\n \ndef newton_raphson(fx,dfx,x0, tolera, iteramax=100,\n                   vertabla=False, precision=4):\n    '''fx y dfx en forma num\u00e9rica lambda\n    xi es el punto inicial de b\u00fasqueda\n    si no converge hasta iteramax iteraciones\n    la respuesta es NaN (Not a Number)\n    '''\n    itera=0\n    xi = x0\n    tramo = abs(2*tolera)\n    if vertabla==True:\n        print('m\u00e9todo de Newton-Raphson')\n        print('i', &#x5B;'xi','fi','dfi', 'xnuevo', 'tramo'])\n        np.set_printoptions(precision)\n    while (tramo&gt;=tolera):\n        fi = fx(xi)\n        dfi = dfx(xi)\n        xnuevo = xi - fi\/dfi\n        tramo = abs(xnuevo-xi)\n        if vertabla==True:\n            print(itera,np.array(&#x5B;xi,fi,dfi,xnuevo,tramo]))\n        xi = xnuevo\n        itera = itera + 1\n \n    if itera&gt;=iteramax:\n        xi = np.nan\n        print('itera: ',itera,\n              'No converge,se alcanz\u00f3 el m\u00e1ximo de iteraciones')\n \n    return(xi)\n \n# PROGRAMA ---------------------------------\nfx = lambda t: 70*(np.e**(-1.5*t)) +25*(np.e**(-0.075*t))-9\ndfx = lambda t: -70*1.5*(np.e**(-1.5*t)) -25*0.075*(np.e**(-0.075*t))\n \n# INGRESO\nx0 = 0\ntolera = 0.001\n \n# PROCEDIMIENTO\nxi = newton_raphson(fx, dfx, x0, tolera, vertabla=True)\n \n# SALIDA\nprint('raiz en: ', xi)\n \n# GRAFICA\nimport matplotlib.pyplot as plt\na = 0\nb = 15\nmuestras = 21\n \nxj = np.linspace(a,b,muestras)\nfj = fx(xj)\nplt.plot(xj,fj, label='f(x)')\nplt.plot(xi,0, 'o')\nplt.axhline(0)\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.grid()\nplt.legend()\nplt.show()\n<\/pre><\/div>\n\n\n<p><strong>Tarea<\/strong>: Para el problema, realice varios m\u00e9todos y compare el n\u00famero de iteraciones y el trabajo realizado al plantear el problema al implementar cada uno.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2008TII_T1_MN Bacterias contaminantes a.&nbsp; Planteamiento del problema estandarizar la f\u00f3rmula a la forma f(x) = 0 el valor que debe tomar c = 9, por lo que la funci\u00f3n a desarrollar se convierte en: y la que se usar\u00e1 en el algoritmo de b\u00fasqueda de raices es: b. Intervalo de b\u00fasqueda [a,b] Como la [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-ejemplo","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[58,54],"class_list":["post-1313","post","type-post","status-publish","format-standard","hentry","category-mn-s1eva10","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=1313"}],"version-history":[{"count":7,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1313\/revisions"}],"predecessor-version":[{"id":23815,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1313\/revisions\/23815"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}