{"id":2134,"date":"2017-10-07T09:25:34","date_gmt":"2017-10-07T14:25:34","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=2134"},"modified":"2026-01-31T00:00:21","modified_gmt":"2026-01-31T05:00:21","slug":"edp-elipticas-metodo-implicito","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u07\/edp-elipticas-metodo-implicito\/","title":{"rendered":"7.2.2 EDP El\u00edpticas m\u00e9todo impl\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>EDP El\u00edpticas<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-elipticas-metodo-iterativo\/#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo impl\u00edcito:<\/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<\/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\">1. EDP El\u00edpticas: M\u00e9todo Impl\u00edcito \u2013 Desarrollo Anal\u00edtico<\/h2>\n\n\n\n<p>con el resultado desarrollado en <strong><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-elipticas\/\" data-type=\"post\" data-id=\"2102\">EDP el\u00edpticas<\/a><\/strong> para:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\partial ^2 u}{\\partial x^2} + \\frac{\\partial ^2 u}{ \\partial y^2} = 0<\/span>\n\n\n\n<p>y con el supuesto que: <span class=\"wp-katex-eq\" data-display=\"false\"> \\lambda = \\frac{(\\Delta y)^2}{(\\Delta x)^2} = 1 <\/span><\/p>\n\n\n\n<p>se puede plantear que:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{i+1,j}-4u_{i,j}+u_{i-1,j} + u_{i,j+1} +u_{i,j-1} = 0 <\/span>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"411\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/10\/EDP_ElipticasIterativo02.png\" alt=\"EDP El\u00edpticas Iterativo gr\u00e1fica 3D\" class=\"wp-image-13894\" \/><\/figure>\n\n\n\n<p>con lo que para el m\u00e9todo impl\u00edcito, se plantea un sistema de ecuaciones para determinar los valores en cada punto desconocido.<\/p>\n\n\n\n<p>j=1, i =1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,1}-4u_{1,1}+u_{0,1} + u_{1,2} +u_{1,0} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,1}-4u_{1,1}+Ta + u_{1,2} +Tc= 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -4u_{1,1}+u_{2,1}+u_{1,2} = -(Tc+Ta) <\/span>\n\n\n\n<p>j=1, i =2<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{3,1}-4u_{2,1}+u_{1,1} + u_{2,2} +u_{2,0} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{3,1}-4u_{2,1}+u_{1,1} + u_{2,2} +Tc = 0 <\/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}= -Tc <\/span>\n\n\n\n<p>j=1, i=3<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{4,1}-4u_{3,1}+u_{2,1} + u_{3,2} +u_{3,0} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Tb-4u_{3,1}+u_{2,1} + u_{3,2} +Tc = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,1} -4u_{3,1} + u_{3,2} = -(Tc+Tb) <\/span>\n\n\n\n<p>j=2, i=1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,2}-4u_{1,2}+u_{0,2} + u_{1,3} +u_{1,1} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,2}-4u_{1,2}+Ta + u_{1,3} +u_{1,1} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -4u_{1,2}+u_{2,2}+u_{1,1}+u_{1,3} = -Ta <\/span>\n\n\n\n<p>j = 2, i = 2<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{1,2}-4u_{2,2}+u_{3,2} + u_{2,3} +u_{2,1} = 0 <\/span>\n\n\n\n<p>j = 2, i = 3<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{4,2}-4u_{3,2}+u_{2,2} + u_{3,3} +u_{3,1} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Tb-4u_{3,2}+u_{2,2} + u_{3,3} +u_{3,1} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,2} -4u_{3,2}+ u_{3,3} +u_{3,1} = -Tb <\/span>\n\n\n\n<p>j=3, i = 1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,3}-4u_{1,3}+u_{0,3} + u_{1,4} +u_{1,2} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,3}-4u_{1,3}+Ta + Td +u_{1,2} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -4u_{1,3}+u_{2,3}+u_{1,2} = -(Td+Ta) <\/span>\n\n\n\n<p>j=3, i = 2<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{3,3}-4u_{2,3}+u_{1,3} + u_{2,4} +u_{2,2} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{3,3}-4u_{2,3}+u_{1,3} + Td +u_{2,2} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> +u_{1,3} -4u_{2,3}+u_{3,3} +u_{2,2} = -Td <\/span>\n\n\n\n<p>j=3, i=3<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{4,3}-4u_{3,3}+u_{2,3} + u_{3,4} +u_{3,2} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Tb-4u_{3,3}+u_{2,3} + Td +u_{3,2} = 0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> u_{2,3}-4u_{3,3}+u_{3,2} = -(Td+Tb) <\/span>\n\n\n\n<p>con las ecuaciones se arma una matriz:<\/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],\n    ])\nB = np.array(&#091;-(Tc+Ta),-Tc,-(Tc+Tb),\n                  -Ta,   0,    -Tb,\n              -(Td+Ta),-Td,-(Td+Tb)])\n<\/code><\/pre>\n\n\n\n<p>que al resolver el sistema de ecuaciones se obtiene:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>&gt;&gt;&gt; Xu\narray(&#091; 56.43,  55.71,  56.43,  60.  ,  60.  ,  60.  ,  63.57,  64.29,\n        63.57])<\/code><\/pre>\n\n\n\n<p>ingresando los resultados a la matriz u:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>xi=\n&#091; 0.   0.5  1.   1.5  2. ]\nyj=\n&#091; 0.    0.38  0.75  1.12  1.5 ]\nmatriz u\n&#091;&#091; 60.    60.    60.    60.    60.  ]\n &#091; 50.    56.43  60.    63.57  70.  ]\n &#091; 50.    55.71  60.    64.29  70.  ]\n &#091; 50.    56.43  60.    63.57  70.  ]\n &#091; 60.    60.    60.    60.    60.  ]]\n&gt;&gt;&gt;<\/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>EDP El\u00edpticas<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-elipticas-metodo-iterativo\/#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo impl\u00edcito:<\/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<\/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\">2. Algoritmo en Python. EDP El\u00edpticas: M\u00e9todo Impl\u00edcito<\/h2>\n\n\n\n<p>Instrucciones en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Ecuaciones Diferenciales Parciales\n# Elipticas. M\u00e9todo impl\u00edcito\nimport numpy as np\n\n# INGRESO\n# Condiciones iniciales en los bordes\nTa = 60\nTb = 60\nTc = 50\nTd = 70\n# dimensiones de la placa\nx0 = 0\nxn = 2\ny0 = 0\nyn = 1.5\n# discretiza, supone dx=dy\ntramosx = 4\ntramosy = 4\ndx = (xn-x0)\/tramosx \ndy = (yn-y0)\/tramosy \nmaxitera = 100\ntolera = 0.0001\n\nA = np.array(&#x5B;\n    &#x5B;-4, 1, 0, 1, 0, 0, 0, 0, 0],\n    &#x5B; 1,-4, 1, 0, 1, 0, 0, 0, 0],\n    &#x5B; 0, 1,-4, 0, 0, 1, 0, 0, 0],\n    &#x5B; 1, 0, 0,-4, 1, 0, 1, 0, 0],\n    &#x5B; 0, 1, 0, 1,-4, 1, 0, 1, 0],\n    &#x5B; 0, 0, 1, 0, 1,-4, 0, 0, 1],\n    &#x5B; 0, 0, 0, 1, 0, 0,-4, 1, 0],\n    &#x5B; 0, 0, 0, 0, 1, 0, 1,-4, 1],\n    &#x5B; 0, 0, 0, 0, 0, 1, 0, 1,-4],\n    ])\nB = np.array(&#x5B;-(Tc+Ta),-Tc,-(Tc+Tb),\n              -Ta,0,-Tb,\n              -(Td+Ta),-Td,-(Td+Tb)])\n\n\n# PROCEDIMIENTO\n# Resuelve sistema ecuaciones\nXu = np.linalg.solve(A,B)\n&#x5B;nx,mx] = np.shape(A)\n\nxi = np.arange(x0,xn+dx\/2,dx)\nyj = np.arange(y0,yn+dy\/2,dy)\nn = len(xi)\nm = len(yj)\n\nu = np.zeros(shape=(n,m),dtype=float)\nu&#x5B;:,0]   = Tc\nu&#x5B;:,m-1] = Td\nu&#x5B;0,:]   = Ta\nu&#x5B;n-1,:] = Tb\nu&#x5B;1:1+3,1] = Xu&#x5B;0:0+3]\nu&#x5B;1:1+3,2] = Xu&#x5B;3:3+3]\nu&#x5B;1:1+3,3] = Xu&#x5B;6:6+3]\n\n# SALIDA\nnp.set_printoptions(precision=2)\nprint('xi=')\nprint(xi)\nprint('yj=')\nprint(yj)\nprint('matriz u')\nprint(u)\n<\/pre><\/div>\n\n\n<p>La gr\u00e1fica de resultados se obtiene de forma semejante al ejercicio con m\u00e9todo iterativo.<\/p>\n\n\n\n<p>Se podr\u00eda estandarizar un poco m\u00e1s el proceso para que sea realizado por el algoritmo y sea m\u00e1s sencillo generar la matriz con m\u00e1s puntos. <em><strong>Tarea<\/strong><\/em>.<\/p>\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>EDP El\u00edpticas<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u07\/edp-elipticas-metodo-iterativo\/#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p>M\u00e9todo impl\u00edcito:<\/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<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>EDP El\u00edpticas ejercicio M\u00e9todo impl\u00edcito: Anal\u00edtico Algoritmo 1. EDP El\u00edpticas: M\u00e9todo Impl\u00edcito \u2013 Desarrollo Anal\u00edtico con el resultado desarrollado en EDP el\u00edpticas para: y con el supuesto que: se puede plantear que: con lo que para el m\u00e9todo impl\u00edcito, se plantea un sistema de ecuaciones para determinar los valores en cada punto desconocido. j=1, i [&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-2134","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\/2134","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=2134"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2134\/revisions"}],"predecessor-version":[{"id":21245,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2134\/revisions\/21245"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=2134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=2134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=2134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}