{"id":1056,"date":"2018-02-09T07:51:10","date_gmt":"2018-02-09T12:51:10","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=1056"},"modified":"2026-04-05T20:15:53","modified_gmt":"2026-04-06T01:15:53","slug":"s2eva2017tii_t3-edp-parabolica-con-diferencias-regresivas","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s2eva20\/s2eva2017tii_t3-edp-parabolica-con-diferencias-regresivas\/","title":{"rendered":"s2Eva2017TII_T3 EDP parab\u00f3lica con diferencias regresivas"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-2eva20\/2eva2017tii_t3-edp-parabolica-con-diferencias-regresivas\/\" data-type=\"post\" data-id=\"1034\">2Eva2017TII_T3 EDP parab\u00f3lica con diferencias regresivas<\/a><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{dU}{dt} - \\frac{1}{16} \\frac{d^2U}{dx^2} = 0 <\/span>\n\n\n\n<p>Las diferencias finitas requeridas en el enunciado son:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> U'(x_i,t_j) = \\frac{U(x_{i},t_j)-U(x_{i},t_{j-1})}{\\Delta t} + O(\\Delta t) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> U''(x_i,t_j) = \\frac{U(x_{i+1},t_j)-2U(x_{i},t_j)+U(x_{i-1},t_j)}{\\Delta x^2} + O(\\Delta x^2) <\/span>\n\n\n\n<p>La indicaci\u00f3n de regresiva es para la primera derivada, dependiente de tiempo t.<\/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\/2018\/02\/s2Eva2017TII_T3_EDP_parabolica_regresiva.png\" alt=\"s2Eva2017TII_T3 EDP parab\u00f3lica regresiva\" class=\"wp-image-18491\" \/><\/figure>\n\n\n\n<p>que al reemplazar en la ecuaci\u00f3n sin el t\u00e9rmino de error, se convierte a.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{U(x_{i},t_j)-U(x_{i},t_{j-1})}{\\Delta t} - \\frac{1}{16}\\frac{U(x_{i+1},t_j)-2U(x_{i},t_j)+U(x_{i-1},t_j)}{\\Delta x^2} =0 <\/span>\n\n\n\n<p>Se reordenan los t\u00e9rminos de forma semejante al modelo planteado en el m\u00e9todo b\u00e1sico:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\Delta t}{16\\Delta x^2}[U(x_{i+1},t_j)-2U(x_{i},t_j)+U(x_{i-1},t_j)] = U(x_{i},t_j)-U(x_{i},t_{j-1})<\/span>\n\n\n\n<p>Se simplifica haciendo que haciendo<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda = \\frac{\\Delta t}{16\\Delta x^2} <\/span>\n\n\n\n<p>Cambiando la nomenclatura con solo los \u00edndices para las variables x y t, ordenando en forma ascendente los \u00edndices previo a crear el algoritmo.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda[U(i+1,j)-2U(i,j)+U(i-1,j)] = U(i,j)-U(i,j-1)<\/span>\n\n\n\n<p>Se reordena la ecuaci\u00f3n como modelo para el sistema de ecuaciones.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda U(i+1,j)+(-2\\lambda-1)U(i,j)+ \\lambda U(i-1,j) = -U(i,j-1)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P U(i-1,j) + Q U(i,j) + R U(i+1,j) = -U(i,j-1)<\/span>\n\n\n\n<p>Se calculan los valores constantes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u03bb = dt\/(16*dx<sup>2<\/sup>) = 0.05\/&#091;16*(1\/3)<sup>2<\/sup>] = 0.028125\n\nP = \u03bb = 0.028125\nQ = (-1-2\u03bb) = (1-2*0.028125) = -1.05625\nR = \u03bb = 0.028125<\/code><\/pre>\n\n\n\n<p>Usando las condiciones del problema:<\/p>\n\n\n\n<p>U(0,t) = U(1,t) = 0, entonces, Ta = 0, Tb = 0<\/p>\n\n\n\n<p>Para los valores de la barra iniciales se debe usar un vector calculado como 2sin(\u03c0 x) en cada valor de x<sub>i<\/sub> espaciados por hx = 1\/3, x entre [0,1]<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>xi  = &#091;0,1\/3, 2\/3, 1]\nU&#091;xi,0] = &#091;2sin (0*\u03c0), 2sin(\u03c0\/3), 2sin(2\u03c0\/3), 2sin(\u03c0)]\nU&#091;xi,0] = &#091;0, 2sin(\u03c0\/3), 2sin(2\u03c0\/3), 0]\nU&#091;xi,0] = &#091;0, 1.732050,  1.732050, 0]<\/code><\/pre>\n\n\n\n<p>Con lo que se puede plantear las ecuaciones:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>j=1: i=1<br>\n0.028125 U(0,1) + (-1.05625) U(1,1) + 0.028125 U(2,1) = -U(1,0)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>j=1: i=2<br>\n0.028125 U(1,1) + (-1.05625) U(2,1) + 0.028125 U(3,1) = -U(2,0)<\/code><\/pre>\n\n\n\n<p>y reemplazando los valores de la malla conocidos:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>0.028125 (0) - 1.05625 U(1,1) + 0.028125 U(2,1) = -1.732050<br>\n0.028125 U(1,1) - 1.05625 U(2,1) + 0.028125 (0) = -1.732050<\/code><\/pre>\n\n\n\n<p>hay que resolver el sistema de ecuaciones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-1.05625  U(1,1) + 0.028125 U(2,1) = -1.732050\n 0.028125 U(1,1) - 1.05625  U(2,1) = -1.732050\n\nA = &#091;&#091;-1.05625 ,  0.028125],\n     &#091; 0.028125, -1.05625 ]]\nB = &#091;-1.732050,-1.732050]\nque resuelta con un m\u00e9todo num\u00e9rico:\n&#091; 1.68,  1.68]<\/code><\/pre>\n\n\n\n<p>Por lo que la soluci\u00f3n para una gr\u00e1fica, con los \u00edndices de (fila,columna) como (t,x):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>U = &#091;&#091;0, 1.732050,  1.732050, 0],\n     &#091;0, 1.680000,  1,680000, 0]]<\/code><\/pre>\n\n\n\n<p>El error del procedimiento, tal como fu\u00e9 planteado es del orden de O(\u0394t) y O(\u0394x<sup>2<\/sup>), o error de truncamiento E = O(\u0394x<sup>2<\/sup>) + O(\u0394t). \u0394t debe ser menor que \u0394x en aproximadamente un orden de magnitud<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><em><strong>Usando algoritmo en python<\/strong><\/em>.<\/p>\n\n\n\n<p>Usando lo resuelto en clase y laboratorio, se comprueba la soluci\u00f3n con el algoritmo, con hx y ht mas peque\u00f1os y m\u00e1s iteraciones:<\/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\/2018\/02\/s2Eva2017TII_T3_EDP_parabolica_regresiva.png\" alt=\"s2Eva2017TII_T3 EDP parab\u00f3lica regresiva\" class=\"wp-image-18491\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# EDP parab\u00f3licas d2u\/dx2  = K du\/dt\n# m\u00e9todo impl\u00edcito\n# Referencia: Chapra 30.3 p.895 pdf.917\n#       Rodriguez 10.2.5 p.417\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# INGRESO\n# Valores de frontera\nTa = 0\nTb = 0\n# longitud en x\na = 0\nb = 1\n# Constante K\nK = 16\n# Tama\u00f1o de paso\ndx = 0.1\ndt = 0.01\n# temperatura en barra\ntempbarra = lambda x: 2*np.sin(np.pi*x)\n# iteraciones\nn = 100\n\n# PROCEDIMIENTO\n# Valores de x\nxi = np.arange(a,b+dx,dx)\nm = len(xi)\n\n# Resultados en tabla de u\nu = np.zeros(shape=(m,n), dtype=float)\n# valores iniciales de u\nj=0\nu&#x5B;0,j] = Ta\nfor i in range(1,m-1,1):\n    u&#x5B;i,j] = tempbarra(xi&#x5B;i])\nu&#x5B;m-1,j] = Tb\n\n# factores P,Q,R\nlamb = dt\/(K*dx**2)\nP = lamb\nQ = -1 -2*lamb\nR = lamb\nvector = np.array(&#x5B;P,Q,R])\ntvector = len(vector)\n\n# Calcula U para cada tiempo + dt\nj=1\nwhile not(j&gt;=n):\n    u&#x5B;0,j] = Ta\n    u&#x5B;m-1,j] = Tb\n    # Matriz de ecuaciones\n    tamano = m-2\n    A = np.zeros(shape=(tamano,tamano), dtype = float)\n    B = np.zeros(tamano, dtype = float)\n    for f in range(0,tamano,1):\n        for c in range(0,tvector,1):\n            c1 = f+c-1\n            if(c1&gt;=0 and c1&lt;tamano):\n                A&#x5B;f,c1] = vector&#x5B;c]\n        B&#x5B;f] = -u&#x5B;f+1,j-1]\n    B&#x5B;0] = B&#x5B;0]-P*u&#x5B;0,j]\n    B&#x5B;tamano-1] = B&#x5B;tamano-1]-R*u&#x5B;m-1,j]\n    # Resuelve sistema de ecuaciones\n    C = np.linalg.solve(A, B) \n    # copia resultados a u&#x5B;i,j]\n    for f in range(0,tamano,1):\n        u&#x5B;f+1,j] = C&#x5B;f]\n    j=j+1 # siguiente iteraci\u00f3n\n        \n# SALIDA\nprint('Tabla de resultados')\nnp.set_printoptions(precision=2)\nprint(u)\n# Gr\u00e1fica\nsalto = int(n\/10)\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, '.m')\nplt.xlabel('x&#x5B;i]')\nplt.ylabel('t&#x5B;j]')\nplt.title('Soluci\u00f3n EDP parab\u00f3lica')\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2017TII_T3 EDP parab\u00f3lica con diferencias regresivas Las diferencias finitas requeridas en el enunciado son: La indicaci\u00f3n de regresiva es para la primera derivada, dependiente de tiempo t. que al reemplazar en la ecuaci\u00f3n sin el t\u00e9rmino de error, se convierte a. Se reordenan los t\u00e9rminos de forma semejante al modelo planteado en el m\u00e9todo [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-ejemplo","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[58,54],"class_list":["post-1056","post","type-post","status-publish","format-standard","hentry","category-mn-s2eva20","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1056","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=1056"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1056\/revisions"}],"predecessor-version":[{"id":23868,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1056\/revisions\/23868"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}