{"id":3016,"date":"2018-11-26T06:51:34","date_gmt":"2018-11-26T11:51:34","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=3016"},"modified":"2026-02-19T09:01:15","modified_gmt":"2026-02-19T14:01:15","slug":"s1eva2018tii_t2-distancia-minima-a-un-punto","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva20\/s1eva2018tii_t2-distancia-minima-a-un-punto\/","title":{"rendered":"s1Eva2018TII_T2 Distancia m\u00ednima a un punto"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-evalua\/mn-1e20\/1eva2018tii_t2-distancia-minima-punto\/\" data-type=\"post\" data-id=\"3014\">1Eva2018TII_T2 Distancia m\u00ednima a un punto<\/a><\/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\/2018\/11\/1Eva2018TII_T2DistanciaMinimaPunto01ani.gif\" alt=\"1Eva2018TII_T2 Distancia Minima Punto 01 ani\" class=\"wp-image-21764\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Literal a<\/h2>\n\n\n\n<p>Se requiere analizar la distancias entre una trayectoria y=e<sup>x<\/sup> con el punto=[1,1]<\/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\/2018\/11\/1EIIT2018T2DistanciaMinimaPunto.png\" alt=\"Distancia M\u00ednima Punto\" class=\"wp-image-14158\" \/><\/figure>\n\n\n\n<p>Al analizar las distancias de e<sup>x<\/sup> y el punto [1,1] se trazan lineas paralelas a los ejes desde el punto [1,1], por lo que se determina que el intervalo de x = [a,b] para distancias se encuentra en:<\/p>\n\n\n\n<p>a &gt; 0, a = 0.1<br>b &lt; 1, b = 0.7<\/p>\n\n\n\n<p>El ejercicio usa la f\u00f3rmula de distancia entre dos puntos:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = \\sqrt{(x_2-x_1)^2+(y_2- y_1)^2}<\/span>\n\n\n\n<p>en los cuales:<\/p>\n\n\n\n<p>[x<sub>1<\/sub>,y<sub>1<\/sub>] = [1,1]<br>[x<sub>2<\/sub>,y<sub>2<\/sub>] = [x, e<sup>x<\/sup>]<\/p>\n\n\n\n<p>que al sustituir en la f\u00f3rmula se convierte en:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = \\sqrt{(x-1)^2+(e^x- 1)^2}<\/span>\n\n\n\n<p>que es lo requerido en el literal a<\/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 usar un m\u00e9todo de b\u00fasqueda de ra\u00edces, se requiere encontrar el valor cuando f(x) = d' = 0.<\/p>\n\n\n\n<p>Un m\u00e9todo como el de Newton Raphson requiere tambi\u00e9n f'(x) = <code>d''<\/code><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(x) = \\frac{x + (e^x - 1)e^x - 1}{\\sqrt{(x - 1)^2 + (e^x - 1)^2}} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(x)= \\frac{(e^x - 1)e^x + e^{2x} + 1 - \\frac{(x + (e^x - 1)e^x - 1)^2}{(x - 1)^2 + (e^x - 1)^2}} {\\sqrt{(x - 1)^2 + (e^x - 1)^2}}<\/span>\n\n\n\n<p>expresiones obtenidas usando Sympy<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>f(x):\n    ______________________\n   \u2571                    2 \n  \u2571         2   \u239b x    \u239e  \n\u2572\u2571   (x - 1)  + \u239d\u212f  - 1\u23a0  \n\ndf(x) :\n       \u239b x    \u239e  x        \n   x + \u239d\u212f  - 1\u23a0\u22c5\u212f  - 1    \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    ______________________\n   \u2571                    2 \n  \u2571         2   \u239b x    \u239e  \n\u2572\u2571   (x - 1)  + \u239d\u212f  - 1\u23a0  \n\nd2f(x) :\n                                              2\n                         \u239b    \u239b x    \u239e  x    \u239e \n\u239b x    \u239e  x    2\u22c5x       \u239dx + \u239d\u212f  - 1\u23a0\u22c5\u212f  - 1\u23a0 \n\u239d\u212f  - 1\u23a0\u22c5\u212f  + \u212f    + 1 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n                                             2 \n                                 2   \u239b x    \u239e  \n                          (x - 1)  + \u239d\u212f  - 1\u23a0  \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n               ______________________          \n              \u2571                    2           \n             \u2571         2   \u239b x    \u239e            \n           \u2572\u2571   (x - 1)  + \u239d\u212f  - 1\u23a0   <\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2018\/11\/distanciaminimaNewtonRaphson01.png\" alt=\"distancia minima Newton Raphson 01\" class=\"wp-image-21767\" \/><\/figure>\n\n\n\n<p>lo que permite observar la ra\u00edz de f(x) en una gr\u00e1fica:<br><br>con las siguientes instrucciones:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Eva_IIT2018_T2 Distancia m\u00ednima a un punto\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport sympy as sym\n\n# INGRESO\nx = sym.Symbol('x')\nfx = sym.sqrt((x-1)**2+(sym.exp(x) -1)**2)\n\na = 0\nb = 1\nmuestras = 21\n\n# PROCEDIMIENTO\ndfx = sym.diff(fx,x,1)\nd2fx = sym.diff(fx,x,2)\n\nf = sym.lambdify(x,dfx)\nxi = np.linspace(a,b,muestras)\nfi = f(xi)\n\n# SALIDA\nprint(&quot;f(x):&quot;)\nsym.pprint(fx)\nprint('df(x) :')\nsym.pprint(dfx)\nprint(&quot;d2f(x) :&quot;)\nsym.pprint(d2fx)\n\n# GRAFICA\nplt.plot(xi,fi, label='df(x)')\nplt.axhline(0)\nplt.xlabel('x')\nplt.ylabel('df(x)')\nplt.title('Derivada de distancia entre trayectoria y punto')\nplt.legend()\nplt.grid()\nplt.tight_layout()\nplt.show()\n<\/pre><\/div>\n\n\n<p>Para no complicar mas las f\u00f3rmulas se recurre a un m\u00e9todo mas simple aunque requiera m\u00e1s iteraciones como el m\u00e9todo de la bisecci\u00f3n en el intervalo dado. Donde f(x) es la derivada al pasar por cero.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(x) = \\frac{x + (e^x - 1)e^x - 1}{\\sqrt{(x - 1)^2 + (e^x - 1)^2}} <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">itera = 0 , a = 0, b=1<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c= \\frac{0+1}{2} = 0.5<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(0) = \\frac{0 + (e^0 - 1)e^0 - 1}{\\sqrt{(0 - 1)^2 + (e^0 - 1)^2}} = -1 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1) = \\frac{1 + (e^1 - 1)e^1 - 1}{\\sqrt{(1 - 1)^2 + (e^1 - 1)^2}} 2.7183 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(0.5) = \\frac{(0.5) + (e^(0.5) - 1)e^(0.5) - 1}{\\sqrt{((0.5) - 1)^2 + (e^(0.5) - 1)^2}} = 0.6954<\/span>\n\n\n\n<p class=\"has-text-align-center\">cambio de signo a la izquierda,<\/p>\n\n\n\n<p class=\"has-text-align-center\">a= 0, b=c=0.5<\/p>\n\n\n\n<p class=\"has-text-align-center\">tramo = |0.5-0| = 0.5<\/p>\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\"> c= \\frac{0+0.5}{2} = 0.25<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(0.25) = \\frac{(0.25) + (e^(0.25) - 1)e^(0.25) - 1}{\\sqrt{((0.25) - 1)^2 + (e^(0.25) - 1)^2}} = -0.4804<\/span>\n\n\n\n<p class=\"has-text-align-center\">cambio de signo a la derecha,<\/p>\n\n\n\n<p class=\"has-text-align-center\">a=c= 0.25, b=0.5<\/p>\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\"> c= \\frac{0.25+0.5}{2} = 0.375<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(0.375) = \\frac{(0.375) + (e^(0.375) - 1)e^(0.375) - 1}{\\sqrt{((0.375) - 1)^2 + (e^(0.375) - 1)^2}} = 0.0479<\/span>\n\n\n\n<p class=\"has-text-align-center\">cambio de signo a la izquierda,<\/p>\n\n\n\n<p class=\"has-text-align-center\">a= 0.25, b=c=0.375<\/p>\n\n\n\n<p>se contin\u00faan las iteraciones con el algoritmo, para encontrar la ra\u00edz en 0.364:<\/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;0, 0.5, 1] &#091;-1.      0.6954  2.7183]\n   0.5\n1 &#091;0, 0.25, 0.5] &#091;-1.     -0.4804  0.6954]\n   0.25\n2 &#091;0.25, 0.375, 0.5] &#091;-0.4804  0.0479  0.6954]\n   0.125\n3 &#091;0.25, 0.3125, 0.375] &#091;-0.4804 -0.2388  0.0479]\n   0.0625\n4 &#091;0.3125, 0.34375, 0.375] &#091;-0.2388 -0.1004  0.0479]\n   0.03125\n5 &#091;0.34375, 0.359375, 0.375] &#091;-0.1004 -0.0274  0.0479]\n   0.015625\n6 &#091;0.359375, 0.3671875, 0.375] &#091;-0.0274  0.01    0.0479]\n   0.0078125\n7 &#091;0.359375, 0.36328125, 0.3671875] &#091;-0.0274 -0.0088  0.01  ]\n   0.00390625\n8 &#091;0.36328125, 0.365234375, 0.3671875] &#091;-0.0088  0.0006  0.01  ]\n   0.001953125\n9 &#091;0.36328125, 0.3642578125, 0.365234375] &#091;-0.0088 -0.0041  0.0006]\n   0.0009765625\nra\u00edz en:  0.3642578125\n<\/code><\/pre>\n\n\n\n<p>Al algoritmo anterior se complementa con las instrucciones de la funci\u00f3n para la bisecci\u00f3n.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 1Eva2018TII_T2 Distancia m\u00ednima a un punto\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 = 50, 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]),\n                      np.array(&#x5B;fa,fc,fb]))\n            if (cambia&lt;0): # cambio de signo izquierda\n                b = c\n                fb = fc\n            else: # cambio de signo derecha\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# PROGRAMA ----------------------\n# INGRESO\nfx  = lambda x: (x + (np.exp(x) - 1)*np.exp(x) - 1)\/np.sqrt((x - 1)**2 + (np.exp(x) - 1)**2)\na = 0\nb = 1\ntolera = 0.001\n \n# PROCEDIMIENTO\nc = biseccion(fx,a,b,tolera,vertabla=True)\n# SALIDA\nprint('ra\u00edz en: ',c)\n\n# GRAFICA\nimport matplotlib.pyplot as plt\n \nmuestras = 21 # en intervalo &#x5B;a,b]\n \nxj = np.linspace(a,b,muestras)\nfj = fx(xj)\n \nplt.plot(xj,fj, label='f(x)')\nplt.plot(c,0,'o')\nplt.axhline(0)\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.title('Biseccion')\nplt.grid()\nplt.legend()\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Otros<\/p>\n\n\n\n<p>Gr\u00e1fica de trayectoria y punto, usada en el enunciado<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Eva_IIT2018_T2 Distancia m\u00ednima a un punto\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# INGRESO\nfx = lambda x: np.exp(x)\npunto = &#x5B;1,1]\nxk = 0.25\n\na = 0\nb = 2\nmuestras = 21\n\n# PROCEDIMIENTO\nxi = np.linspace(a,b,muestras)\nfi = fx(xi)\nfk = fx(xk)\n\n# SALIDA\n# GRAFICA\nplt.plot(xi,fi, label='trayectoria')\nplt.plot(punto&#x5B;0],punto&#x5B;1],'o', label='punto')\nplt.plot(xk,fk,'o')\nplt.axhline(punto&#x5B;0], color='red',linestyle='dotted')\nplt.axvline(punto&#x5B;1], color='red',linestyle='dotted')\nplt.axhline(0,color='gray')\nplt.xlabel('x')\nplt.ylabel('y')\nplt.title('Distancia m\u00ednima a un punto en trayectoria')\nplt.legend()\n#plt.grid()\nplt.tight_layout()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2018TII_T2 Distancia m\u00ednima a un punto Literal a Se requiere analizar la distancias entre una trayectoria y=ex con el punto=[1,1] Al analizar las distancias de ex y el punto [1,1] se trazan lineas paralelas a los ejes desde el punto [1,1], por lo que se determina que el intervalo de x = [a,b] para [&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-3016","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\/3016","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=3016"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/3016\/revisions"}],"predecessor-version":[{"id":21769,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/3016\/revisions\/21769"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=3016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=3016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=3016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}