{"id":3921,"date":"2017-12-17T14:24:29","date_gmt":"2017-12-17T19:24:29","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=3921"},"modified":"2026-04-05T21:03:38","modified_gmt":"2026-04-06T02:03:38","slug":"s3eva2017ti_t4-edp-eliptica-placa-desplazada","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s3eva20\/s3eva2017ti_t4-edp-eliptica-placa-desplazada\/","title":{"rendered":"s3Eva2017TI_T4 EDP el\u00edptica, placa desplazada"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-3eva20\/3eva2017ti_t4-edp-eliptica-placa-desplazada\/\" data-type=\"post\" data-id=\"979\">3Eva2017TI_T4 EDP el\u00edptica, placa desplazada<\/a><\/p>\n\n\n\n<p>La ecuaci\u00f3n del problema en forma cont\u00ednua:<\/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\/2017\/12\/3Eva2017TI_T4EDPEliptica01.png\" alt=\"3eva2017ti_t4 EDP el\u00edptica 01\" class=\"wp-image-18589\" \/><\/figure>\n\n\n\n<p><\/p>\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<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\lambda= \\frac{\\Delta y^2}{\\Delta x^2} = 1<\/span>\n\n\n\n<p>por ser los tama\u00f1os de paso iguales en ambos ejes, se simplifica la ecuaci\u00f3n a usar:<\/p>\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>Por simplicidad se usar\u00e1 el m\u00e9todo iterativo en el ejercicio, por lo que se despeja la ecuaci\u00f3n del centro del rombo formado por los puntos,<\/p>\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\"> 4u[i,j] = u[i-1,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<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[i,j] = \\frac{1}{4}\\Big( u[i-1,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)\\Big)<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Iteraciones:<\/p>\n\n\n\n<p>Se utiliza una matriz de ceros para la iteraci\u00f3n inicial. En el ejercicio se muestran c\u00e1lculos para 3 nodos, el resto se realiza con el algoritmo en Python.<\/p>\n\n\n\n<p>Para varias iteraciones se usa \u0394x =\u0394y = 1\/4 = 0.25<\/p>\n\n\n\n<p>y las ecuaciones para los valores en las fronteras o bordes de la placa<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">U(x,1)= x \\ln (x), U(x,2) = x \\ln (4x^{2}),1 \\lt x \\lt 2 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">U(1,y)= y \\ln(y), U(2,y) = 2y \\ln (2y), 1 \\lt x \\lt 2 <\/span>\n\n\n\n<p>i=1, j=1<\/p>\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[1,1] = \\frac{1}{4}\\Big( u[0,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{1.25}{1.25} + \\frac{1.25}{1.25}\\Big)\\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[1,1] = \\frac{1}{4}\\Big(1.25 \\ln (1.25)+0 +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 1.25 \\ln(1.25) + 0 -(0.25)^2\\Big( \\frac{1.25}{1.25} + \\frac{1.25}{1.25}\\Big)\\Big)<\/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\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u[2,1] = \\frac{1}{4}\\Big( u[1,1]+u[3,1] +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + u[2,0]+u[2,2] -(0.25)^2\\Big( \\frac{1.5}{1.5} + \\frac{1.5}{1.5}\\Big)\\Big)<\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h4 class=\"wp-block-heading\">M\u00e9todo iterativo<\/h4>\n\n\n\n<p>usando el m\u00e9todo iterativo se obtiene los siguientes resultados:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>iteraciones:  15\nerror entre iteraciones:  6.772297286980838e-05\nsoluci\u00f3n para u: \n&#091;&#091;0.         0.27892944 0.60819766 0.97932763 1.38629436]\n &#091;0.27892944 0.69781162 1.1792239  1.7127402  2.29072683]\n &#091;0.60819766 1.1792239  1.8252746  2.53384036 3.29583687]\n &#091;0.97932763 1.7127402  2.53384036 3.42800537 4.38467039]\n &#091;1.38629436 2.29072683 3.29583687 4.38467039 5.54517744]]\n&gt;&gt;&gt; \n<\/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\/2017\/12\/3Eva2017TI_T4EDPEliptica01.png\" alt=\"3eva2017ti_t4 EDP el\u00edptica 01\" class=\"wp-image-18589\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 3Eva_IT2017_T4 EDP el\u00edptica, placa desplazada\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\n# para menos iteraciones\nmitadx = int(n\/2)\nmitady = int(m\/2)\npromedio = (u&#x5B;mitadx,0]+u&#x5B;mitadx,m-1]+u&#x5B;0,mitady]+u&#x5B;n-1,mitady])\/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            u&#x5B;i,j] = (u&#x5B;i-1,j]+u&#x5B;i+1,j]+u&#x5B;i,j-1]+u&#x5B;i,j+1]-(dy**2)*fxy(xi&#x5B;i],yj&#x5B;j]))\/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\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 \nfig3D = plt.figure()\ngraf3D = fig3D.add_subplot(111, projection='3d')\ngraf3D.plot_wireframe(X, Y, U,label='U(x,y)')\n \n#graf3D.plot(0,0,0,'ro',label='&#x5B;0,0,0]')\ngraf3D.set_xlabel('x')\ngraf3D.set_ylabel('y')\ngraf3D.set_zlabel('z')\ngraf3D.set_title('EDP el\u00edptica')\ngraf3D.legend()\ngraf3D.view_init(35, -45)\nplt.tight_layout()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2017TI_T4 EDP el\u00edptica, placa desplazada La ecuaci\u00f3n del problema en forma cont\u00ednua: 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 por ser los tama\u00f1os de paso iguales en ambos ejes, [&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":[51],"tags":[58,54],"class_list":["post-3921","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\/3921","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=3921"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/3921\/revisions"}],"predecessor-version":[{"id":23934,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/3921\/revisions\/23934"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=3921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=3921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=3921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}