{"id":6539,"date":"2017-08-06T09:20:46","date_gmt":"2017-08-06T14:20:46","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=6539"},"modified":"2026-03-04T09:53:08","modified_gmt":"2026-03-04T14:53:08","slug":"cuadratura-gauss-dospuntos-experimento","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u05\/cuadratura-gauss-dospuntos-experimento\/","title":{"rendered":"5.5.1 Cuadratura con dos puntos - Experimento con Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p>Cuadratura Gauss:<\/p>\n\n\n\n<p><a href=\"#experimento\">Experimento<\/a> 2 puntos<\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><br><a name=\"experimento\"><\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"experimento\">Cuadratura con dos puntos - Experimento<\/h2>\n\n\n\n<p>Para visualizar el concepto de Cuadratura de Gauss de dos puntos considere lo siguiente:<\/p>\n\n\n\n<p>Se tiene un <strong>corte transversal<\/strong> del un recipiente rectangular lleno de l\u00edquido limitado en x entre [-1,1], al que se le ha depositado encima otro recipiente con perfil f(x) = x<sup>2<\/sup> hasta que reposan sus extremos en x[-1,1].<\/p>\n\n\n\n<p>La altura de ambos recipientes es la misma.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"582\" height=\"228\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/cuadraturaGauss2p_test01.png\" alt=\"cuadratura de Gauss 2 puntos test \" class=\"wp-image-13650\" \/><\/figure>\n\n\n\n<p>La superficie entre f(x) y el eje x es el integral de f(x) en el intervalo.<\/p>\n\n\n\n<p>Si suponemos que la figura es el corte transversal de una vasija y la parte en amarillo es l\u00edquida, la vasija ha desplazado el l\u00edquido que ocupa ahora el \"\u00e1rea\" mostrada en la gr\u00e1fica que corresponde al integral de f(x)=x<sup>2<\/sup>. entre [-1,1].<\/p>\n\n\n\n<p>Ahora, suponga que se perfora el perfil de f(x) en dos puntos equidistantes cercanos&nbsp; x=0. Los orificios permitir\u00edan el desplazamiento del liquido al interior de f(x) que dejando pasar suficiente tiempo, permitir\u00eda tener todo el l\u00edquido en el recipiente rectangular entre [-1,1] como una l\u00ednea horizontal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"588\" height=\"432\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/cuadraturaGauss2p_test02.png\" alt=\"cuadratura de Gauss 2 puntos test 02\" class=\"wp-image-13652\" \/><\/figure>\n\n\n\n<p>Podr\u00eda medir la altura que tiene el l\u00edquido y que tiene un equivalente en un punto f(x1). Deber\u00eda encontrar el valor de x1 que permite disponer del mismo valor entre el \u00e1rea debajo de f(x) y el rect\u00e1ngulo del corte transversal amarillo ahora formado.<\/p>\n\n\n\n<p>Se usa el resultado anal\u00edtico del integral restando el \u00e1rea del rect\u00e1ngulo obtenido al evaluar la funci\u00f3n f(x) entre [0,1], teniendo un problema de b\u00fasqueda de ra\u00edces. Obtenemos el valor de x1.<\/p>\n\n\n\n<p>Se muestra que el \u00e1rea bajo f(x) es equivalente al \u00e1rea del rect\u00e1ngulo conformado.<\/p>\n\n\n\n<p>Si&nbsp; utilizamos el desplazamiento horizontal desde el centro para un punto encontrado como un \"factor\", tendremos que el \u00e1rea del rect\u00e1ngulo se mantendr\u00eda equivalente, y el desplazamiento proporcional a la mitad del intervalo si se var\u00eda el intervalo de observaci\u00f3n. Este factor coincide con el factor de Cuadratura de Gauss de dos puntos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>funcion  fx:   x**2\nIntegral Fx:   x**3\/3\nI analitico:   0.6666666666666666\nI aproximado:  0.6666666666654123\ndesplaza centro:   0.5773502691890826\nfactor desplaza:   0.5773502691890826\nFactor CuadGauss:  0.5773502691896258\nerradoFactor:    1.2545520178264269e-12\nerror integral:  1.2543299732215019e-12<\/code><\/pre>\n\n\n\n<p>El error del integral es del orden de 10<sup>-12<\/sup><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Integral con Cuadratura de Gauss en Python\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/dTEtfOrfoXQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Cambiamos la figura geom\u00e9trica a un trapecio generado por la recta que pasa por los puntos xi desplazados desde el centro.<\/p>\n\n\n\n<p>Usamos la funci\u00f3n f(x) = x<sup>2<\/sup> + x + 1, observaremos si los resultado son equivalentes.<\/p>\n\n\n\n<p>La figura al inicio del experimento ser\u00e1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"565\" height=\"228\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/cuadraturaGauss2p_test03.png\" alt=\"cuadratura de Gauss 2 puntos test 03\" class=\"wp-image-13653\" \/><\/figure>\n\n\n\n<p>Luego de realizar realizar el mismo c\u00e1lculo anterior usando un equivalente a trapecio se tiene:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"568\" height=\"435\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/cuadraturaGauss2p_test04.png\" alt=\"cuadratura de Gauss 2 puntos test 04\" class=\"wp-image-13654\" \/><\/figure>\n\n\n\n<p>con valores num\u00e9ricos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>funcion  fx:   x**2 + x + 1\nIntegral Fx:   x**3\/3 + x**2\/2 + x\nI analitico:   2.6666666666666665\nI aproximado:  2.6666666666654124\ndesplaza centro:   0.5773502691890826\nfactor desplaza:   0.5773502691890826\nFactor CuadGauss:  0.5773502691896258\nerradoFactor:    1.2545520178264269e-12\nerror integral:  1.2541079286165768e-12<\/code><\/pre>\n\n\n\n<p>El error del integral es tambi\u00e9n del orden de 10<sup>-12<\/sup>, adem\u00e1s observe que el factor de cuadratura de Gauss se mantiene.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p>Cuadratura Gauss:<\/p>\n\n\n\n<p><a href=\"#experimento\">Experimento<\/a> 2 puntos<\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><br><a name=\"experimento\"><\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Tarea<\/h2>\n\n\n\n<p>Realice el experimento usando un polinomio de grado superior y observe los errores para el integral y las diferencia con el coeficiente de Cuadratura de 2 puntos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p>Cuadratura Gauss:<\/p>\n\n\n\n<p><a href=\"#experimento\">Experimento<\/a> 2 puntos<\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><br><a name=\"experimento\"><\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"algoritmo\">Algoritmo con Python<\/h2>\n\n\n\n<p>Para resumir la cantidad de instrucciones, se usa el m\u00e9todo de la bisecci\u00f3n desde la librer\u00eda Scipy y el subgrupo de funciones de optimizaci\u00f3n.<\/p>\n\n\n\n<p>Los c\u00e1lculos para realizar las gr\u00e1ficas se tratan en un bloque luego de mostrar los resultado principales.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Integraci\u00f3n: Cuadratura de Gauss de dos puntos\n# modelo con varios tramos entre &#x5B;a,b]\n# para un solo segmento.\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport sympy as sym\nimport scipy.optimize as op\n\n# INGRESO\nx = sym.Symbol('x')\n\n# fx = (x)**2\nfx = x**2 + x + 1\n# fx = 0.2 + 25.0*x-200*(x**2)+675.0*(x**3)-900.0*(x**4)+400.0*(x**5)\n\na = -1\nb = 1\nmuestras = 51\ntolera = 1e-12\niteramax = 100\n\n# PROCEDIMIENTO\n# Desarrollo anal\u00edtico con Sympy\nFx = sym.integrate(fx,x)\nFxn = sym.lambdify('x',Fx,'numpy')\nFiab = Fxn(b)-Fxn(a)\n\n# Busca igualar trapecio con Integral analitico\nfxn = sym.lambdify('x',fx,'numpy')\nbase = b-a\nmitad = base\/2\nxc = (a+b)\/2  # centro\ndiferencia = lambda x: Fiab-base*(fxn(xc-x)+fxn(xc+x))\/2\ndesplazado =  op.bisect(diferencia,0,mitad,\n                        xtol=tolera,maxiter=iteramax)\nfactor = desplazado\/mitad\n\n# Integral aproximando con trapecio\nx0 = xc - factor*mitad\nx1 = xc + factor*mitad\nFaprox = base*(fxn(x0)+fxn(x1))\/2\n\n# Integral cuadratura Gauss\nxa = xc + mitad\/np.sqrt(3)\nxb = xc - mitad\/np.sqrt(3)\nFcuadG = base*(fxn(xa)+fxn(xb))\/2\nerradofactor = np.abs(FcuadG - Faprox)\nerradoIntegral = np.abs(Fiab-Faprox)\n# SALIDA\nprint('funcion  fx:  ', fx)\nprint('Integral Fx:  ', Fx)\nprint('I analitico:  ', Fiab)\nprint('I aproximado: ', Faprox)\nprint('desplaza centro:  ', desplazado)\nprint('factor desplaza:  ', factor)\nprint('Factor CuadGauss: ', 1\/np.sqrt(3))\nprint('erradoFactor:   ', erradofactor)\nprint('error integral: ', erradoIntegral) \n\n# Grafica\n# Para GRAFICAR \n# Para gr\u00e1fica f(x)\nxi = np.linspace(a,b,muestras)\nfi = fxn(xi)\n\n# Para gr\u00e1fica Trapecio\nm = (fxn(x1)-fxn(x0))\/(x1-x0)\ntrapeciof = lambda x: fxn(x0)+m*(x-x0)\ntrapecioi = trapeciof(xi)\n\n# Areas Trapecio para cada punto que busca\nk = int(muestras\/2)\nxicg = xi&#x5B;k:muestras-1]\nFcg = &#x5B;base*(fxn(xi&#x5B;k+0])+fxn(xi&#x5B;k-0]))\/2]\nfor i in range(1,k,1):\n    untrapecio = base*(fxn(xi&#x5B;k+i])+fxn(xi&#x5B;k-i]))\/2\n    Fcg.append(untrapecio)\n\n# Punto buscado\nFiaprox = base*(fxn(x1)+fxn(x0))\/2\n\nFi = Fxn(xi)-Fxn(a)\n\n# Areas de curvas y trapecio\n\nplt.subplot(211) # Grafica superior\nplt.xlim(a,b)\nplt.plot(xi, fi, label='f(x)')\n# Solo fi\n# plt.fill_between(xi,0, fi,\n#                label='integral fi',\n#                 color='yellow')\n# usando cuadratura\nplt.fill_between(xi,0, trapecioi,\n                 label='Cuadratura 2 puntos',\n                 color='yellow')\nplt.axvline(x0,color='white')\nplt.axvline(x1,color='white')\nplt.plot(&#x5B;x0,x1],&#x5B;fxn(x0),fxn(x1)],\n         'ro', label='x0,x1')\nplt.axvline(0,color='black')\nplt.xlabel('x')\nplt.ylabel('f(x) y Cuadratura de 2 puntos')\nplt.legend()\n\n# Valores de integrales\nplt.subplot(212) # Grafica inferior\nplt.xlim(a,b)\nplt.axhline(Fiab, label='F&#x5B;a,b]')\n# plt.plot(xi,Fi,label='F(x)')\nplt.plot(xicg,Fcg,color='orange',label='Aprox Trapecio')\n\nplt.axvline(x1,color='yellow')\nplt.axvline((1\/np.sqrt(3))*(b-a)\/2 + xc ,color='magenta')\nplt.plot(x1,Fiaprox,'ro', label='x0,x1')\nplt.axvline(0,color='black')\n\nplt.xlabel('x')\nplt.legend()\nplt.ylabel('Integrando')\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p>Cuadratura Gauss:<\/p>\n\n\n\n<p><a href=\"#experimento\">Experimento<\/a> 2 puntos<\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><br><a name=\"experimento\"><\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Cuadratura Gauss: Experimento 2 puntos algoritmo Cuadratura con dos puntos - Experimento Para visualizar el concepto de Cuadratura de Gauss de dos puntos considere lo siguiente: Se tiene un corte transversal del un recipiente rectangular lleno de l\u00edquido limitado en x entre [-1,1], al que se le ha depositado encima otro recipiente con perfil f(x) [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-unidades","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[],"class_list":["post-6539","post","type-post","status-publish","format-standard","hentry","category-mn-u05"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6539","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=6539"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6539\/revisions"}],"predecessor-version":[{"id":22675,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6539\/revisions\/22675"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=6539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=6539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=6539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}