{"id":1005,"date":"2017-10-03T09:05:33","date_gmt":"2017-10-03T14:05:33","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=1005"},"modified":"2026-03-14T19:51:41","modified_gmt":"2026-03-15T00:51:41","slug":"edp-parabolicas-metodo-explicito","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u07\/edp-parabolicas-metodo-explicito\/","title":{"rendered":"7.1.1 EDP Parab\u00f3licas m\u00e9todo expl\u00edcito 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=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3lica<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo <a href=\"#explicito\">expl\u00edcito<\/a>:<\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/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=\"ejercicio\">1. Ejercicio - EDP Parab\u00f3lica<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>:&nbsp; Chapra 30.2 p888 pdf912,&nbsp;Burden 9Ed 12.2 p725, Rodr\u00edguez 10.2 p406<\/p>\n\n\n\n<p>Siguiendo el tema anterior en <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3licas<\/a>, para resolver la parte num\u00e9rica considere como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Valores de frontera: <strong>T<\/strong>a = 60, <strong>T<\/strong>b = 40, <strong>T<\/strong>0 = 25<br>Longitud en <strong>x<\/strong>: a = 0, b = 1,&nbsp; Constante <strong>K<\/strong>= 4<br>Tama\u00f1o de paso: dx = 0.1, dt = dx\/10<\/code><\/pre>\n\n\n\n<p>Para la ecuaci\u00f3n diferencial parcial parab\u00f3lica:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial ^2 u}{\\partial x ^2} = K\\frac{\\partial u}{\\partial t}<\/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\/10\/EdpParabolica2_animado.gif\" alt=\"EDP Parab\u00f3lica gr\u00e1fico 3D animado\" class=\"wp-image-13869\" \/><\/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=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3lica<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo <a href=\"#explicito\">expl\u00edcito<\/a>:<\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/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=\"explicito\">2. M\u00e9todo Expl\u00edcito - paso a paso<\/h2>\n\n\n\n<p>Se usan las diferencias divididas, donde se requieren dos valores para la derivada de orden uno y tres valores para la derivada de orden dos:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial^2 u}{\\partial x^2} = \\frac{u_{i+1,j} - 2 u_{i,j} + u_{i-1,j}}{(\\Delta x)^2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial u}{\\partial t} = \\frac{u_{i,j+1} - u_{i,j} }{\\Delta t} <\/span>\n\n\n\n<p>La selecci\u00f3n de las diferencias divididas corresponden a los puntos que se quieren usar para el c\u00e1lculo, se observan mejor en la gr\u00e1fica de la malla. La l\u00ednea de referencia es el tiempo t<sub>0<\/sub><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1085\" height=\"693\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/10\/EDP_Malla_BarraMetalica03.png\" alt=\"\" class=\"wp-image-21082\" \/><\/figure>\n\n\n\n<p>Luego se sustituyen en la ecuaci\u00f3n del problema, obteniendo:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{(\\Delta x)^2} = K\\frac{u_{i,j+1}-u_{i,j}}{\\Delta t}<\/span>\n\n\n\n<p>De la gr\u00e1fica se destaca que en la f\u00f3rmula solo hay un valor desconocido, destacado por el punto en amarillo dentro del tri\u00e1ngulo. En la ecuaci\u00f3n se representa por U[i,j+1].<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\Delta t}{K} \\left( \\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{(\\Delta x)^2} \\right) = \\cancel{K}\\frac{u_{i,j+1}-u_{i,j}}{\\cancel{\\Delta t}}\\frac{\\cancel{\\Delta t}}{\\cancel{K}}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\Delta t}{K (\\Delta x)^2} \\left( u_{i+1,j}-2u_{i,j}+u_{i-1,j} \\right) = u_{i,j+1}-u_{i,j}<\/span>\n\n\n\n<p>Despejando la ecuaci\u00f3n, se agrupan t\u00e9rminos constantes:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \u03bb = \\frac{\\Delta t}{K (\\Delta x)^2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda \\left( u_{i+1,j}-2u_{i,j}+u_{i-1,j} \\right) = u_{i,j+1}-u_{i,j}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda u_{i+1,j} - 2 \\lambda u_{i,j}+ \\lambda u_{i-1,j} = u_{i,j+1}-u_{i,j}<\/span>\n\n\n\n<p>quedando la ecuaci\u00f3n, con los t\u00e9rminos ordenados de izquierda a derecha como en la gr\u00e1fica:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{i,j+1} = \\lambda u_{i-1,j} +(1-2\\lambda)u_{i,j}+\\lambda u_{i+1,j}<\/span>\n\n\n\n<p>Al resolver se encuentra que que cada valor en un punto amarillo se calcula como una suma ponderada de valores conocidos, por lo que el desarrollo se conoce como el <strong>m\u00e9todo expl\u00edcito<\/strong>.<\/p>\n\n\n\n<p>La ponderaci\u00f3n est\u00e1 determinada por los t\u00e9rminos con los factores P, Q, y R.<\/p>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-23441af8 wp-block-group-is-layout-flex\">\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P = \\lambda <\/span>\n\n\n\n<p>;<\/p>\n\n\n\n<p class=\"has-text-align-center\"><span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Q = 1-2\\lambda <\/span><\/p>\n\n\n\n<p>;<\/p>\n\n\n\n<p class=\"has-text-align-right\"><span class=\"wp-katex-eq katex-display\" data-display=\"true\"> R = \\lambda <\/span><\/p>\n<\/div>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{i ,j+1} = Pu_{i-1,j} + Qu_{i,j} + Ru_{i+1,j}<\/span>\n\n\n\n<p>Para el ejercicio, el valor num\u00e9rico de lambda es:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \u03bb = \\frac{\\Delta t}{K (\\Delta x)^2} = \\frac{0.1\/10}{4 (0.1)^2} = \\frac{1}{4} <\/span>\n\n\n\n<p>Con lo que P = 1\/4, Q = 1\/2 y R=1\/4.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{i ,j+1} = \\frac{u_{i-1,j}}{4} + \\frac{u_{i,j}}{2} + \\frac{u_{i+1,j}}{4}<\/span>\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=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3lica<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo <a href=\"#explicito\">expl\u00edcito<\/a>:<\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/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=\"analitico\">3. Desarrollo anal\u00edtico - paso a paso<\/h2>\n\n\n\n<p>Se muestran tres iteraciones para j=0, que corresponden a las tres primeras casillas de la matriz U(i,j).<\/p>\n\n\n\n<p><strong>j=0 ; i=1<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>          U(0, 0)   U(1, 0)   U(2, 0)\nU(1, 1) = \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n             4         2         4   \n           60     25     25\nU(1, 1) = \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\n           4       2      4  \nU(1, 1) = 33.75<\/code><\/pre>\n\n\n\n<p><strong>j=0 ; i=2<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>j=0 ; i=2\n          U(1, 0)   U(2, 0)   U(3, 0)\nU(2, 1) = \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n             4         2         4   \n           25     25     25\nU(2, 1) = \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\n            4      2      4 \nU(2, 1) = 25.0<\/code><\/pre>\n\n\n\n<p><strong>j=0 ; i=3<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>          U(2, 0)   U(3, 0)   U(4, 0)\nU(3, 1) = \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n             4         2         4   \n           25     25     25\nU(3, 1) = \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\n            4      2      4    \nU(3, 1) = 25.0<\/code><\/pre>\n\n\n\n<p>F\u00f3rmulas que se desarrollan usando un algoritmo y considerando que al disminuir los valores de \u0394x y \u0394t la cantidad de operaciones aumenta.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"439\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/10\/EDP_Parabolica01.png\" alt=\"EDP Parab\u00f3lica gr\u00e1fico de l\u00edneas por tiempo\" class=\"wp-image-13865\" \/><\/figure>\n\n\n\n<p>Queda por revisar la <em><strong>convergencia y estabilidad<\/strong><\/em> de la soluci\u00f3n a partir de los O(h) de cada aproximaci\u00f3n usada.<\/p>\n\n\n\n<p><em><strong>Revisar los criterios en<\/strong><\/em>: Chapra&nbsp;30.2.1 p891 pdf915,&nbsp;Burden 9Ed 12.2 p727, Rodr\u00edguez 10.2.2 pdf409 .<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda \\leq \\frac{1}{2} <\/span>\n\n\n\n<p>Cuando \u03bb \u2264 1\/2 se tiene como resultado una soluci\u00f3n donde los errores no crecen, sino que oscilan.<\/p>\n\n\n\n<p>Haciendo \u03bb \u2264 1\/4 asegura que la soluci\u00f3n no oscilar\u00e1.<\/p>\n\n\n\n<p>Tambi\u00e9n se sabe que con \u03bb= 1\/6 se tiende a minimizar los errores por truncamiento (v\u00e9ase Carnahan y cols., 1969).<\/p>\n\n\n\n<p>Para resolver la parte num\u00e9rica considere que:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Valores de frontera: <strong>T<\/strong>a = 60, <strong>T<\/strong>b = 40, <strong>T<\/strong>0 = 25<br>Longitud en <strong>x<\/strong>: a = 0, b = 1,&nbsp; Constante <strong>K<\/strong>= 4<br>Tama\u00f1o de paso: dx = 0.1, dt = dx\/10<\/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=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3lica<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo <a href=\"#explicito\">expl\u00edcito<\/a>:<\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/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\">4. Algoritmo en Python para M\u00e9todo expl\u00edcito<\/h2>\n\n\n\n<p>Se muestra una tabla resumida de resultados a forma de ejemplo.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>M\u00e9todo expl\u00edcito EDP Parab\u00f3lica\nlambda:  0.25\nx: &#091;0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]\nt: &#091;0.   0.01 0.02 0.03 0.04] ... 1.0\nTabla de resultados en malla EDP Parab\u00f3lica\nj, U&#091;:,: 5 ], primeras iteraciones de  100\n5 &#091;60.   44.21 32.93 27.29 25.41 25.05 25.18 25.98 28.4  33.23 40.  ]\n4 &#091;60.   42.77 31.29 26.37 25.14 25.   25.06 25.59 27.7  32.62 40.  ]\n3 &#091;60.   40.86 29.38 25.55 25.   25.   25.   25.23 26.88 31.8  40.  ]\n2 &#091;60.   38.12 27.19 25.   25.   25.   25.   25.   25.94 30.62 40.  ]\n1 &#091;60.   33.75 25.   25.   25.   25.   25.   25.   25.   28.75 40.  ]\n0 &#091;60. 25. 25. 25. 25. 25. 25. 25. 25. 25. 40.]\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>Se presenta la propuesta del algoritmo EDP parab\u00f3licas para el m\u00e9todo expl\u00edcito.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; highlight: [26,27,28,52]; title: ; notranslate\" title=\"\">\n# EDP parab\u00f3licas d2u\/dx2  = K du\/dt\n# m\u00e9todo expl\u00edcito,usando diferencias divididas\nimport numpy as np\n\n# INGRESO\n# Valores de frontera\nTa = 60  # izquierda de barra\nTb = 40  # derecha de barra\n#Tc = 25 # estado inicial de barra en x\nfxc = lambda x: 25 + 0*x # f(x) en tiempo inicial\n\n# dimensiones de la barra\na = 0  # longitud en x\nb = 1\nt0 = 0 # tiempo inicial, aumenta con dt en n iteraciones\n\nK = 4     # Constante K\ndx = 0.1  # muestreo en x, tama\u00f1o de paso\ndt = dx\/10\n\nn = 100  # iteraciones en tiempo\nverdigitos = 2   # decimales a mostrar en tabla de resultados\n\n# coeficientes de U&#x5B;x,t]. factores P,Q,R, \nlamb = dt\/(K*dx**2)\nP = lamb       # izquierda P*U&#x5B;i-1,j]\nQ = 1 - 2*lamb # centro Q*U&#x5B;i,j]\nR = lamb       # derecha R*U&#x5B;i+1,j]\n\n# PROCEDIMIENTO\n# iteraciones en x, longitud\nxi = np.arange(a,b+dx\/2,dx)\nm = len(xi) \nultimox = m-1\nultimot = n-1\n\n# u&#x5B;xi,tj], tabla de resultados\nu = np.zeros(shape=(m,n+1), dtype=float)\n\n# u&#x5B;i,j], valores iniciales\nu&#x5B;0,:] = Ta  # Izquierda\nu&#x5B;ultimox,:] = Tb  # derecha\n# estado inicial de barra en x, Tc\nfic = fxc(xi) # f(x) en tiempo inicial\nu&#x5B;1:ultimox,0] = fic&#x5B;1:ultimox]\n\n# Calcula U para cada tiempo + dt\ntj = np.arange(t0,(n+1)*dt,dt)\nfor j  in range(0,n,1):\n    for i in range(1,ultimox,1):\n        # ecuacion discreta, entre &#x5B;1,ultimox]\n        u&#x5B;i,j+1] = P*u&#x5B;i-1,j] + Q*u&#x5B;i,j] + R*u&#x5B;i+1,j]\n\n# SALIDA\nj_mostrar = 5\nnp.set_printoptions(precision=verdigitos)\nprint('M\u00e9todo expl\u00edcito EDP Parab\u00f3lica')\nprint('lambda: ',np.around(lamb,verdigitos))\nprint('x:',xi)\nprint('t:',tj&#x5B;0:j_mostrar],'...',tj&#x5B;-1])\nprint('Tabla de resultados en malla EDP Parab\u00f3lica')\nprint('j, U&#x5B;:,:',j_mostrar,'], primeras iteraciones de ',n)\nfor j in range(j_mostrar,-1,-1):\n    print(j,u&#x5B;:,j])\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=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3lica<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo <a href=\"#explicito\">expl\u00edcito<\/a>:<\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/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\">5. Gr\u00e1fica con Python para M\u00e9todo expl\u00edcito<\/h2>\n\n\n\n<p>Si la cantidad de puntos aumenta al disminuir \u0394x y \u0394t, es mejor disminuir la cantidad de curvas a usar en el gr\u00e1fico para evitar superponerlas. Se usa el par\u00e1metro 'salto' para indicar cada cu\u00e1ntas curvas calculadas se incorporan en 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\ntramos = 10\nsalto = int(n\/tramos) # evita muchas l\u00edneas\nif (salto == 0):\n    salto = 1\nfor j in range(0,n,salto):\n    vector = u&#x5B;:,j]\n    plt.plot(xi,vector)\n    plt.plot(xi,vector, '.',color='red')\nplt.xlabel('x&#x5B;i]')\nplt.ylabel('u&#x5B;j]')\nplt.title('Soluci\u00f3n EDP parab\u00f3lica')\nplt.show()\n<\/pre><\/div>\n\n\n<p>Note que en la gr\u00e1fica se toma como coordenadas x vs t, mientras que para la soluci\u00f3n de la malla en la matriz las se usan filas y columnas. En la matriz el primer \u00edndice es fila y el segundo \u00edndice es columna.<\/p>\n\n\n\n<p>En el caso de una gr\u00e1fica que se realice usando los ejes x,t,U en tres dimensiones se requiere usar las instrucciones:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA en 3D ------\ntj = np.arange(0,n*dt,dt)\ntk = np.zeros(tramos,dtype=float)\n\n# Extrae parte de la matriz U,acorde a los tramos\nU = np.zeros(shape=(m,tramos),dtype=float)\nfor k in range(0,tramos,1):\n    U&#x5B;:,k] = u&#x5B;:,k*salto]\n    tk&#x5B;k] = tj&#x5B;k*salto]\n# Malla para cada eje X,Y\nXi, Yi = np.meshgrid(xi,tk)\nU = np.transpose(U)\n\nfig_3D = plt.figure()\ngraf_3D = fig_3D.add_subplot(111, projection='3d')\ngraf_3D.plot_wireframe(Xi,Yi,U, color ='blue')\ngraf_3D.plot(xi&#x5B;0],tk&#x5B;1],U&#x5B;1,0],'o',color ='orange')\ngraf_3D.plot(xi&#x5B;1],tk&#x5B;1],U&#x5B;1,1],'o',color ='green')\ngraf_3D.plot(xi&#x5B;2],tk&#x5B;1],U&#x5B;1,2],'o',color ='green')\ngraf_3D.plot(xi&#x5B;1],tk&#x5B;2],U&#x5B;2,1],'o',color ='salmon',\n             label='U&#x5B;i,j+1]')\ngraf_3D.set_title('EDP Parab\u00f3lica')\ngraf_3D.set_xlabel('x')\ngraf_3D.set_ylabel('t')\ngraf_3D.set_zlabel('U')\ngraf_3D.legend()\ngraf_3D.view_init(35, -45)\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=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3lica<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo <a href=\"#explicito\">expl\u00edcito<\/a>:<\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/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<p class=\"style-scope ytd-watch-metadata\">Solving the heat equation | DE3.&nbsp;3Blue1Brown. 16-junio-2019<\/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=\"Solving the heat equation | DE3\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/ToIXSwZ1pJU?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=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-parabolicas\/\" data-type=\"post\" data-id=\"2041\">EDP Parab\u00f3lica<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo <a href=\"#explicito\">expl\u00edcito<\/a>:<\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/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>EDP Parab\u00f3lica ejercicio M\u00e9todo expl\u00edcito: Anal\u00edtico Algoritmo gr\u00e1fica 1. Ejercicio - EDP Parab\u00f3lica Referencia:&nbsp; Chapra 30.2 p888 pdf912,&nbsp;Burden 9Ed 12.2 p725, Rodr\u00edguez 10.2 p406 Siguiendo el tema anterior en EDP Parab\u00f3licas, para resolver la parte num\u00e9rica considere como: Para la ecuaci\u00f3n diferencial parcial parab\u00f3lica: EDP Parab\u00f3lica ejercicio M\u00e9todo expl\u00edcito: Anal\u00edtico Algoritmo gr\u00e1fica 2. M\u00e9todo Expl\u00edcito [&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":[41],"tags":[],"class_list":["post-1005","post","type-post","status-publish","format-standard","hentry","category-mn-u07"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1005","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=1005"}],"version-history":[{"count":15,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1005\/revisions"}],"predecessor-version":[{"id":22977,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1005\/revisions\/22977"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}