{"id":1834,"date":"2017-08-05T09:15:26","date_gmt":"2017-08-05T14:15:26","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=1834"},"modified":"2026-03-04T09:52:02","modified_gmt":"2026-03-04T14:52:02","slug":"cuadratura-gauss","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u05\/cuadratura-gauss\/","title":{"rendered":"5.5 Cuadratura de Gauss 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><a href=\"#concepto\">Cuadratura Gauss<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo2pts\">Algoritmo 2pts<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#tablapts\">Tabla<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmonpts\">algoritmo npts<\/a><br><a name=\"cuadraturagauss\"><\/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=\"concepto\">1. Cuadratura de Gauss<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Chapra 22.3 p655, Rodr\u00edguez 7.3 p294, Burden 4.7 p168<\/p>\n\n\n\n<p>La cuadratura de Gauss aproxima el integral de una funci\u00f3n en un intervalo [a,b] centrado en cero mediante un c\u00e1lculo num\u00e9rico con menos operaciones y evaluaciones de la funci\u00f3n. Se representa como una suma ponderada:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">I \\cong \\Big( \\frac{b-a}{2} \\Big) \\Big( c_0 f(x_a) + c_1 f(x_b)\\Big) <\/span>\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\/08\/cuadraturagauss2pts_01.png\" alt=\"cuadratura de Gauss de 2 puntos gr\u00e1fica\" class=\"wp-image-13636\" \/><\/figure>\n\n\n\n<p>para la f\u00f3rmula de dos puntos con referencia a una funci\u00f3n centrada en cero y ancho unitario a cada lado, se tiene:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c_0 = c_1 = 1, x_0 = -\\frac{1}{\\sqrt{3}}, x_1 = \\frac{1}{\\sqrt{3}} <\/span>\n\n\n\n<p>Para un intervalo de evaluaci\u00f3n desplazado en el eje <strong>x<\/strong> se requiere convertir los puntos al nuevo intervalo. Se desplaza el punto cero al centro del intervalo [a,b] y se corrige el desplazamiento hacia la izquierda y derecha del centro con x<sub>0<\/sub> y x<sub>1<\/sub>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"462\" height=\"219\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/cuadraturagaussxab_ani.gif\" alt=\"cuadratura de Gauss 2 puntos x_a x_b gr\u00e1fico animado\" class=\"wp-image-13637\" \/><\/figure>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_a = \\frac{b+a}{2} - \\frac{b-a}{2}\\Big(\\frac{1}{\\sqrt{3}} \\Big) <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_b = \\frac{b+a}{2} + \\frac{b-a}{2}\\Big(\\frac{1}{\\sqrt{3}} \\Big) <\/span>\n\n\n\n<p>con lo que el resultado aproximado del integral se convierte en:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I \\cong \\frac{b-a}{2}(f(x_a) + f(x_b)) <\/span>\n\n\n\n<p>cuya f\u00f3rmula es semejante a una mejor aproximaci\u00f3n de un trapecio, cuyos promedios de alturas son puntos internos de [a,b], concepto mostrado en la gr\u00e1fica.<\/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><a href=\"#concepto\">Cuadratura Gauss<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo2pts\">Algoritmo 2pts<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#tablapts\">Tabla<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmonpts\">algoritmo npts<\/a><br><a name=\"cuadraturagauss\"><\/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=\"ejercicio\">2. Ejercicio<\/h2>\n\n\n\n<p>Para el ejercicio y comparaci\u00f3n de resultado con los otros m\u00e9todos, se realiza el c\u00e1lculo para un tramo en el intervalo [a,b].<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\int_1^3 \\sqrt{x} \\sin(x) dx <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_a = \\frac{3+1}{2} - \\frac{3-1}{2}\\Big(\\frac{1}{\\sqrt{3}}\\Big)= 1.4226 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_b = \\frac{3+1}{2} + \\frac{3-1}{2}\\Big(\\frac{1}{\\sqrt{3}} \\Big) = 2.5773 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1.4226) = \\sqrt{1.4226} \\sin(1.4226) = 1.1796 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(2.5773) = \\sqrt{2.5773} \\sin(2.5773) = 0.8585 <\/span>\n\n\n\n<p>con lo que el resultado aproximado del integral se convierte en:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I \\cong \\frac{3-1}{2}(1.1796 + 0.8585) = 2.0382 <\/span>\n\n\n\n<p>que usando instrucciones de Python para obtener los valores:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>&gt;&gt;&gt; import numpy as np\n&gt;&gt;&gt; (3+1)\/2-(3-1)\/2*(1\/np.sqrt(3))\n1.4226497308103743\n&gt;&gt;&gt; (3+1)\/2+(3-1)\/2*(1\/np.sqrt(3))\n2.5773502691896257\n&gt;&gt;&gt; fx = lambda x: np.sqrt(x)*np.sin(x)\n&gt;&gt;&gt; fx(1.4226)\n1.1796544827404145\n&gt;&gt;&gt; fx(2.5773)\n0.8585957175067221\n&gt;&gt;&gt; ((3-1)\/2)*(fx(1.4226)+fx(2.5773))\n2.0382<\/code><\/pre>\n\n\n\n<p>el resultado se puede mejorar aumentando el n\u00famero de tramos en el intervalo [a,b]. Por ejemplo, el resultado usando <strong>4 tramos<\/strong> el resultado es semejante al usar el m\u00e9todo del trapecio con 128 tramos, lo que muestra el ahorro en c\u00e1lculos entre los m\u00e9todos<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Integral:  2.05357719003\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>Concepto:<\/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<p>Ejercicio:<\/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 - Ejercicio en Python\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/i6UuX3Ti_Mo?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<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">Cuadratura Gauss<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo2pts\">Algoritmo 2pts<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#tablapts\">Tabla<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmonpts\">algoritmo npts<\/a><br><a name=\"cuadraturagauss\"><\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"algoritmo2pts\">3. Algoritmo de 2 puntos con Python<\/h2>\n\n\n\n<p>Para el ejercicio anterior, usando al 4 segmentos y en cada uno aplicando Cuadratura de Gauss, el integral resultante es:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Factores Gauss-Legendre puntos: 2\nxgl: &#091;-0.5773502691896258, 0.5773502691896258]\ncgl: &#091;1.0, 1.0]\ntabla por intervalos &#091;a,b]\n&#091;a,b] : &#091;1.  1.5]\nxi : &#091;1.10566 1.39434]\nfi : &#091;0.93979 1.16248]\narea : 0.5255697290782242\n&#091;a,b] : &#091;1.5 2. ]\nxi : &#091;1.60566 1.89434]\nfi : &#091;1.26638 1.30494]\narea : 0.642828854689653\n&#091;a,b] : &#091;2.  2.5]\nxi : &#091;2.10566 2.39434]\nfi : &#091;1.24843 1.05163]\narea : 0.5750145898962924\n&#091;a,b] : &#091;2.5 3. ]\nxi : &#091;2.60566 2.89434]\nfi : &#091;0.82428 0.41638]\narea : 0.31016401636449004\nIntegral:  2.0535771900286597<\/code><\/pre>\n\n\n\n<p>Instrucciones en Python usando la Cuadratura de Gauss de dos puntos para una funci\u00f3n f(x):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code tu-clase-preformateado alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Integraci\u00f3n: Cuadratura de Gauss de 2 puntos\n# modelo con varios tramos entre &#x5B;a,b]\nimport numpy as np\n\n# INGRESO\nfx = lambda x: np.sqrt(x)*np.sin(x)\na = 1 # intervalo de integraci\u00f3n\nb = 3\ntramos = 4  # subintervalos a integrar\nprecision = 5 # decimales en tabla\n\n# PROCEDIMIENTO\n# cuadratura de 2 puntos\nn_puntos = 2\nxgl = &#x5B;-1\/np.sqrt(3),1\/np.sqrt(3)]\ncgl = &#x5B;1.,1.]\n# cuadratura de n_puntos, f\u00f3rmulas Gauss-Legendre\n#xgl, cgl = np.polynomial.legendre.leggauss(2)\n\nx_h = np.linspace(a,b,tramos+1)\ntabla = {}\nsuma = 0\nfor k in range(0,tramos,1):\n    a = x_h&#x5B;k]\n    b = x_h&#x5B;k+1]\n    centro = (a+b)\/2\n    mitad = (b-a)\/2\n    xa = centro + xgl&#x5B;0]*mitad\n    xb = centro + xgl&#x5B;1]*mitad\n\n    area = ((b-a)\/2)*(cgl&#x5B;0]*fx(xa) + cgl&#x5B;1]*fx(xb))\n    tabla&#x5B;k]= {'&#x5B;a,b]': np.array(&#x5B;a,b]),\n               'xi': np.array(&#x5B;xa,xb]),\n               'fi': np.array(&#x5B;fx(xa),fx(xb)]),\n               'area':area\n               }\n    suma = suma + area\n\n# SALIDA\nnp.set_printoptions(precision)\nprint('Factores Gauss-Legendre puntos:',n_puntos)\nprint('xgl:',xgl)\nprint('cgl:',cgl)\nprint('tabla por intervalos &#x5B;a,b]')\nfor k in range(0,tramos,1):\n    for entrada in tabla&#x5B;k]:\n        print(entrada,':',tabla&#x5B;k]&#x5B;entrada])\nprint('Integral: ', suma)\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><a href=\"#concepto\">Cuadratura Gauss<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo2pts\">Algoritmo 2pts<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#tablapts\">Tabla<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmonpts\">algoritmo npts<\/a><br><a name=\"cuadraturagauss\"><\/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=\"grafica\">4. Gr\u00e1fica por tramos<\/h2>\n\n\n\n<p>La gr\u00e1fica que complementa el resultado anterior, se realiza a\u00f1adiendo las instrucciones presentadas a continuaci\u00f3n.<\/p>\n\n\n\n<p>Considere que la gr\u00e1fica es \u00fatil con pocos tramos en el intervalo[a,b]<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"437\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/cuadraturaGauss2p_ntramos01.png\" alt=\"cuadratura de Gauss 2 puntos para n tramos\" class=\"wp-image-13638\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA -------------\n# concepto con 'pocos' tramos\/segmentos\nimport matplotlib.pyplot as plt\n\ntitulo = 'Cuadratura Gauss-Legendre puntos:'+str(n_puntos)\n\na = np.min(x_h); b = np.max(x_h)\nmuestras_k = tramos*10+1 # fx suave en grafico\nxk = np.linspace(a,b,muestras_k)\nfk = fx(xk)\n\n# tramos marcas de divisi\u00f3n\nfor i in range(0,tramos+1,1):\n    plt.axvline(x_h&#x5B;i],linestyle='dashed',\n                color='tab:gray')\nfor k in range(0,tramos,1):\n    xi = tabla&#x5B;k]&#x5B;'xi']\n    fi = tabla&#x5B;k]&#x5B;'fi']\n    for i in range(0,n_puntos,1):\n        plt.vlines(xi&#x5B;i],0,fi&#x5B;i],\n                   linestyle='dotted',\n                   color='gray')\n        plt.plot(xi&#x5B;i],fi&#x5B;i],'o',color='gray')\nif n_puntos&gt;2:\n    plt.fill_between(xk,0,fk,color='tab:olive')\nif n_puntos==2: # recta trapecio\n    for k in range(0,tramos,1):\n        xi = tabla&#x5B;k]&#x5B;'xi']\n        fi = tabla&#x5B;k]&#x5B;'fi']\n        df = (fi&#x5B;1]-fi&#x5B;0])\/(xi&#x5B;1]-xi&#x5B;0]) # pendiente\n        f0 = fi&#x5B;0] + df*(x_h&#x5B;k]-xi&#x5B;0])   # en xi&#x5B;i]\n        f1 = fi&#x5B;0] + df*(x_h&#x5B;k+1]-xi&#x5B;0]) # en xi&#x5B;i+1]\n        plt.fill_between(&#x5B;x_h&#x5B;k],x_h&#x5B;k+1]],\n                         0,&#x5B;f0,f1],\n                         color='tab:olive')\n        plt.plot(&#x5B;x_h&#x5B;k],x_h&#x5B;k+1]],&#x5B;f0,f1],\n                 linestyle='dashed',color='orange')\n# linea fx\nplt.plot(xk,fk, label='f(x)', color = 'blue')\nplt.title(titulo)\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.legend()\nplt.tight_layout()\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><a href=\"#concepto\">Cuadratura Gauss<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo2pts\">Algoritmo 2pts<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#tablapts\">Tabla<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmonpts\">algoritmo npts<\/a><br><a name=\"cuadraturagauss\"><\/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=\"tablapts\">5. Tabla Cuadratura de Gauss-Legendre para n puntos<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Chapra Tabla 22.1&nbsp; p661, Burden 10Ed Tabla 4.12 p172<\/p>\n\n\n\n<p>Para un integral con intervalo centrado en el origen.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I \\cong c_0 f(x_0) + c_1f(x_1) + \u2026 + c_{n-1}f(x_{n-1}) <\/span>\n\n\n\n<figure class=\"wp-block-table alignwide\"><table><thead><tr><th>Puntos<\/th><th>Factor de ponderaci\u00f3n<\/th><th>Argumentos de la funci\u00f3n<\/th><th>Error de truncamiento<\/th><\/tr><\/thead><tbody><tr><td>2<\/td><td>c0 = 1.0000000<br>c1 = 1.0000000<\/td><td>x0 = -0.577350269<br>x1 = 0.577350269<\/td><td>\u2245 f<sup>(4)(<\/sup>x )<\/td><\/tr><tr><td>3<\/td><td>c0 = 0.5555556<br>c1 = 0.8888889<br>c2 = 0.5555556<\/td><td>x0 = -0.774596669<br>x1 = 0.0<br>x2 = 0.774596669<\/td><td>\u2245 f<sup>(6)<\/sup>(x )<\/td><\/tr><tr><td>4<\/td><td>c0 = 0.3478548<br>c1 = 0.6521452<br>c2 = 0.6521452<br>c3 = 0.3478548<\/td><td>x0 = -0.861136312<br>x1 = -0.339981044<br>x2 = 0.339981044<br>x3 = 0.861136312<\/td><td>\u2245f (8)(x )<\/td><\/tr><\/tbody><\/table><\/figure>\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><a href=\"#concepto\">Cuadratura Gauss<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo2pts\">Algoritmo 2pts<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#tablapts\">Tabla<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmonpts\">algoritmo npts<\/a><br><a name=\"cuadraturagauss\"><\/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=\"algoritmonpts\">6. Algoritmo de Gauss-Legendre n_puntos<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>:&nbsp;<a href=\"https:\/\/numpy.org\/doc\/stable\/reference\/generated\/numpy.polynomial.legendre.leggauss.html\">np.polynomial.legendre.leggauss<\/a><\/p>\n\n\n\n<p>Para obtener los valores de la tabla, se puede usar la librer\u00eda Numpy.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport numpy as np\n# n_puntos Gauss-Legendre\nn_puntos = 2\nxg, cg = np.polynomial.legendre.leggauss(n_puntos)\nprint(&quot;xg&quot;,xg)\nprint(&quot;cg&quot;,cg)\n<\/pre><\/div>\n\n\n<p>que presenta como resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>xg &#091;-0.57735027  0.57735027]\ncg &#091;1. 1.]<\/code><\/pre>\n\n\n\n<p>donde se puede obtener los valores de la tabla con mas puntos.<\/p>\n\n\n\n<p>Usando la librer\u00eda Numpy para obtener los valores de la tabla, se modifica el algoritmo para usar n puntos.<\/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 n_puntos\n# modelo con varios tramos entre &#x5B;a,b]\nimport numpy as np\n\n# INGRESO\nfx = lambda x: np.sqrt(x)*np.sin(x)\na = 1 # intervalo de integraci\u00f3n\nb = 3\nn_puntos = 5 # n_puntos&gt;=2\ntramos = 3  # subintervalos a integrar\nprecision = 5 # decimales en tabla\n\n# PROCEDIMIENTO\n# cuadratura de n_puntos, f\u00f3rmulas Gauss-Legendre\nxgl, cgl = np.polynomial.legendre.leggauss(n_puntos)\n\nx_h = np.linspace(a,b,tramos+1) # tramos\ntabla = {}\nsuma = 0\nfor k in range(0,tramos,1):\n    a = x_h&#x5B;k] # intervalo&#x5B;a,b]\n    b = x_h&#x5B;k+1]\n    centro = (a+b)\/2\n    mitad = (b-a)\/2\n    xi=&#x5B;]; fi=&#x5B;]; suma_gl=0\n    for j in range(0,n_puntos,1):\n        xj = centro + xgl&#x5B;j]*mitad\n        fj = fx(xj)\n        suma_gl = suma_gl + cgl&#x5B;j]*fj\n        xi.append(xj)\n        fi.append(fj)\n    area = ((b-a)\/2)*suma_gl\n    tabla&#x5B;k]= {'&#x5B;a,b]': np.array(&#x5B;a,b]),\n               'xi': np.array(xi),\n               'fi': np.array(fi),\n               'area':area\n               }\n    suma = suma + area\n\n# SALIDA\nnp.set_printoptions(precision)\nprint('Factores Gauss-Legendre puntos:',n_puntos)\nprint('xgl:',xgl)\nprint('cgl:',cgl)\nprint('tabla por intervalos &#x5B;a,b]')\nfor k in range(0,tramos,1):\n    for entrada in tabla&#x5B;k]:\n        print(entrada,':',tabla&#x5B;k]&#x5B;entrada])\nprint('Integral: ', suma)\n<\/pre><\/div>\n\n\n<p>resultado del algoritmo:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Factores Gauss-Legendre puntos: 5\nxgl: &#091;-0.90618 -0.53847  0.       0.53847  0.90618]\ncgl: &#091;0.23693 0.47863 0.56889 0.47863 0.23693]\ntabla por intervalos &#091;a,b]\n&#091;a,b] : &#091;1.      1.66667]\nxi : &#091;1.03127 1.15384 1.33333 1.51282 1.63539]\nfi : &#091;0.87127 0.98214 1.1223  1.2279  1.27616]\narea : 0.7350121364546989\n&#091;a,b] : &#091;1.66667 2.33333]\nxi : &#091;1.69794 1.82051 2.      2.17949 2.30206]\nfi : &#091;1.29253 1.30741 1.28594 1.21116 1.12934]\narea : 0.8369414195585647\n&#091;a,b] : &#091;2.33333 3.     ]\nxi : &#091;2.36461 2.48718 2.66667 2.84616 2.96873]\nfi : &#091;1.07815 0.95996 0.74672 0.4912  0.29637]\narea : 0.4816765248057005\nIntegral:  2.053630080818964<\/code><\/pre>\n\n\n\n<p>La gr\u00e1fica se realiza con la secci\u00f3n gr\u00e1fica anterior.<\/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\/08\/cuadraturaGauss5p_ntramos01.png\" alt=\"gr\u00e1fica de cuadratura de Gauss de 5 puntos y ntramos\" class=\"wp-image-22673\" \/><\/figure>\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><a href=\"#concepto\">Cuadratura Gauss<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo2pts\">Algoritmo 2pts<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#tablapts\">Tabla<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmonpts\">algoritmo npts<\/a><br><a name=\"cuadraturagauss\"><\/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 Ejercicio Algoritmo 2pts gr\u00e1fica Tabla algoritmo npts 1. Cuadratura de Gauss Referencia: Chapra 22.3 p655, Rodr\u00edguez 7.3 p294, Burden 4.7 p168 La cuadratura de Gauss aproxima el integral de una funci\u00f3n en un intervalo [a,b] centrado en cero mediante un c\u00e1lculo num\u00e9rico con menos operaciones y evaluaciones de la funci\u00f3n. Se representa como [&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-1834","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\/1834","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=1834"}],"version-history":[{"count":29,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1834\/revisions"}],"predecessor-version":[{"id":22674,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1834\/revisions\/22674"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}