{"id":9310,"date":"2024-07-03T07:10:03","date_gmt":"2024-07-03T12:10:03","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=9310"},"modified":"2026-04-05T19:58:17","modified_gmt":"2026-04-06T00:58:17","slug":"s1eva2024paoi_t2-temperatura-en-nodos-de-placa-cuadrada","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva30\/s1eva2024paoi_t2-temperatura-en-nodos-de-placa-cuadrada\/","title":{"rendered":"s1Eva2024PAOI_T2 Temperatura en nodos de placa cuadrada"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-1eva30\/1eva2024paoi_t2-temperatura-en-nodos-de-placa-cuadrada\/\" data-type=\"post\" data-id=\"9277\">1Eva2024PAOI_T2 Temperatura en nodos de placa cuadrada<\/a><br><\/p>\n\n\n\n<p><strong>literal a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"353\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2024\/07\/PlacaCuadradaCalentadaNodos01.png\" alt=\"Placa Cuadrada Calentada Nodos\" class=\"wp-image-14259\" \/><\/figure>\n\n\n\n<p>El planteamiento de las ecuaciones seg\u00fan se cita en la soluci\u00f3n iterativa es el promedio de los nodos adyacentes:<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = \\frac{100+40+b+c}{4} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> b = \\frac{40+20+a+d}{4} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{100+80+a+d}{4} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = \\frac{80+20+c+b}{4} <\/span>\n\n\n\n<p>reordenando las ecuaciones para su forma maticial:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 4a -b -c = 100+40 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 4b -a -d= 40+20 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 4c -a -d= 100+80 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 4d -c -b= 80+20 <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">literal b<\/h3>\n\n\n\n<p>la forma matricial del sistema de ecuaciones es:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{bmatrix} 4 &amp; -1 &amp;-1 &amp; 0 \\\\ -1 &amp; 4 &amp; 0 &amp;-1 \\\\ -1 &amp; 0 &amp; 4 &amp;-1 \\\\ 0 &amp; -1 &amp;-1 &amp; 4 \\end{bmatrix} \\begin{bmatrix} a \\\\ b \\\\ c \\\\ d \\end{bmatrix} = \\begin{bmatrix} 140 \\\\ 60 \\\\ 180 \\\\ 100 \\end{bmatrix}<\/span>\n\n\n\n<p>matriz aumentada:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\left[ \\begin{array} {cccc|c} 4 &amp; -1 &amp;-1 &amp; 0 &amp; 140\\\\ -1 &amp; 4 &amp; 0 &amp;-1 &amp; 60 \\\\ -1 &amp; 0 &amp; 4 &amp;-1 &amp; 180 \\\\ 0 &amp; -1 &amp;-1 &amp; 4 &amp; 100 \\end{array}\\right]<\/span>\n\n\n\n<p>al revisar el procedimiento de pivoteo parcial por filas se muestra que ya se encuentra pivoteada la matriz. Por lo que no es necesario realizar cambios en las filas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">literal c<\/h3>\n\n\n\n<p>Las expresiones a partir de la matriz aumentada y pivoteada para usar en un m\u00e9todo iterativo como Gauss-Seidel son:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = 0.25(b+c+140) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> b = 0.25*(a+d+60) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = 0.25(a+d+180) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = 0.25(c+b+100) <\/span>\n\n\n\n<p>el vector inicial debe considerar que las temperaturas ser\u00e1n medias entre los&nbsp; bordes de la placa<\/p>\n\n\n\n<p>X<sub>0<\/sub> = [ (100+40)\/2, (40+20)\/2, (100+80)\/2, (80+20)\/2 ]<\/p>\n\n\n\n<p class=\"has-text-align-center\">X<sub>0<\/sub> = [ 70, 30, 90, 50 ]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">literal d iteraciones<\/h3>\n\n\n\n<p>itera = 0<\/p>\n\n\n\n<p>a = 0.25(30+90+140)= <strong>65<\/strong><\/p>\n\n\n\n<p>b = 0.25*(<strong>65<\/strong>+50+60) = <em><strong>43.75<\/strong><\/em><\/p>\n\n\n\n<p>c = 0.25(<strong>65<\/strong>+50+180) = <strong>73.75<\/strong><\/p>\n\n\n\n<p>d = 0.25(<strong>73.75<\/strong>+<em><strong>43.75<\/strong><\/em>+100) = 54.375<\/p>\n\n\n\n<p>error = max|[65-70, 43.75-30, 73.75-90, 54.375-50]|<\/p>\n\n\n\n<p>error = max|[ -5, 13.75, -16.25, 4.375| = 16.25<\/p>\n\n\n\n<p class=\"has-text-align-center\">X<sub>1<\/sub> = [ 65, 43.75, 73.75, 54.375 ]<\/p>\n\n\n\n<p>itera = 1<\/p>\n\n\n\n<p>a = 0.25(43.75+73.75+140)= <strong>64.375<\/strong><\/p>\n\n\n\n<p>b = 0.25*(<strong>64.375<\/strong>+54.375+60) = <em><strong>44.687<\/strong><\/em><\/p>\n\n\n\n<p>c = 0.25(<strong>64.375<\/strong>+54.375+180) = <strong>74.687<\/strong><\/p>\n\n\n\n<p>d = 0.25(<strong>74.687<\/strong>+<em><strong>44.687<\/strong><\/em>+100) = 54.843<\/p>\n\n\n\n<p>error = max|[64.375-65, 44.687-43.75, 74.687-73.75, 54.843-54.375]|<\/p>\n\n\n\n<p><span class=\"wp-katex-eq katex-display\" data-display=\"true\"><\/span> error = max|[-0.625, 0.937, 0.937, 0.468| = 0.937<\/p>\n\n\n\n<p class=\"has-text-align-center\">X<sub>2<\/sub> = [ 64.375, 44.687, 74.687, 54.843 ]<\/p>\n\n\n\n<p>itera = 2<\/p>\n\n\n\n<p>a = 0.25(44.687+74.687+140)= <strong>64.843<\/strong><\/p>\n\n\n\n<p>b = 0.25*(<strong>64.843<\/strong> +54.843+60) = <em><strong>44.921<\/strong><\/em><\/p>\n\n\n\n<p>c = 0.25(<strong>64.843<\/strong>+54.843+180) = <strong>74.921<\/strong><\/p>\n\n\n\n<p>d = 0.25(<strong>74.921<\/strong>+<em><strong>44.921<\/strong><\/em>+100) = 54.960<\/p>\n\n\n\n<p>error = max|[64.843-64.375, 44.921-44.687, 74.921-74.687, 54.960-54.843]|<\/p>\n\n\n\n<p>error = max|[0.468, 0.234, 0.234, 0.117| = 0.468<\/p>\n\n\n\n<p class=\"has-text-align-center\">X<sub>3<\/sub> = [ 64.843, 44.921, 74.921, 54.960 ]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">literal e<\/h3>\n\n\n\n<p>El m\u00e9todo converge pues los errores en cada iteraci\u00f3n disminuyen. Los valores obtenidos en el resultado son acorde a las temperaturas esperadas en los nodos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Algoritmos con Python<\/h3>\n\n\n\n<p>Los resultados obtenidos son:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>X 0 = &#091;65.    43.75  73.75  54.375]\nX 1 = &#091;64.375   44.6875  74.6875  54.84375]\nX 2 = &#091;64.84375   44.921875  74.921875  54.9609375]\nX 3 = &#091;64.9609375  44.98046875 74.98046875 54.99023438]\nX 4 = &#091;64.99023438 44.99511719 74.99511719 54.99755859]\nX 5 = &#091;64.99755859 44.9987793  74.9987793  54.99938965]\nX 6 = &#091;64.99938965 44.99969482 74.99969482 54.99984741]\nX 7 = &#091;64.99984741 44.99992371 74.99992371 54.99996185]\nX 8 = &#091;64.99996185 44.99998093 74.99998093 54.99999046]\nX 9 = &#091;64.99999046 44.99999523 74.99999523 54.99999762]\nrespuesta X: \n&#091;&#091;64.99999046]\n &#091;44.99999523]\n &#091;74.99999523]\n &#091;54.99999762]]\nverificar A.X=B: \n&#091;&#091;139.99997139]\n &#091; 59.99999285]\n &#091;179.99999285]\n &#091;100.        ]]\n&gt;&gt;&gt;<\/code><\/pre>\n\n\n\n<p>el algoritmo usado es:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 1Eva_2024PAOI_T2 Temperatura en nodos de placa cuadrada\n# M\u00e9todo de Gauss-Seidel\nimport numpy as np\n# INGRESO\nA = np.array(&#x5B;&#x5B;4,-1,-1,0],\n              &#x5B;-1,4,0,-1],\n              &#x5B;-1,0,4,-1],\n              &#x5B;0,-1,-1,4]],dtype=float)\nB = np.array(&#x5B;140,60,180,100],dtype=float)\nX0  = np.array(&#x5B;70,30,90,50],dtype=float)\n\ntolera = 0.0001\niteramax = 100\n\n# PROCEDIMIENTO\n# Gauss-Seidel\ntamano = np.shape(A)\nn = tamano&#x5B;0]\nm = tamano&#x5B;1]\n#  valores iniciales\nX = np.copy(X0)\ndiferencia = np.ones(n, dtype=float)\nerrado = 2*tolera\n\nitera = 0\nwhile not(errado&lt;=tolera or itera&gt;iteramax):\n    # por fila\n    for i in range(0,n,1):\n        # por columna\n        suma = 0 \n        for j in range(0,m,1):\n            # excepto diagonal de A\n            if (i!=j): \n                suma = suma-A&#x5B;i,j]*X&#x5B;j]\n        nuevo = (B&#x5B;i]+suma)\/A&#x5B;i,i]\n        diferencia&#x5B;i] = np.abs(nuevo-X&#x5B;i])\n        X&#x5B;i] = nuevo\n    print('X',itera,'=',X)\n    errado = np.max(diferencia)\n    itera = itera + 1\n\n# Respuesta X en columna\nX = np.transpose(&#x5B;X])\n# revisa si NO converge\nif (itera&gt;iteramax):\n    X=0\n# revisa respuesta\nverifica = np.dot(A,X)\n\n# SALIDA\nprint('respuesta X: ')\nprint(X)\nprint('verificar A.X=B: ')\nprint(verifica)\n<\/pre><\/div>\n\n\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2024PAOI_T2 Temperatura en nodos de placa cuadrada literal a El planteamiento de las ecuaciones seg\u00fan se cita en la soluci\u00f3n iterativa es el promedio de los nodos adyacentes: &nbsp; reordenando las ecuaciones para su forma maticial: literal b la forma matricial del sistema de ecuaciones es: matriz aumentada: al revisar el procedimiento de pivoteo [&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":[46],"tags":[58,54],"class_list":["post-9310","post","type-post","status-publish","format-standard","hentry","category-mn-s1eva30","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9310","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=9310"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9310\/revisions"}],"predecessor-version":[{"id":23826,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9310\/revisions\/23826"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=9310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=9310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=9310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}