{"id":21045,"date":"2020-09-22T21:10:00","date_gmt":"2020-09-23T02:10:00","guid":{"rendered":"https:\/\/blog.espol.edu.ec\/algoritmos101\/?p=21045"},"modified":"2026-04-05T20:57:28","modified_gmt":"2026-04-06T01:57:28","slug":"s3eva2020paoi_t3-edp-parabolica-centro-triangulo","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s3eva20\/s3eva2020paoi_t3-edp-parabolica-centro-triangulo\/","title":{"rendered":"s3Eva2020PAOI_T3 EDP Parab\u00f3lica centro tri\u00e1ngulo"},"content":{"rendered":"\n<p><strong><em>Ejercicio<\/em><\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-3eva20\/3eva2020paoi_t3-edp-parabolica-centro-triangulo\/\" data-type=\"post\" data-id=\"6694\">3Eva2020PAOI_T3 EDP Parab\u00f3lica centro tri\u00e1ngulo<\/a><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial u}{\\partial t} - c^2 \\frac{\\partial ^2 u}{\\partial x^2} = g(x) <\/span>\n\n\n\n<h2 class=\"wp-block-heading\">Literal a. gr\u00e1fica de malla<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1058\" height=\"647\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/01\/3Eva2020PAOI_T3_EDP_ParabolicaMalla.png\" alt=\"3Eva2020PAOI_T3 EDP Parabolica Malla\" class=\"wp-image-21046\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">literal b. Planteamiento<\/h2>\n\n\n\n<p>Reordena ecuaci\u00f3n para derivada de mayor orden<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial u}{\\partial t} - c^2 \\frac{\\partial ^2 u}{\\partial x^2} = g(x) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial u}{\\partial t}- g(x) = c^2 \\frac{\\partial ^2 u}{\\partial x^2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial ^2 u}{\\partial x^2} = \\frac{1}{c^2} \\left( \\frac{\\partial u}{\\partial t}- g(x) \\right) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial ^2 u}{\\partial x^2} = \\frac{1}{c^2} \\frac{\\partial u}{\\partial t} - \\frac{g(x)}{c^2} <\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal c. Modelo discreto<\/h2>\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} = \\frac{1}{c^2} \\frac{u_{i,j+1}-u_{i,j}}{\\Delta t} - \\frac{g(x)}{c^2} <\/span>\n\n\n\n<p>agrupando constantes<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\Delta t \\left( \\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{(\\Delta x)^2} \\right)=\\left( \\frac{1}{c^2} \\frac{u_{i,j+1}-u_{i,j}}{\\Delta t} - \\frac{g(x)}{c^2} \\right) c^2 \\Delta t <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{c^2 \\Delta t}{(\\Delta x)^2} \\left( u_{i+1,j}-2u_{i,j}+u_{i-1,j} \\right)= u_{i,j+1}-u_{i,j} - g(x)\\Delta t <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\lambda = \\frac{c^2 \\Delta t}{(\\Delta x)^2} <\/span>\n\n\n\n<p>Analiza \u03bb para convergencia del m\u00e9todo<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\lambda = \\frac{c^2 \\Delta t}{(\\Delta x)^2} = \\frac{1^2(0.05)}{0.25^2} = 0.8 <\/span>\n\n\n\n<p>como \u03bb&gt;0.5 el m\u00e9todo NO converge.<\/p>\n\n\n\n<p>se debe ajustar uno de los tama\u00f1os de paso, por ejemplo \u0394t = 0.25 o la mitad del valor anterior para que el m\u00e9todo sea convergente. Se puede probar tambi\u00e9n con el algoritmo y la gr\u00e1fica resultante.<\/p>\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\/2020\/09\/3Eva2020PAOI_T3_EDP_lambda0_8.png\" alt=\"3Eva2020PAOI_T3 EDP lambda=0.8 no converge\" class=\"wp-image-21068\" \/><\/figure>\n\n\n\n<p>cambiando dt = 0.025, \u03bb&gt;0.4, el resultado es la barra enfriando el centro cuando pasa el tiempo.<\/p>\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\/2020\/09\/3Eva2020PAOI_T3_EDP_lambda0_4.png\" alt=\"3Eva2020PAOI_T3 EDP lambda=0.4\" class=\"wp-image-21073\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">literal d. Usando el m\u00e9todo expl\u00edcito<\/h2>\n\n\n\n<p>reagrupando nodos<\/p>\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} - g(x)\\Delta t <\/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} - g(x)\\Delta t <\/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} + g(x)\\Delta t = u_{i,j+1} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\lambda u_{i+1,j} + (1 -2\\lambda) u_{i,j} + \\lambda u_{i-1,j} + g(x)\\Delta t = u_{i,j+1} <\/span>\n\n\n\n<p>que es la f\u00f3rmula a usar en el algoritmo<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n\n<p>El resultado del algoritmo se muestra como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>M\u00e9todo expl\u00edcito EDP Parab\u00f3lica\nlambda:  0.4\nx: &#091;0.   0.25 0.5  0.75 1.  ]\nt: &#091;0.   0.03 0.05 0.08 0.1 ] ... 0.375\nTabla de resultados en malla EDP Parab\u00f3lica\nj, U&#091;:,: 5 ], primeras iteraciones de  15\n5 &#091;0.   0.54 0.74 0.54 0.  ]\n4 &#091;0.   0.64 0.9  0.64 0.  ]\n3 &#091;0.   0.8  1.07 0.8  0.  ]\n2 &#091;0.   0.93 1.4  0.93 0.  ]\n1 &#091;0.   1.3  1.55 1.3  0.  ]\n0 &#091;0.   1.25 2.5  1.25 0.  ]<\/code><\/pre>\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\/2020\/09\/3Eva2020PAOI_T3_EDP_lambda0_4.png\" alt=\"3Eva2020PAOI_T3 EDP lambda=0.4\" class=\"wp-image-21073\" \/><\/figure>\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\/2020\/09\/3Eva2020PAOI_T3_EDP_3D.png\" alt=\"3Eva2020PAOI_T3\" class=\"wp-image-21071\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; highlight: [33,34,35,60]; title: ; notranslate\" title=\"\">\n#3ra Evaluaci\u00f3n 2020-2021 PAO I. 22\/Septiembre\/2020\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 = 0  # izquierda de barra\nTb = 0  # derecha de barra\n#Tc = 25 # estado inicial de barra en x\n# f(x) en tiempo inicial\nf1 = lambda x: 5*x\nf2 = lambda x: 5*(1-x)\nfxc = lambda x: np.piecewise(x,\n                            &#x5B;x&lt;0.5, x&gt;=0.5],\n                            &#x5B;f1,f2])\n# dimensiones de la barra\na = 0  # longitud en x\nb = 1\nt0 = 0 # tiempo inicial, aumenta con dt en n iteraciones\nC = 1\nK = 1\/(C**2)     # Constante K\ndx = 0.25  # muestreo en x, tama\u00f1o de paso\ndt = 0.05 # sin ajuste de convergencia\ndt = dt\/2 # con ajuste para convergencia\ngx = 2\n\nn = 15  # 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\n# se incluye el estado a t=0: n+1\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] + gx*dt\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<p>Gr\u00e1fica con Python<\/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\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>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2020PAOI_T3 EDP Parab\u00f3lica centro tri\u00e1ngulo Literal a. gr\u00e1fica de malla literal b. Planteamiento Reordena ecuaci\u00f3n para derivada de mayor orden literal c. Modelo discreto agrupando constantes Analiza \u03bb para convergencia del m\u00e9todo como \u03bb&gt;0.5 el m\u00e9todo NO converge. se debe ajustar uno de los tama\u00f1os de paso, por ejemplo \u0394t = 0.25 o la [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"wp-custom-template-p-ginas-mn-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[58,54],"class_list":["post-21045","post","type-post","status-publish","format-standard","hentry","category-mn-s3eva20","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21045","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=21045"}],"version-history":[{"count":24,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21045\/revisions"}],"predecessor-version":[{"id":23918,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21045\/revisions\/23918"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=21045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=21045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=21045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}