{"id":4731,"date":"2020-01-29T10:11:21","date_gmt":"2020-01-29T15:11:21","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=4731"},"modified":"2026-04-05T20:10:20","modified_gmt":"2026-04-06T01:10:20","slug":"s2eva2019tii_t3-edp-eliptica-placa-en-11","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s2eva20\/s2eva2019tii_t3-edp-eliptica-placa-en-11\/","title":{"rendered":"s2Eva2019TII_T3 EDP el\u00edptica, placa en (1,1)"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-2eva20\/2eva2019tii_t3-edp-eliptica-placa-en-11\/\" data-type=\"post\" data-id=\"4725\">2Eva2019TII_T3 EDP el\u00edptica, placa en (1,1)<\/a><\/p>\n\n\n\n<p>dada la ecuaci\u00f3n del problema:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\delta ^2 u}{\\delta x^2} + \\frac{\\delta ^2 u}{\\delta y^2} = \\frac{x}{y} + \\frac{y}{x} <\/span>\n\n\n\n<p class=\"has-text-align-center\">1 &lt;&nbsp; x &lt;&nbsp;2<br>1 &lt;&nbsp; y &lt;&nbsp;2<\/p>\n\n\n\n<p>Se convierte a la versi\u00f3n discreta usando diferencias divididas centradas:<\/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\/01\/3E2017TI_T4ElipticaPlacaDesplazada.png\" alt=\"3e2017ti_t4 el\u00edptica placa desplazada\" class=\"wp-image-18535\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\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} +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + \\frac{u[i,j-1]-2u[i,j]+u[i,j+1]}{\\Delta y^2} = \\frac{x_i}{y_j} + \\frac{y_j}{x_i} <\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Se agrupan los t\u00e9rminos \u0394x, \u0394y semejante a formar un&nbsp;\u03bb al multiplicar todo por \u0394y<sup>2<\/sup><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\Delta y^2}{\\Delta x^2}\\Big(u[i-1,j]-2u[i,j]+u[i+1,j] \\Big) +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + \\frac{\\Delta y^2}{\\Delta y^2}\\Big(u[i,j-1]-2u[i,j]+u[i,j+1]\\Big) =<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">=\\Delta y^2\\Big( \\frac{x_i}{y_j} + \\frac{y_j}{x_i}\\Big)<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>los tama\u00f1os de paso en ambos ejes son de igual valor, se simplifica la ecuaci\u00f3n<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda= \\frac{\\Delta y^2}{\\Delta x^2} = 1<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[i-1,j]-2u[i,j]+u[i+1,j] +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + u[i,j-1]-2u[i,j]+u[i,j+1] =<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">=\\Delta y^2\\Big( \\frac{x_i}{y_j} + \\frac{y_j}{x_i}\\Big)<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[i-1,j]-4u[i,j]+u[i+1,j] +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + u[i,j-1]+u[i,j+1] =\\Delta y^2\\Big( \\frac{x_i}{y_j} + \\frac{y_j}{x_i}\\Big)<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><strong>Iteraciones<\/strong><\/p>\n\n\n\n<p>que permite plantear las ecuaciones para cada punto en posici\u00f3n [i,j]<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>i=1, j=1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[0,1]-4u[1,1]+u[2,1] +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + u[1,0]+u[1,2] =(0.25)^2\\Big( \\frac{0.25}{0.25} + \\frac{0.25}{0.25}\\Big)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.25ln(0.25)-4u[1,1]+u[2,1] +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 0.25ln(0.25)+u[1,2] = 0.125<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -4u[1,1]+u[2,1] +u[1,2] = 0.125 - 2(0.25)ln(0.25)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -4u[1,1]+u[2,1] +u[1,2] = 0.8181<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>i=2, j=1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[1,1]-4u[2,1]+u[3,1]+<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> +0.5 ln(0.5)+u[2,2]=0.15625<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[1,1]-4u[2,1]+u[3,1]+u[2,2]=0.15625-0.5 ln(0.5)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[1,1]-4u[2,1]+u[3,1]+u[2,2]=0.8493<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>i=3, j=1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[2,1]-4u[3,1]+u[4,1] +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + u[3,0]+u[3,2] =(0.25)^2\\Big( \\frac{0.75}{0.25} + \\frac{0.25}{0.75}\\Big)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[2,1]-4u[3,1]+u[4,1]+u[3,2] = 0.20833333-0.75 ln(0.75)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[2,1]-4u[3,1]+u[4,1]+u[3,2] =0.4240 <\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><strong>Tarea<\/strong>: continuar con el ejercicio hasta plantear todo el sistema de ecuaciones.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>A = np.array(&#091;\n&#091;-4, 1, 0, 1, 0, 0, 0, 0, 0],\n&#091; 1,-4, 1, 0, 1, 0, 0, 0, 0],\n&#091; 0, 1,-4, 0, 0, 1, 0, 0, 0],\n&#091; 1, 0, 0,-4, 1, 0, 1, 0, 0],\n&#091; 0, 1, 0, 1,-4, 1, 0, 1, 0],\n&#091; 0, 0, 1, 0, 1,-4, 0, 0, 1],\n&#091; 0, 0, 0, 1, 0, 0,-4, 1, 0],\n&#091; 0, 0, 0, 0, 1, 0, 1,-4, 1],\n&#091; 0, 0, 0, 0, 0, 1, 0, 1,-4]])\nB = np.array(\n&#091;0.125 - 2(0.25)ln(0.25),\n 0.15625 - 0.5ln(0.5),\n 0.20833 - 0.75 ln(0.75),\n ...])\n\nB = &#091;0.8181,\n     0.8493,\n     0.4240,\n     ...]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo con Python<\/h2>\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\/01\/3E2017TI_T4ElipticaPlacaDesplazada.png\" alt=\"3e2017ti_t4 el\u00edptica placa desplazada\" class=\"wp-image-18535\" \/><\/figure>\n\n\n\n<p>Con valores para la matriz soluci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>iteraciones:  15\nerror entre iteraciones:  6.772297286980838e-05\nsoluci\u00f3n para u: \n&#091;&#091;0.        0.2789294 0.6081976 0.9793276 1.3862943]\n &#091;0.2789294 0.6978116 1.1792239 1.7127402 2.2907268]\n &#091;0.6081976 1.1792239 1.8252746 2.5338403 3.2958368]\n &#091;0.9793276 1.7127402 2.5338403 3.4280053 4.3846703]\n &#091;1.3862943 2.2907268 3.2958368 4.3846703 5.5451774]]\n&gt;&gt;&gt;<\/code><\/pre>\n\n\n\n<p>y algoritmo detallado:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 2Eva_IIT2019_T2 EDO, problema de valor inicial\n# m\u00e9todo iterativo\nimport numpy as np\n\n# INGRESO\n# longitud en x\na = 1\nb = 2\n# longitud en y\nc = 1\nd = 2\n# tama\u00f1o de paso\ndx = 0.25\ndy = 0.25\n# funciones en los bordes de la placa\nabajo     = lambda x,y: x*np.log(x)\narriba    = lambda x,y: x*np.log(4*(x**2))\nizquierda = lambda x,y: y*np.log(y)\nderecha   = lambda x,y: 2*y*np.log(2*y)\n# funci\u00f3n de la ecuaci\u00f3n\nfxy = lambda x,y: x\/y + y\/x\n\n# control de iteraciones\nmaxitera = 100\ntolera = 0.0001\n\n# PROCEDIMIENTO\n# tama\u00f1o de la matriz\nn = int((b-a)\/dx)+1\nm = int((d-c)\/dy)+1\n# vectores con valore de ejes\nxi = np.linspace(a,b,n)\nyj = np.linspace(c,d,m)\n# matriz de puntos muestra\nu = np.zeros(shape=(n,m),dtype=float)\n\n# valores en los bordes\nu&#x5B;:,0]   = abajo(xi,yj&#x5B;0])\nu&#x5B;:,m-1] = arriba(xi,yj&#x5B;m-1])\nu&#x5B;0,:]   = izquierda(xi&#x5B;0],yj)\nu&#x5B;n-1,:] = derecha(xi&#x5B;n-1],yj)\n\n# valores interiores la mitad en intervalo x,\n# mitad en intervalo y, para menos iteraciones\nmx = int(n\/2)\nmy = int(m\/2)\npromedio = (u&#x5B;mx,0]+u&#x5B;mx,m-1]+u&#x5B;0,my]+u&#x5B;n-1,my])\/4\nu&#x5B;1:n-1,1:m-1] = promedio\n\n# m\u00e9todo iterativo\nitera = 0\nconverge = 0\nwhile not(itera&gt;=maxitera or converge==1):\n    itera = itera +1\n    # copia u para calcular errores entre iteraciones\n    nueva = np.copy(u)\n    for i in range(1,n-1):\n        for j in range(1,m-1):\n            # usar f\u00f3rmula desarrollada para algoritmo\n            fij = (dy**2)*fxy(xi&#x5B;i],yj&#x5B;j])\n            u&#x5B;i,j]=(u&#x5B;i-1,j]+u&#x5B;i+1,j]+u&#x5B;i,j-1]+u&#x5B;i,j+1]-fij)\/4\n    diferencia = nueva-u\n    erroru = np.linalg.norm(np.abs(diferencia))\n    if (erroru&lt;tolera):\n        converge=1\n\n# SALIDA\nprint('iteraciones: ',itera)\nprint('error entre iteraciones: ',erroru)\nprint('soluci\u00f3n para u: ')\nprint(u)\n\n# Gr\u00e1fica\nimport matplotlib.pyplot as plt\nfrom matplotlib import cm\n\n# matrices de ejes para la gr\u00e1fica 3D\nX, Y = np.meshgrid(xi, yj)\nU = np.transpose(u) # ajuste de \u00edndices fila es x\n\nfigura = plt.figure()\ngrafica = figura.add_subplot(111, projection = '3d')\n\ngrafica.plot_wireframe(X, Y, U)\n\nplt.title('EDP el\u00edptica')\nplt.xlabel('x')\nplt.ylabel('y')\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2019TII_T3 EDP el\u00edptica, placa en (1,1) dada la ecuaci\u00f3n del problema: 1 &lt;&nbsp; x &lt;&nbsp;21 &lt;&nbsp; y &lt;&nbsp;2 Se convierte a la versi\u00f3n discreta usando diferencias divididas centradas: Se agrupan los t\u00e9rminos \u0394x, \u0394y semejante a formar un&nbsp;\u03bb al multiplicar todo por \u0394y2 los tama\u00f1os de paso en ambos ejes son de igual valor, [&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-4731","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\/4731","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=4731"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4731\/revisions"}],"predecessor-version":[{"id":23852,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4731\/revisions\/23852"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}