{"id":4214,"date":"2019-09-10T21:22:16","date_gmt":"2019-09-11T02:22:16","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=4214"},"modified":"2026-04-05T20:59:55","modified_gmt":"2026-04-06T01:59:55","slug":"s3eva2019ti_t2-integral-con-interpolacion","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s3eva20\/s3eva2019ti_t2-integral-con-interpolacion\/","title":{"rendered":"s3Eva2019TI_T2 Integral con interpolaci\u00f3n"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-3eva20\/3eva2019ti_t2-integral-con-interpolacion\/\" data-type=\"post\" data-id=\"4175\">3Eva2019TI_T2 Integral con interpolaci\u00f3n<\/a><\/p>\n\n\n\n<p>El ejercicio considera dos partes: interpolaci\u00f3n e integraci\u00f3n<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">a. Interpolaci\u00f3n<\/h4>\n\n\n\n<p>Se requiere aproximar la funci\u00f3n usando tres puntos. Para comprender la raz\u00f3n del m\u00e9todo solicitado, se compara la funci\u00f3n con dos interpolaciones:<\/p>\n\n\n\n<p>a.1 Lagrange<br>a.2 Trazador c\u00fabico sujeto<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"413\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2019\/09\/traza3sujeto04.png\" alt=\"trazador c\u00fabico sujeto 04\" class=\"wp-image-18609\" \/><\/figure>\n\n\n\n<p>Observando la gr\u00e1fica se aclara que en \u00e9ste caso, una mejor aproximaci\u00f3n se obtiene con el m\u00e9todo&nbsp; de trazador c\u00fabico sujeto. Motivo por lo que el tema tiene un peso de 40\/100 puntos<\/p>\n\n\n\n<p>Los valores a considerar para la evaluaci\u00f3n son:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>puntos referencia xi,yi: \n&#091;0.         0.78539816 1.57079633]\n&#091; 0.          0.62426595 -0.97536797]\nderivadas en los extremos:  \n    3.141592653589793 \n    0.6929852019184021\nPolinomio de Lagrange\n-1.80262534301178*x**2 + 2.21061873102778*x\nTrazadores c\u00fabicos sujetos\n&#091;0.         0.78539816]\n-0.548171611756137*x**3 - 2.55744517923506*x**2 + 3.14159265358979*x\n\n&#091;0.78539816 1.57079633]\n4.66299098804068*x**3 - 14.8359577843727*x**2 + 12.7851139029174*x - 2.52466795930204\n\n------------------\nValores calculados para Trazadores c\u00fabicos sujetos:\nMatriz A: \n&#091;&#091;-0.26179939 -0.13089969  0.        ]\n &#091; 0.78539816  3.14159265  0.78539816]\n &#091; 0.          0.13089969  0.26179939]]\nVector B: \n&#091;  2.34675256 -16.9893436    2.72970237]\ncoeficientes S: \n&#091;-5.11489036 -7.69808822 14.27573913]\ncoeficientes a,b,c,d\n&#091;-0.54817161  4.66299099]\n&#091;-2.55744518 -3.84904411]\n&#091; 3.14159265 -1.89005227]\n&#091;0.         0.62426595]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">b. Integraci\u00f3n<\/h4>\n\n\n\n<p>Como forma de comparaci\u00f3n de resultados, se requiere integrar con varios m\u00e9todos para comparar resultados y errores.<\/p>\n\n\n\n<p><strong>b.1 Integraci\u00f3n con Cuadratura de Gauss, usando el resultado de trazador c\u00fabico.<\/strong><\/p>\n\n\n\n<p>Se integra en cada tramo de cada polinomio:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Trazadores c\u00fabicos sujetos\n&#091;0.         0.78539816]\n-0.548171611756137*x**3 - 2.55744517923506*x**2 + 3.14159265358979*x<\/code><\/pre>\n\n\n\n<p>Se obtienen los puntos del m\u00e9todo de cuadratura desplazados en el rango:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>xa:  0.16597416116944688\nxb:  0.6194240022280014\narea:  0.5037962958529855<\/code><\/pre>\n\n\n\n<p>Para el segundo tramo:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>&#091;0.78539816 1.57079633]\n4.66299098804068*x**3 - 14.8359577843727*x**2 + 12.7851139029174*x - 2.52466795930204\nxa:  0.9513723245668951\nxb:  1.4048221656254496\narea:  -0.2706563884589365<\/code><\/pre>\n\n\n\n<p>Con lo que el integral total es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Integral total:  0.23313990739404894<\/code><\/pre>\n\n\n\n<p><strong>b.2 Integraci\u00f3n anal\u00edtica<\/strong><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\int_0^{\\pi \/2}sin(\\pi x) dx<\/span>\n\n\n\n<p>u = \u03c0x<br>du\/dx = \u03c0<br>dx = du\/\u03c0<\/p>\n\n\n\n<p>se convierte en:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{1}{\\pi}\\int sin(u) du<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{1}{\\pi}(-cos(u))<\/span>\n\n\n\n<p>volviendo a la variable x:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{1}{\\pi}(-cos(\\pi x)) \\Big\\rvert_{0}^{\\frac{\\pi}{2}}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">-\\frac{1}{\\pi}(cos(\\pi \\frac{\\pi}{2})-cos(\\pi(0))) = 0.24809580527879377<\/span>\n\n\n\n<h4 class=\"wp-block-heading\">c. Estimaci\u00f3n del error<\/h4>\n\n\n\n<p>Se restan los resultados de las secciones b.1 y b.2<\/p>\n\n\n\n<p>error = |0.24809580527879377 -&nbsp;0.23313990739404894 |<\/p>\n\n\n\n<p>error = 0.014955897884744829<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n\n<p>separado por literales<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 3Eva I T 2019 Interpola e Integra\nimport numpy as np\nimport sympy as sym\nimport matplotlib.pyplot as plt\n\ndef interpola_lagrange(xi,yi):\n    '''\n    Interpolaci\u00f3n con m\u00e9todo de Lagrange\n    resultado: polinomio en forma simb\u00f3lica\n    '''\n    # PROCEDIMIENTO\n    n = len(xi)\n    x = sym.Symbol('x')\n    # Polinomio\n    polinomio = 0\n    for i in range(0,n,1):\n        # Termino de Lagrange\n        termino = 1\n        for j  in range(0,n,1):\n            if (j!=i):\n                termino = termino*(x-xi&#x5B;j])\/(xi&#x5B;i]-xi&#x5B;j])\n        polinomio = polinomio + termino*yi&#x5B;i]\n    # Expande el polinomio\n    polinomio = polinomio.expand()\n    return(polinomio)\n\ndef traza3sujeto(xi,yi,u,v):\n    '''\n    Trazador c\u00fabico sujeto, splines\n    resultado: polinomio en forma simb\u00f3lica\n    '''\n    n = len(xi)\n    # Valores h\n    h = np.zeros(n-1, dtype=float)\n    # Sistema de ecuaciones\n    A = np.zeros(shape=(n,n), dtype=float)\n    B = np.zeros(n, dtype=float)\n    S = np.zeros(n-1, dtype=float)\n    # coeficientes\n    a = np.zeros(n-1, dtype=float)\n    b = np.zeros(n-1, dtype=float)\n    c = np.zeros(n-1, dtype=float)\n    d = np.zeros(n-1, dtype=float)\n    \n    polinomios=&#x5B;]\n    \n    if (n&gt;=3):\n        for i in range(0,n-1,1):\n            h&#x5B;i]=xi&#x5B;i+1]-xi&#x5B;i]\n        A&#x5B;0,0] = -h&#x5B;0]\/3\n        A&#x5B;0,1] = -h&#x5B;0]\/6\n        B&#x5B;0] = u-(yi&#x5B;1]-yi&#x5B;0])\/h&#x5B;0]\n        for i in range(1,n-1,1):\n            A&#x5B;i,i-1] = h&#x5B;i-1]\n            A&#x5B;i,i] = 2*(h&#x5B;i-1]+h&#x5B;i])\n            A&#x5B;i,i+1] = h&#x5B;i]\n            B&#x5B;i] = 6*((yi&#x5B;i+1]-yi&#x5B;i])\/h&#x5B;i] - (yi&#x5B;i]-yi&#x5B;i-1])\/h&#x5B;i-1])\n        A&#x5B;n-1,n-2] = h&#x5B;n-2]\/6\n        A&#x5B;n-1,n-1] = h&#x5B;n-2]\/3\n        B&#x5B;n-1] = v-(yi&#x5B;n-1]-yi&#x5B;n-2])\/h&#x5B;n-2]\n\n        # Resolver sistema de ecuaciones\n        S = np.linalg.solve(A,B)\n\n        # Coeficientes\n        for i in range(0,n-1,1):\n            a&#x5B;i]=(S&#x5B;i+1]-S&#x5B;i])\/(6*h&#x5B;i])\n            b&#x5B;i]=S&#x5B;i]\/2\n            c&#x5B;i]=(yi&#x5B;i+1]-yi&#x5B;i])\/h&#x5B;i]-(2*h&#x5B;i]*S&#x5B;i]+h&#x5B;i]*S&#x5B;i+1])\/6\n            d&#x5B;i]=yi&#x5B;i]\n      \n        # polinomio en forma simb\u00f3lica\n        x=sym.Symbol('x')\n        polinomios=&#x5B;]\n        for i in range(0,n-1,1):\n            ptramo = a&#x5B;i]*(x-xi&#x5B;i])**3 + b&#x5B;i]*(x-xi&#x5B;i])**2 + c&#x5B;i]*(x-xi&#x5B;i])+ d&#x5B;i]\n            ptramo = ptramo.expand()\n            polinomios.append(ptramo)\n        parametros = &#x5B;A,B,S,a,b,c,d]                                                           \n    return(polinomios, parametros)\n\n# INGRESO\nf = lambda x: np.sin(np.pi*x)\nmuestrasf = 20\na = 0\nb = np.pi\/2\n# Derivadas en los extremos\nu = np.pi*np.cos(np.pi*a)\nv = np.pi*np.cos(np.pi*b)\nmuestras = 3\n\n# literal a\n# PROCEDIMIENTO\nxif = np.linspace(a,b,muestrasf)\nyif = f(xif)\n\nxi = np.linspace(a,b,muestras)\nyi = f(xi)\n\n# Usando Lagrange\nx = sym.Symbol('x')\npL = interpola_lagrange(xi,yi)\npxL = sym.lambdify(x,pL)\npxiL =  pxL(xif)\n\n# Trazador c\u00fabico sujeto\npS, parametros = traza3sujeto(xi,yi,u,v)\npxiS = np.zeros(muestrasf,dtype=float)\n\n# Evalua trazadores c\u00fabicos sujetos\ni=0\nap = xi&#x5B;i]\nbp = xi&#x5B;i+1]\npoli = sym.lambdify(x, pS&#x5B;i])\nfor j in range(0,muestrasf,1):\n    punto = xif&#x5B;j]\n    if (punto&gt;bp):\n        i = i+1\n        ap = xi&#x5B;i]\n        bp = xi&#x5B;i+1]\n        poli = sym.lambdify(x,pS&#x5B;i])\n    pxiS&#x5B;j] = poli(punto)\n\n# SALIDA\nprint('puntos referencia xi,yi: ')\nprint(xi)\nprint(yi)\nprint('derivadas en los extremos: ',u,v)\nprint('Polinomio de Lagrange')\nprint(pL)\nprint('Trazadores c\u00fabicos sujetos')\nn = len(xi)\nfor i in range(0,n-1,1):\n    print(xi&#x5B;i:i+2])\n    print(pS&#x5B;i])\n# Parametros de Trazadores c\u00fabicos sujetos\nprint('Matriz A: ')\nprint(parametros&#x5B;0])\nprint('Vector B: ')\nprint(parametros&#x5B;1])\nprint('coeficientes S: ')\nprint(parametros&#x5B;2])\nprint('coeficienetes a,b,c,d')\nprint(parametros&#x5B;3])\nprint(parametros&#x5B;4])\nprint(parametros&#x5B;5])\nprint(parametros&#x5B;6])\n\n# Gr\u00e1ficas\nplt.plot(xif,yif, label='funcion')\nplt.plot(xi,yi,'o', label='muestras')\nplt.plot(xif,pxiL, label='p(x)_Lagrange')\nplt.plot(xif,pxiS, label='p(x)_Traza3Sujeto')\nplt.legend()\nplt.xlabel('x')\nplt.show()\n\n# literal b\n# cuadratura de Gauss de dos puntos\ndef integraCuadGauss2p(funcionx,a,b):\n    x0 = -1\/np.sqrt(3)\n    x1 = -x0\n    xa = (b+a)\/2 + (b-a)\/2*(x0)\n    xb = (b+a)\/2 + (b-a)\/2*(x1)\n    area = ((b-a)\/2)*(funcionx(xa) + funcionx(xb))\n    print('xa: ',xa)\n    print('xb: ',xb)\n    print('area: ', area)\n    return(area)\n\n# INGRESO\nf0 = sym.lambdify(x,pS&#x5B;0])\nf1 = sym.lambdify(x,pS&#x5B;1])\n# Procedimiento\nI0 = integraCuadGauss2p(f0,xi&#x5B;0],xi&#x5B;1])\nI1 = integraCuadGauss2p(f1,xi&#x5B;1],xi&#x5B;2])\nIt = I0+I1\n\n# SALIDA\nprint('Integral 1: ', I0)\nprint('Integral 2: ', I1)\nprint('Integral total: ',It)\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2019TI_T2 Integral con interpolaci\u00f3n El ejercicio considera dos partes: interpolaci\u00f3n e integraci\u00f3n a. Interpolaci\u00f3n Se requiere aproximar la funci\u00f3n usando tres puntos. Para comprender la raz\u00f3n del m\u00e9todo solicitado, se compara la funci\u00f3n con dos interpolaciones: a.1 Lagrangea.2 Trazador c\u00fabico sujeto Observando la gr\u00e1fica se aclara que en \u00e9ste caso, una mejor aproximaci\u00f3n se [&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":[51],"tags":[58,54],"class_list":["post-4214","post","type-post","status-publish","format-standard","hentry","category-mn-s3eva20","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4214","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=4214"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4214\/revisions"}],"predecessor-version":[{"id":23926,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4214\/revisions\/23926"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}