{"id":923,"date":"2017-08-01T09:00:35","date_gmt":"2017-08-01T14:00:35","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=923"},"modified":"2026-03-08T09:13:20","modified_gmt":"2026-03-08T14:13:20","slug":"regla-trapecio","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u05\/regla-trapecio\/","title":{"rendered":"5.1 Regla del Trapecio para Integraci\u00f3n num\u00e9rica 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\">Regla trapecio<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofx\">Algoritmo f(x)<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmoxf\">Algoritmo&nbsp;xi,fi<\/a><br><a name=\"integratrapecio\"><\/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. Regla del Trapecio<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Chapra 21.1 p621&nbsp; Burden 4.3 p142, Rodr\u00edguez 7.1.1 p27<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I \\cong \\frac{h}{2}(f(x_0)+f(x_1))<\/span>\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\/reglatrapecio_ani.gif\" alt=\"regla trapecio gr\u00e1fico animado\" class=\"wp-image-13609\" \/><\/figure>\n\n\n\n<p>La integraci\u00f3n num\u00e9rica con la regla del trapecio usa un<strong> polinomio de primer grado<\/strong> como aproximaci\u00f3n de f(x) entre los extremos&nbsp;del intervalo [a,b].<\/p>\n\n\n\n<p>Es la primera de las formulas cerradas de Newton-Cotes.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I = \\int_{a}^{b} f(x) dx \\cong \\int_{a}^{b} f_1 (x) dx <\/span>\n\n\n\n<p>usando el intervalo entre [a,b] el polinomio se aproxima con una l\u00ednea recta:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f_1 (x) = f(a) + \\frac{f(b)-f(a)}{b-a} (x-a) <\/span>\n\n\n\n<p>el \u00e1rea bajo esta l\u00ednea recta es una aproximaci\u00f3n de la integral de f(x) entre los l\u00edmites a&nbsp;y b<\/p>\n\n\n\n<p>El resultado del integral es la regla del trapecio para el intervalo [a,b]:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I \\cong (b-a) \\frac{f(a)+f(b)}{2}<\/span>\n\n\n\n<p>que se interpreta como la multiplicaci\u00f3n entre la base y altura promedio de un trapecio. Tambi\u00e9n se llega al resultando sumando las \u00e1reas de sus componentes: rect\u00e1ngulo y tri\u00e1ngulo.<\/p>\n\n\n\n<p>Para disminuir el error, para un intervalo mas grande [a,b] se divide el intervalo en varios <strong>tramos<\/strong> de tama\u00f1o <strong>h<\/strong>. El integral de un tramo se define como:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> h = \\frac{b-a}{tramos}<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I \\cong \\frac{h}{2}(f(x_i)+f(x_i+h))<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I \\cong \\frac{h}{2}(f(x_i)+f(x_{i+1}))<\/span>\n\n\n\n<p>El error de truncamiento se encuentra como el integral del t\u00e9rmino que le sigue al polinomio de Taylor en la aproximaci\u00f3n, es decir el de grado 2, que al integrarlo tiene un orden de h<sup>3<\/sup>. (Rodr\u00edguez p275)<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> error_{truncar} = -\\frac{h^3}{12}f''(z)<\/span>\n\n\n\n<p class=\"has-text-align-center\">a &lt; z &lt; b<\/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\">Regla trapecio<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofx\">Algoritmo f(x)<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmoxf\">Algoritmo&nbsp;xi,fi<\/a><br><a name=\"integratrapecio\"><\/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 de Integraci\u00f3n con el m\u00e9todo del trapecio<\/h2>\n\n\n\n<p>Para integrar la funci\u00f3n&nbsp; en el intervalo [1,3] con 4, 16, 32 ,64 y 128 tramos,<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">f(x)= \\sqrt {(x)} \\sin(x)<\/span>\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\/reglatrapecio01.png\" alt=\"regla trapecio para 4 tramos\" class=\"wp-image-13610\" \/><\/figure>\n\n\n\n<p><strong>Tramos<\/strong> = 4<\/p>\n\n\n\n<p>El intervalo [1,3] se divide en tramos con tama\u00f1o de paso <strong>h<\/strong><\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> h=\\frac{b-a}{tramos}=\\frac{3-1}{4}= 0.5<\/span>\n\n\n\n<p>para cada tramo, el \u00e1rea de un trapecio es:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">A_1 = \\frac{0.5}{2} (f(1)+f(1+0.5))= 0.5157<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">A_2 = \\frac{0.5}{2} (f(1.5)+f(1.5+0.5))= 0.6269<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">A_3 = \\frac{0.5}{2} (f(2)+f(2+0.5))= 0.5580<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">A_4 = \\frac{0.5}{2} (f(2.5)+f(2.5+0.5))= 0.2976<\/span>\n\n\n\n<p>y el integral de todo el intervalo es la suma de todos los trapecios.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Integral = A_1+ A_2+ A_3+A_4 = 1.9984<\/span>\n\n\n\n<p>Siguiendo el procedimiento, para cada cantidad de tramos en el intervalo, los resultados ser\u00e1n:<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/reglatrapecio01.png\" alt=\"regla trapecio para 4 tramos\" class=\"wp-image-13610\" style=\"width:350px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>tramos: 4\nIntegral fx con trapecio: 1.99841708623<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image alignleft size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/reglatrapecio02.png\" alt=\"reglat rapecio tramos 16\" class=\"wp-image-22770\" style=\"width:350px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>tramos:  16\nIntegral fx con trapecio: 2.05019783717<\/code><\/pre>\n\n\n\n<p>.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/reglatrapecio03.png\" alt=\"regla trapecio tramos 32\" class=\"wp-image-22771\" style=\"width:350px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>tramos:  32\nIntegral fx con trapecio: 2.052772<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image alignleft size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/reglatrapecio04.png\" alt=\"regla trapecio tramos 64\" class=\"wp-image-22772\" style=\"width:350px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>tramos:  64\nIntegral fx con trapecio: 2.05341563776<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>tramos: 128\nIntegral fx con trapecio:  2.05357647096<\/code><\/pre>\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\">Regla trapecio<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofx\">Algoritmo f(x)<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmoxf\">Algoritmo&nbsp;xi,fi<\/a><br><a name=\"integratrapecio\"><\/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=\"algoritmofx\">3. Algoritmo&nbsp;para integral f(x) en Python<\/h2>\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=\"Regla del trapecio para integraci\u00f3n num\u00e9rica con Python\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/T454EAQcWR8?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>Algoritmo con f\u00f3rmula simplificada para varios tramos, con puntos de <strong>muestras equidistantes h<\/strong>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; highlight: [21]; title: ; notranslate\" title=\"\">\n# Regla de los trapecios: f(x) entre &#x5B;a,b],tramos\nimport numpy as np\n\n# INGRESO\nfx = lambda x: np.sqrt(x)*np.sin(x)\n\na = 1  # intervalo de integraci\u00f3n\nb = 3\ntramos = 4 # tramos trapecio\n\n# PROCEDIMIENTO\nmuestras = tramos + 1\nxi = np.linspace(a,b,muestras)\nfi = fx(xi)\n\n# Regla del Trapecio\nsuma = 0 # integral num\u00e9rico\ni = 0\nwhile (i+1)&lt;muestras:\n    h = xi&#x5B;i+1]-xi&#x5B;i] # incluye tramos desiguales\n    trapecio = (h\/2)*(fi&#x5B;i]+fi&#x5B;i+1])\n    suma = suma + trapecio\n    i = i+1\n\n# SALIDA\nprint('tramos: ', tramos)\nprint('Integral fx con trapecio: ', 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\">Regla trapecio<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofx\">Algoritmo f(x)<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmoxf\">Algoritmo&nbsp;xi,fi<\/a><br><a name=\"integratrapecio\"><\/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 de puntos para integrar con trapecio<\/h2>\n\n\n\n<p>La gr\u00e1fica como ayuda did\u00e1ctica, si la cantidad de tramos sea \"poca\", muestra los trapecios, si aumenta la cantidad de tramos, no es necesario poner l\u00edneas verticales en blanco para separar los trapecios.<\/p>\n\n\n\n<p>La secci\u00f3n de 'fx suave aumentando muestras' se realiza solo si se ha definido la funci\u00f3n fx, que permite comparar en la gr\u00e1fica las diferencias entre fx y los trapecios. Cuando solo se usan muestras, esta secci\u00f3n se omite dentro del algoritmo de la gr\u00e1fica.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA ---------------------\nimport matplotlib.pyplot as plt\n\ntitulo = 'Regla de Trapecios'\ntitulo = titulo + ', tramos:'+str(tramos)\ntitulo = titulo + ', Area:'+str(suma)\n\ntry:\n    # fx suave aumentando muestras\n    muestrasfxSuave = tramos*10 + 1\n    xk = np.linspace(a,b,muestrasfxSuave)\n    fk = fx(xk)\nexcept NameError:\n    # falta variables a,b,muestras y la funci\u00f3n fx\n    fk = fi # existen solo muestras\n    xk = xi\n\n# Trapecios relleno y bordes, cada 1 tramo\nfor i in range(0,muestras,1):\n    x_tramo = xi&#x5B;i:(i+1)+1]\n    f_tramo = fi&#x5B;i:(i+1)+1]\n    \n    relleno = 'lightgreen'\n    if (i%2)==0: # i m\u00faltiplo 2, o par\n        relleno ='lightblue'\n    plt.fill_between(x_tramo,f_tramo,f_tramo*0,\n                     color=relleno)\n    # Divisiones entre tramos\n    plt.vlines(xi&#x5B;i],0,fi&#x5B;i],linestyle='dotted',\n               color='orange')\n\n# Graficar f(x), puntos\nplt.plot(xk,fk, label ='f(x)')\nplt.plot(xi,fi, marker='o',linestyle='dotted',\n         color='orange', label ='muestras')\n\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.title(titulo)\nplt.legend()\nplt.tight_layout()\n\nplt.show()\n<\/pre><\/div>\n\n\n<p>Para rellenar el \u00e1rea bajo la curva con base en eje x, se usa la instrucci\u00f3n <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code><strong><em>plt.fill_between<\/em><\/strong>(x_tramo,f_tramo,f_tramo*0,<\/code>                 color='green')<\/code><\/pre>\n\n\n\n<p><br>La divisi\u00f3n de los trapecios con una l\u00ednea naranja (orange) se realiza con la instrucci\u00f3n <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code><em><strong>plt.vlines<\/strong><\/em>(xi&#091;i],0,fi&#091;i],linestyle='dotted',<\/code>           color='orange')<\/code><\/pre>\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\">Regla trapecio<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofx\">Algoritmo f(x)<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmoxf\">Algoritmo&nbsp;xi,fi<\/a><br><a name=\"integratrapecio\"><\/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=\"algoritmoxf\">5. Algoritmo para x[i], f[i] como muestras en Python<\/h2>\n\n\n\n<p>Algoritmo usando las muestras y para tramos que pueden tener distancias arbitrarias. En este caso se usa la <strong>formula del<\/strong> \u00e1rea del <strong>trapecio<\/strong> para cada tramo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>xi = &#091;1. , 1.5, 2. , 2.5, 3. ] \nfi = &#091;0.84147098, 1.22167687, 1.28594075, 0.94626755, 0.24442702]<\/code><\/pre>\n\n\n\n<p>Usado para ejercicios donde los datos proporcionados son muestras. Se adapta el bloque de ingreso y el procedimiento inicia desde \"Regla de Trapecio\". La cantidad de tramos ser\u00e1 el numero de muestras menos uno <code>tramos = len(xi) - 1 <\/code>.&nbsp; La gr\u00e1fica se realiza con las instrucciones de la secci\u00f3n anterior.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; highlight: [21]; title: ; notranslate\" title=\"\">\n# Regla de los trapecios para muestras xi,fi\nimport numpy as np\n\n# INGRESO\nxi = &#x5B;1. , 1.5, 2. , 2.5, 3. ]\nfi = &#x5B;0.84147098, 1.22167687, 1.28594075,\n      0.94626755, 0.24442702]\n\n# PROCEDIMIENTO\n# vectores como arreglo, n\u00fameros reales\nxi = np.array(xi,dtype=float)\nfi = np.array(fi,dtype=float)\nmuestras = len(xi)\ntramos = muestras-1\n\n# Regla del Trapecio\nsuma = 0 # integral numerico\ni = 0\nwhile (i+1)&lt;muestras:\n    dx = xi&#x5B;i+1]-xi&#x5B;i] # incluye tramos desiguales\n    trapecio = (dx\/2)*(fi&#x5B;i]+fi&#x5B;i+1])\n    suma = suma + trapecio\n    i = i+1\n\n# SALIDA\nprint('tramos: ',tramos)\nprint('Integral fx con trapecio: ',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\">Regla trapecio<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofx\">Algoritmo f(x)<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmoxf\">Algoritmo&nbsp;xi,fi<\/a><br><a name=\"integratrapecio\"><\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Regla trapecio Ejercicio Algoritmo f(x) gr\u00e1fica Algoritmo&nbsp;xi,fi 1. Regla del Trapecio Referencia: Chapra 21.1 p621&nbsp; Burden 4.3 p142, Rodr\u00edguez 7.1.1 p27 La integraci\u00f3n num\u00e9rica con la regla del trapecio usa un polinomio de primer grado como aproximaci\u00f3n de f(x) entre los extremos&nbsp;del intervalo [a,b]. Es la primera de las formulas cerradas de Newton-Cotes. usando el [&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-923","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\/923","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=923"}],"version-history":[{"count":10,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/923\/revisions"}],"predecessor-version":[{"id":22776,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/923\/revisions\/22776"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}