{"id":11489,"date":"2017-08-09T06:52:57","date_gmt":"2017-08-09T11:52:57","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=11489"},"modified":"2026-01-20T04:07:38","modified_gmt":"2026-01-20T09:07:38","slug":"diferenciacion-numerica-errado-intervalo","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u05\/diferenciacion-numerica-errado-intervalo\/","title":{"rendered":"5.7.1 Diferenciaci\u00f3n num\u00e9rica - Error con df\/dx en intervalo"},"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=\"#compara\">compara<\/a><\/p>\n\n\n\n<p><a href=\"#resultado\">resultados<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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=\"compara\">1. Compara derivadas num\u00e9ricas con anal\u00edticas<\/h2>\n\n\n\n<p>Para observar el efecto de disminuir <strong>h<\/strong> al aumentar los tramos, se realiza la gr\u00e1fica de la <strong>derivada df\/dx anal\u00edtica<\/strong> versus las <strong>derivadas num\u00e9ricas<\/strong> hacia atr\u00e1s, hacia centrada y hacia adelante.<\/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\/difnum_compara_ani.gif\" alt=\"diferenciaci\u00f3n num\u00e9rica compara gr\u00e1fico animado\" class=\"wp-image-21127\" \/><\/figure>\n\n\n\n<p>Se observa en la animaci\u00f3n la reducci\u00f3n del error en cada diferencia dividida.<\/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=\"#compara\">compara<\/a><\/p>\n\n\n\n<p><a href=\"#resultado\">resultados<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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=\"resultado\">2. Resultados del algoritmo<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>   tramos: <strong>4<\/strong> \t, h: <strong>0.5<\/strong>\n|errado_atras|:    0.3981193548993356\n|errado_centro|:   0.04939087954655119\n|errado_adelante|: 0.41231110309099034\n|errado_max|:      <strong>0.4<\/strong>1231110309099034\n&#091;  dfx,        df1_atras, df1_centro, df1_adelante]\n&#091;&#091; 0.9610378          nan         nan  0.76041177]\n &#091; 0.49386065  0.76041177  0.44446977  0.12852777]\n &#091;-0.26703531  0.12852777 -0.27540932 -0.67934641]\n &#091;-1.07746577 -0.67934641 -1.04151373 -1.40368104]\n &#091;-1.67397947 -1.40368104         nan         nan]]<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>   tramos: <strong>8<\/strong> \t, h: <strong>0.25<\/strong>\n|errado_atras|:    0.20757887012431775\n|errado_centro|:   0.016528173718511008\n|errado_adelante|: 0.20828851979214785\n|errado_max|:      <strong>0.20<\/strong>828851979214785<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>   tramos: <strong>32<\/strong> \t, h: <strong>0.062<\/strong>5\n|errado_atras|:    0.05218398011852454\n|errado_centro|:   0.0011877802167017393\n|errado_adelante|: 0.052183627077393824\n|errado_max|:      <strong>0.052<\/strong>18398011852454<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>   tramos: <strong>64<\/strong> \t, h: <strong>0.031<\/strong>25\n|errado_atras|:    0.026094601614190305\n|errado_centro|:   0.000302562296112141\n|errado_adelante|: 0.026094780174240162\n|errado_max|:      094780174240162<\/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=\"#compara\">compara<\/a><\/p>\n\n\n\n<p><a href=\"#resultado\">resultados<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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\">3. Algoritmo con Python<\/h2>\n\n\n\n<p>Las instrucciones en Python usadas para la gr\u00e1fica son:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Diferenciacion Numerica - 1ra Derivada\n# Compara resultados en un intervalo\nimport numpy as np\n\n# INGRESO\nfx = lambda x: np.sqrt(x)*np.sin(x)\ndfx = lambda x: np.sin(x)\/(2*np.sqrt(x))+ np.sqrt(x)*np.cos(x)\na = 1  # intervalo de integracion\nb = 3\ntramos = 64 # &gt;=2, al menos 2 tramos\n\n# PROCEDIMIENTO\nmuestras = tramos + 1\nh = (b-a)\/tramos\n# puntos de muestras\nxi = np.linspace(a,b,muestras)\nfi = fx(xi)\n\n# tabla para comparar derivada y diferencias divididas\ntabla = np.zeros(shape=(muestras,4),dtype=float)\nfor i in range(0,muestras,1): # muestras en intervalo\n    df1_atras = np.nan ; df1_centro = np.nan; df1_adelante = np.nan\n    \n    dfxi = dfx(xi&#x5B;i]) # derivada analitica, como referencia\n    if i&gt;0 and i&lt;muestras: # hacia Atras, diferencias divididas\n        df1_atras = (fi&#x5B;i]-fi&#x5B;i-1])\/h\n    if i&gt;0 and i&lt;(muestras-1): # Centro, diferencias divididas\n        df1_centro = (fi&#x5B;i+1]-fi&#x5B;i-1])\/(2*h)\n    if i&gt;=0 and i&lt;(muestras -1): # hacia Adelante, diferencias divididas\n        df1_adelante = (fi&#x5B;i+1]-fi&#x5B;i])\/h\n    tabla&#x5B;i]=&#x5B;dfxi,df1_atras,df1_centro,df1_adelante]\n\n# errado desde dfxi\nerrado_atras = np.max(np.abs(tabla&#x5B;1:,0]-tabla&#x5B;1:,1]))\nerrado_centro = np.max(np.abs(tabla&#x5B;1:muestras-1,0]-tabla&#x5B;1:muestras-1,2]))\nerrado_adelante = np.max(np.abs(tabla&#x5B;:muestras-1,0]-tabla&#x5B;:muestras-1,3]))\nerrado_max = np.max(&#x5B;errado_atras,errado_centro,errado_adelante])\n\n# SALIDA\nprint('   tramos:', tramos,'\\t, h:',h,)\nprint('|errado_atras|:   ',errado_atras)\nprint('|errado_centro|:  ',errado_centro)\nprint('|errado_adelante|:',errado_adelante)\nprint('|errado_max|:     ',errado_max)\nprint('&#x5B;  dfx,        df1_atras, df1_centro, df1_adelante]')\nprint(tabla)\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=\"#compara\">compara<\/a><\/p>\n\n\n\n<p><a href=\"#resultado\">resultados<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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 con Python<\/h2>\n\n\n\n<p>Instrucciones complementarias al algoritmo anterior.<\/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\n# fx suave aumentando muestras\nmuestrasfxSuave = tramos*10 + 1\nxk = np.linspace(a,b,muestrasfxSuave)\ndfk = dfx(xk)\n\n# Graficar f(x), puntos\nplt.plot(xk,dfk, label ='df(x)',linestyle='dotted')\nif tramos&lt;64:\n    plt.plot(xi,tabla&#x5B;:,0], 'o') # muestras\n\nplt.plot(xi,tabla&#x5B;:,1],label='df1_atras')\nplt.plot(xi,tabla&#x5B;:,2],label='df1_centrada')\nplt.plot(xi,tabla&#x5B;:,3],label='df1_adelante')\n\nplt.xlabel('xi')\nplt.ylabel('df(xi)')\ntxt = 'Diferenciaci n Num rica'\ntxt = txt + ', tramos:'+str(tramos)\ntxt = txt + ', h:'+str(h)\ntxt = txt + ', |errado_max|'+str(round(errado_max,4))\nplt.title(txt)\nplt.legend()\nplt.tight_layout()\n\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=\"#compara\">compara<\/a><\/p>\n\n\n\n<p><a href=\"#resultado\">resultados<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>compara resultados algoritmo gr\u00e1fica 1. Compara derivadas num\u00e9ricas con anal\u00edticas Para observar el efecto de disminuir h al aumentar los tramos, se realiza la gr\u00e1fica de la derivada df\/dx anal\u00edtica versus las derivadas num\u00e9ricas hacia atr\u00e1s, hacia centrada y hacia adelante. Se observa en la animaci\u00f3n la reducci\u00f3n del error en cada diferencia dividida. compara [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"wp-custom-template-entrada-mn-unidades","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[],"class_list":["post-11489","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\/11489","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=11489"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/11489\/revisions"}],"predecessor-version":[{"id":21129,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/11489\/revisions\/21129"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=11489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=11489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=11489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}