{"id":1417,"date":"2017-11-11T06:30:00","date_gmt":"2017-11-11T11:30:00","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=1417"},"modified":"2026-02-17T05:24:31","modified_gmt":"2026-02-17T10:24:31","slug":"s1eva2011ti_t1_mn-fondo-de-inversion","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva20\/s1eva2011ti_t1_mn-fondo-de-inversion\/","title":{"rendered":"s1Eva2011TI_T1_MN Fondo de inversi\u00f3n"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-evalua\/mn-1e15\/1eva2011ti_t1_mn-fondo-de-inversion\/\" data-type=\"post\" data-id=\"396\">1Eva2011TI_T1_MN Fondo de inversi\u00f3n<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Planteamiento<\/h2>\n\n\n\n<p>Siendo C(t), considerando A como un mill\u00f3n, A=1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> C(t)=Ate^{-t\/3}<\/span>\n\n\n\n<p>Se observa la gr\u00e1fica de la funci\u00f3n que muestra el valor m\u00e1ximo en el intervalo entre [2, 5] , alrededor de&nbsp; 3<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/s1EIT2011T1_FondoInversion01.png\" alt=\"s1EIT2011T1 Fondo Inversi\u00f3n 01\" class=\"wp-image-18731\" \/><\/figure>\n\n\n\n<p>Para encontrar el valor del m\u00e1ximo, se requiere usar la derivada respecto al tiempo y encontrar el cruce por cero.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{dC}{dt} = -t e^{-t\/3} +e^{-t\/3} <\/span>\n\n\n\n<p>Adicionalmente, para el literal b en la gr\u00e1fica se incluye como meta donde C(t) disminuye a 1\/4 o 0.25. Lo que estar\u00eda en el intervalo entre [10, 14].<\/p>\n\n\n\n<p>Instrucciones en Python para observar la funci\u00f3n:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 1ra Evaluaci\u00f3n I T\u00e9rmino 2011\n# Tema 1. Fondo de Inversion\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nft = lambda t: t*np.exp(-t\/3)\n\na=0\nb=20\ntolera = 0.0001\nmuestras = 101\nmeta = 0.25\n# PROCEDIMIENTO\n# Observar la funci\u00f3n entre &#x5B;a,b]\nti = np.linspace(a,b,muestras)\nfti = ft(ti)\n\n# SALIDA\n# GRAFICA\nplt.plot(ti,fti, label='f(t)')\nplt.axhline(meta, color = 'r')\nplt.axhline(0, color = 'k')\nplt.legend()\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">literal a<\/h2>\n\n\n\n<p>Para encontrar el m\u00e1ximo se puede determinar la derivada con Sympy.<\/p>\n\n\n\n<p>Para la derivada se usa la forma simb\u00f3lica de la funci\u00f3n, que se convierte a forma num\u00e9rica lambda para evaluarla de forma m\u00e1s f\u00e1cil y obtener la gr\u00e1fica.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Literal a) usando derivada simb\u00f3lica\nimport sympy as sp\nx = sp.Symbol('x')\nfxs = x*sp.exp(-x\/3)\ndfxs = fxs.diff(x,1)\n\n# convierte la expresi\u00f3n a lambda\ndfxn = sp.utilities.lambdify(x,dfxs,'numpy')\ndfxni = dfxn(ti)\n\nprint('derivada de la funci\u00f3n: ')\nprint(dfxs)\n\n# GRAFICA de la derivada.\nplt.plot(ti,dfxni, label='df(t)\/dt')\nplt.axhline(0, color = 'k')\nplt.legend()\nplt.show()\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/s1EIT2011T1_FondoInversion02.png\" alt=\"s1EIT2011T1 Fondo Inversi\u00f3n 02\" class=\"wp-image-18732\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>derivada de la funci\u00f3n: \n-x*exp(-x\/3)\/3 + exp(-x\/3)<\/code><\/pre>\n\n\n\n<p>Se busca la ra\u00edz con alg\u00fan m\u00e9todo, por ejemplo bisecci\u00f3n, siendo f(x) = 0<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(t) = \\frac{dC}{dt} = -t e^{-t\/3} +e^{-t\/3} <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">Desarrollo anal\u00edtico<\/h3>\n\n\n\n<p>itera = 0, a = 2, b= 5<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{a+b}{2} =\\frac{2+5}{2}=3.5<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(2) = -2 e^{-2\/3} +e^{-2\/3} =0.1711<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(3.5) = -5 e^{-3.5\/3} +e^{-3.5\/3} = -0.0519 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(5) = -5 e^{-5\/3} +e^{-5\/3} = -0.1259<\/span>\n\n\n\n<p class=\"has-text-align-center\">cambio de signo del lado izquierdo<\/p>\n\n\n\n<p class=\"has-text-align-center\">a = 2, b = 3.5<\/p>\n\n\n\n<p class=\"has-text-align-center\">error = | 3.5-2 | = 1.5<\/p>\n\n\n\n<p>itera = 1, a = 2, b = 3.5<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{2+3.5}{2}=2.75<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(2.75) = -2.75 e^{-2.75\/3} +e^{-2.75\/3} = 0.0333 <\/span>\n\n\n\n<p class=\"has-text-align-center\">cambio de signo del lado derecho<\/p>\n\n\n\n<p class=\"has-text-align-center\">a = 2.75, b = 3.5<\/p>\n\n\n\n<p class=\"has-text-align-center\">error = | 3.5-2.75 | = 0.75<\/p>\n\n\n\n<p>itera = 2, a = 2.75, b = 3.5<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{2.75+3.5}{2}=3.125 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(3.125) = -3.125 e^{-3.125\/3} +e^{-3.125\/3} = -0.0147 <\/span>\n\n\n\n<p class=\"has-text-align-center\">cambio de signo del lado izquierdo<\/p>\n\n\n\n<p class=\"has-text-align-center\">a = 2.75, b = 3.1255<\/p>\n\n\n\n<p class=\"has-text-align-center\">error = | 3.12555-2.75 | = 0.375<\/p>\n\n\n\n<p>y se contin\u00faa hasta alcanzar la tolerancia dada para el ejercicio.<\/p>\n\n\n\n<p>Usando el algoritmo se encuentra luego de 14 iteraciones:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>m\u00e9todo de Bisecci\u00f3n\ni &#091;'a', 'c', 'b'] &#091;'f(a)', 'f(c)', 'f(b)']\n   tramo\n0 &#091;2.  3.5 5. ] &#091; 0.1711 -0.0519 -0.1259]\n   1.5\n1 &#091;2.   2.75 3.5 ] &#091; 0.1711  0.0333 -0.0519]\n   0.75\n2 &#091;2.75  3.125 3.5  ] &#091; 0.0333 -0.0147 -0.0519]\n   0.375\n3 &#091;2.75   2.9375 3.125 ] &#091; 0.0333  0.0078 -0.0147]\n   0.1875\n4 &#091;2.9375 3.0312 3.125 ] &#091; 0.0078 -0.0038 -0.0147]\n   0.09375\n5 &#091;2.9375 2.9844 3.0312] &#091; 0.0078  0.0019 -0.0038]\n   0.046875\n6 &#091;2.9844 3.0078 3.0312] &#091; 0.0019 -0.001  -0.0038]\n   0.0234375\n7 &#091;2.9844 2.9961 3.0078] &#091; 0.0019  0.0005 -0.001 ]\n   0.01171875\n8 &#091;2.9961 3.002  3.0078] &#091; 0.0005 -0.0002 -0.001 ]\n   0.005859375\n9 &#091;2.9961 2.999  3.002 ] &#091; 0.0005  0.0001 -0.0002]\n   0.0029296875\n10 &#091;2.999  3.0005 3.002 ] &#091; 1.1979e-04 -5.9866e-05 -2.3935e-04]\n   0.00146484375\n11 &#091;2.999  2.9998 3.0005] &#091; 1.1979e-04  2.9941e-05 -5.9866e-05]\n   0.000732421875\n12 &#091;2.9998 3.0001 3.0005] &#091; 2.9941e-05 -1.4968e-05 -5.9866e-05]\n   0.0003662109375\n13 &#091;2.9998 2.9999 3.0001] &#091; 2.9941e-05  7.4847e-06 -1.4968e-05]\n   0.00018310546875\n14 &#091;2.9999 3.     3.0001] &#091; 7.4847e-06 -3.7422e-06 -1.4968e-05]\n   9.1552734375e-05\nra\u00edz en:  3.000030517578125<\/code><\/pre>\n\n\n\n<p>Instrucciones en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 1Eva_IT2011_T1_MN Fondo de Inversi\u00f3n\n# Algoritmo de Bisecci\u00f3n\n# &#x5B;a,b] se escogen de la gr\u00e1fica de la funci\u00f3n\n# error = tolera\nimport numpy as np\n\ndef biseccion(fx,a,b,tolera,iteramax = 20, vertabla=False, precision=4):\n    '''\n    Algoritmo de Bisecci\u00f3n\n    Los valores de &#x5B;a,b] son seleccionados\n    desde la gr\u00e1fica de la funci\u00f3n\n    error = tolera\n    '''\n    fa = fx(a)\n    fb = fx(b)\n    tramo = np.abs(b-a)\n    itera = 0\n    cambia = np.sign(fa)*np.sign(fb)\n    if cambia&lt;0: # existe cambio de signo f(a) vs f(b)\n        if vertabla==True:\n            print('m\u00e9todo de Bisecci\u00f3n')\n            print('i', &#x5B;'a','c','b'],&#x5B; 'f(a)', 'f(c)','f(b)'])\n            print('  ','tramo')\n            np.set_printoptions(precision)\n            \n        while (tramo&gt;=tolera and itera&lt;=iteramax):\n            c = (a+b)\/2\n            fc = fx(c)\n            cambia = np.sign(fa)*np.sign(fc)\n            if vertabla==True:\n                print(itera,np.array(&#x5B;a,c,b]),np.array(&#x5B;fa,fc,fb]))\n            if (cambia&lt;0):\n                b = c\n                fb = fc\n            else:\n                a = c\n                fa = fc\n            tramo = np.abs(b-a)\n            if vertabla==True:\n                print('  ',tramo)\n            itera = itera + 1\n        respuesta = c\n        # Valida respuesta\n        if (itera&gt;=iteramax):\n            respuesta = np.nan\n\n    else: \n        print(' No existe cambio de signo entre f(a) y f(b)')\n        print(' f(a) =',fa,',  f(b) =',fb) \n        respuesta=np.nan\n    return(respuesta)\n\n# INGRESO\nfx  = lambda t: -t*np.exp(-t\/3)\/3 + np.exp(-t\/3)\na = 2\nb = 5\ntolera = 0.0001\n\n# PROCEDIMIENTO\nrespuesta = biseccion(fx,a,b,tolera,vertabla=True)\n# SALIDA\nprint('ra\u00edz en: ', respuesta)\n<\/pre><\/div>\n\n\n<p>Determine el monto de la inversi\u00f3n inicial A necesaria para que el m\u00e1ximo sea igual a un mill\u00f3n de d\u00f3lares. Como el m\u00e1ximo se encuentra en t=3, se tiene que:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> C(t)=Ate^{-t\/3}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 1=A(3)e^{-3\/3}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> A=\\frac{1}{(3)e^{-1}} = 0.906093<\/span>\n\n\n\n<p>considerando que las unidades se encuentran en millones.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p>Para el literal b, se busca la ra\u00edz usando el m\u00e9todo de Newton-Raphson como se indica en el enunciado.<\/p>\n\n\n\n<p>En la funci\u00f3n nueva se usa el valor de A encontrado, y la meta establecida.<\/p>\n\n\n\n<p>Se obtiene la misa derivada del problema anterior multiplicada por A, por ser solo un factor que multiplica a la funci\u00f3n original. El valor de meta es una constante, que se convierte en cero al derivar.<\/p>\n\n\n\n<p>resultado con el algoritmo:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>&#091;'xi', 'xnuevo', 'tramo']\n&#091;&#091;1.0000e+01 1.0880e+01 8.7987e-01]\n &#091;1.0880e+01 1.1056e+01 1.7580e-01]\n &#091;1.1056e+01 1.1076e+01 2.0098e-02]\n &#091;1.1076e+01 1.1078e+01 1.9337e-03]\n &#091;1.1078e+01 1.1078e+01 1.8202e-04]]\nraiz en:  11.077880437153812\ncon error de:  0.00018201925869298918\n&gt;&gt;&gt;<\/code><\/pre>\n\n\n\n<p>Instrucciones en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 1Eva_IT2011_T1_MN Fondo de Inversi\u00f3n \n# M\u00e9todo de Newton-Raphson\n# Ejemplo 1 (Burden ejemplo 1 p.51\/pdf.61)\n\nimport numpy as np\n\n# INGRESO\nfx  = lambda t: 0.906093*t*np.exp(-t\/3) - 0.25\ndfx = lambda t: -t*np.exp(-t\/3)\/3 + np.exp(-t\/3)\n\nx0 = 10\ntolera = 0.001\n\n# PROCEDIMIENTO\ntabla = &#x5B;]\ntramo = abs(2*tolera)\nxi = x0\nwhile (tramo&gt;=tolera):\n    xnuevo = xi - fx(xi)\/dfx(xi)\n    tramo  = abs(xnuevo-xi)\n    tabla.append(&#x5B;xi,xnuevo,tramo])\n    xi = xnuevo\n\n# convierte la lista a un arreglo.\ntabla = np.array(tabla)\nn = len(tabla)\n\n# SALIDA\nprint(&#x5B;'xi', 'xnuevo', 'tramo'])\nnp.set_printoptions(precision = 4)\nprint(tabla)\nprint('raiz en: ', xi)\nprint('con error de: ',tramo)\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/s1EIT2011T1_FondoInversion03.png\" alt=\"s1EIT2011T1_FondoInversion03\" class=\"wp-image-18733\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>el valor de t para la meta es: 11.0779035867<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2011TI_T1_MN Fondo de inversi\u00f3n Planteamiento Siendo C(t), considerando A como un mill\u00f3n, A=1 Se observa la gr\u00e1fica de la funci\u00f3n que muestra el valor m\u00e1ximo en el intervalo entre [2, 5] , alrededor de&nbsp; 3 Para encontrar el valor del m\u00e1ximo, se requiere usar la derivada respecto al tiempo y encontrar el cruce por [&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":[45],"tags":[58,54],"class_list":["post-1417","post","type-post","status-publish","format-standard","hentry","category-mn-s1eva20","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1417","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=1417"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1417\/revisions"}],"predecessor-version":[{"id":21708,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1417\/revisions\/21708"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}