{"id":7405,"date":"2021-07-06T20:00:45","date_gmt":"2021-07-07T01:00:45","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=7405"},"modified":"2026-04-05T20:04:43","modified_gmt":"2026-04-06T01:04:43","slug":"s1eva2021paoi_t2-atencion-hospitalaria-con-medicamentos-limitados","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva30\/s1eva2021paoi_t2-atencion-hospitalaria-con-medicamentos-limitados\/","title":{"rendered":"s1Eva2021PAOI_T2 Atenci\u00f3n hospitalaria con medicamentos limitados"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-1eva30\/1eva2021paoi_t2-atencion-hospitalaria-medicamentos-limitados\/\" data-type=\"post\" data-id=\"7402\">1Eva2021PAOI_T2 Atenci\u00f3n hospitalaria con medicamentos limitados<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal a<\/h2>\n\n\n\n<p>Se plantea el sistema de ecuaciones de acuerdo a la cantidad de medicamentos que se administra a cada tipo de paciente, siendo las variables X=[a,b,c,d] de acuerdo a la tabla:<\/p>\n\n\n\n<figure class=\"wp-block-table alignwide\"><table><thead><tr><th><\/th><th>Ni\u00f1os<\/th><th>Adolescentes<\/th><th>Adultos<\/th><th>Adultos Mayores<\/th><th>Medicamentos \/semana<\/th><\/tr><\/thead><tbody><tr><td>Medicamento_A<\/td><td>0.3<\/td><td>0.4<\/td><td>1.1<\/td><td>4.7<\/td><td>3500<\/td><\/tr><tr><td>Medicamento_B<\/td><td>1<\/td><td>3.9<\/td><td>0.15<\/td><td>0.25<\/td><td>3450<\/td><\/tr><tr><td>Medicamento_C<\/td><td>0<\/td><td>2.1<\/td><td>5.6<\/td><td>1.0<\/td><td>6500<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.3 a + 0.4 b + 1.1 c + 4.7 d = 3500 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a + 3.9 b + 0.15 c + 0.25 d = 3450 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 a +2.1 b + 5.6 c + 1.0 d = 6500 <\/span>\n\n\n\n<p>Mostrando que el n\u00famero de inc\u00f3gnitas no es igual al n\u00famero de ecuaciones, por lo que ser\u00eda necesario de disponer de otra ecuaci\u00f3n, o&nbsp; usar una variable libre.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p>Siguiendo las indicaciones sobre la variable libre que sea para el grupo de pacientes ni\u00f1os, te tiene que<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.4 b + 1.1 c + 4.7 d = 3500 - 0.3 K <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 3.9 b + 0.15 c + 0.25 d = 3450 - K<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 2.1 b + 5.6 c + 1.0 d = 6500 - 0 K<\/span>\n\n\n\n<p>y haciendo K = 100, se convierte en :<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.4 b + 1.1 c + 4.7 d = 3500 - 0.3(100) = 3470<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 3.9 b + 0.15 c + 0.25 d = 3450 - 100 = 3350<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 2.1 b + 5.6 c + 1.0 d = 6500 - 0 = 6500<\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal c<\/h2>\n\n\n\n<p>Antes de desarrollar el ejercicio para el algoritmo se requiere convertir el sistema de ecuaciones a su forma matricial. Por lo que se plantea la matriz aumentada:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{pmatrix} 0.4 &amp; 1.1 &amp; 4.7 &amp; \\Big| &amp; 3470 \\\\ 3.9 &amp; 0.15 &amp;0.25 &amp; \\Big| &amp; 3350 \\\\ 2.1 &amp; 5.6 &amp; 1.0 &amp;\\Big| &amp; 6500\\end{pmatrix} <\/span>\n\n\n\n<p>Se realiza el pivoteo parcial por filas, que al aplicar en la primera columna, se intercambia la primera y segunda fila, de tal forma que el mayor valor quede en la primera casilla de la diagonal.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{pmatrix} 3.9 &amp; 0.15 &amp;0.25 &amp; \\Big| &amp; 3350 \\\\ 0.4 &amp; 1.1 &amp; 4.7 &amp; \\Big| &amp; 3470 \\\\ 2.1 &amp; 5.6 &amp; 1.0 &amp;\\Big| &amp; 6500\\end{pmatrix} <\/span>\n\n\n\n<p>se continua el mismo proceso para la segunda casilla de la diagonal hacia abajo, se aplica tambi\u00e9n pivoteo parcial,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{pmatrix} 3.9 &amp; 0.15 &amp;0.25 &amp; \\Big| &amp; 3350 \\\\ 2.1 &amp; 5.6 &amp; 1.0 &amp;\\Big| &amp; 6500 \\\\ 0.4 &amp; 1.1 &amp; 4.7 &amp; \\Big| &amp; 3470 \\end{pmatrix} <\/span>\n\n\n\n<p>Con lo que el sistema queda listo para resolver por cualquier m\u00e9todo.<\/p>\n\n\n\n<p>Si seleccionamos Gauss-Seidel, el vector inicial de acuerdo al enunciado ser\u00e1 X0=[100,100,100]<\/p>\n\n\n\n<p>y las ecuaciones a resolver son:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> b = \\frac{3350 - 0.15 c - 0.25 d}{3.9} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{6500 - 2.1 b - 1.0 d}{5.6} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = \\frac{3470- 0.4 b - 1.1 c}{4.7}<\/span>\n\n\n\n<h3 class=\"wp-block-heading\">iteraci\u00f3n 1<\/h3>\n\n\n\n<p>X0=[100,100,100]<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> b = \\frac{3350 - 0.15(100) - 0.25 (100)}{3.9} = 848.71 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{6500 - 2.1 (848.71 ) - 1.0 (100)}{5.6} = 824.58<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = \\frac{3470- 0.4 (848.71 ) - 1.1 (824.58)}{4.7} = 473.07<\/span>\n\n\n\n<p>X1=[848.71, 824.58, 473.07]<\/p>\n\n\n\n<p>diferencia = [848.71, 824.58, 473.07] - [100,100,100]<\/p>\n\n\n\n<p>diferencia = [748.71, 724.58, 373.07]<\/p>\n\n\n\n<p>error = max|diferencia| = 748.71<\/p>\n\n\n\n<p>resultado del error es mayor que tolerancia de 0.01, se continua con la siguiente iteraci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">iteraci\u00f3n 2<\/h3>\n\n\n\n<p>X1=[848.71, 824.58, 473.07]<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> b = \\frac{3350 - 0.15 (824.58) - 0.25 (473.07)}{3.9} = 796.93 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{6500 - 2.1 (796.93) - 1.0 (473.07)}{5.6} = 777.38 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = \\frac{3470- 0.4 (796.93) - 1.1 (777.38)}{4.7} = 488.53 <\/span>\n\n\n\n<p>X2 = [796.93, 777.38,&nbsp;488.53]<\/p>\n\n\n\n<p>diferencia = [796.93, 777.38,&nbsp;488.53]&nbsp; - [848.71, 824.58, 473.07]<\/p>\n\n\n\n<p>diferencia = [-51.78 ,&nbsp; -47.2, 15.52]<\/p>\n\n\n\n<p>error = max|diferencia| = 51.78<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">iteraci\u00f3n 3<\/h3>\n\n\n\n<p>X2 = [796.93, 777.38,&nbsp;488.53]<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> b = \\frac{3350 - 0.15 (777.38) - 0.25 (488.53)}{3.9} = 797.75<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = \\frac{6500 - 2.1 (797.75) - 1.0 (488.53)}{5.6} = 774.31 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> d = \\frac{3470- 0.4 (797.75) - 1.1 (774.31)}{4.7} = 489.18 <\/span>\n\n\n\n<p>x3 = [ 797.75, 774.31, 489.18]<\/p>\n\n\n\n<p>diferencias = [ 797.75, 774.31, 489.18] - [796.93, 777.38,&nbsp;488.53]<\/p>\n\n\n\n<p>diferencias = [0.82, -3.07, 0.65]<\/p>\n\n\n\n<p>error = max|diferencia| = 3.07<\/p>\n\n\n\n<p>Observaci\u00f3n, el error disminuye en cada iteraci\u00f3n, por lo que el sistema converge.<\/p>\n\n\n\n<p>soluci\u00f3n con el algoritmo, solo se toma la parte entera de la respuesta, pues los pacientes son n\u00fameros enteros.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>respuesta X: &#091;797.83, 774.16, 489.20]<\/code><\/pre>\n\n\n\n<p>con lo que el primer resultado es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> X = &#091;797, 774, 489]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">literal d<\/h2>\n\n\n\n<p>Si la cantidad de pacientes presentados en una semana es la que se indica en el enunciado [350,1400,1500,1040], se determina que el sistema hospitalario estatal no podr\u00e1 atender a todos los pacientes al compara con la capacidad encontrada en el literal c.<\/p>\n\n\n\n<p>Hay un exceso de 2129 pacientes encontrados por grupo:<\/p>\n\n\n\n<p>exceso = [350, 1400, 1500, 1040] - [100, 797, 774, 489] = [250, 603, 726, 551]<\/p>\n\n\n\n<p>con lo que se recomienda una medida de confinamiento para disminuir los contagios y poder atender a los pacientes que se presenten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">literal e<\/h3>\n\n\n\n<p>Siendo K = 0, al estar vacunados todos los ni\u00f1os, y suponiendo que la vacuna es una cura, se tiene:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.4 b + 1.1 c + 4.7 d = 3500 - 0.3 K = 3500 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 3.9 b + 0.15 c + 0.25 d = 3450 - K = 3450 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 2.1 b + 5.6 c + 1.0 d = 6500 - 0 k = 6500 <\/span>\n\n\n\n<p>pivoteado parcialmente por filas se tiene:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{pmatrix} 3.9 &amp; 0.15 &amp;0.25 &amp; \\Big| &amp; 3450 \\\\ 2.1 &amp; 5.6 &amp; 1.0 &amp;\\Big| &amp; 6500 \\\\ 0.4 &amp; 1.1 &amp; 4.7 &amp; \\Big| &amp; 3500 \\end{pmatrix} <\/span>\n\n\n\n<p>Resolviendo por un m\u00e9todo directo:<\/p>\n\n\n\n<p>se obtiene:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>respuesta X: &#091;823.46, 763.35, 495.94]<\/code><\/pre>\n\n\n\n<p>que al compararse con la capacidad anterior en n\u00fameros enteros se encuentra una diferencia de un incremento de 21 pacientes neto ante la condici\u00f3n de usar todos los medicamentos disponibles.<\/p>\n\n\n\n<p>diferencia = [823, 763, 495] - [797, 774, 489] = [26, -11, 6]<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">&nbsp;Instrucciones en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# M\u00e9todo de Gauss-Seidel\n# soluci\u00f3n de sistemas de ecuaciones\n# por m\u00e9todos iterativos\n\nimport numpy as np\n\n# INGRESO\nA = np.array(&#x5B;&#x5B;0.4, 1.10, 4.7 ],\n              &#x5B;3.9, 0.15, 0.25],\n              &#x5B;2.1, 5.60, 1.0  ]])\nk = 100\nB = np.array(&#x5B;3500.-0.3*k,3450-1*k,6500-0*k])\n\nX0  = np.array(&#x5B;100.0,100,100])\n\ntolera = 0.001\niteramax = 100\n\n# PROCEDIMIENTO\n# Matriz aumentada\nBcolumna = np.transpose(&#x5B;B])\nAB  = np.concatenate((A,Bcolumna),axis=1)\nAB0 = np.copy(AB)\n\n# Pivoteo parcial por filas\ntamano = np.shape(AB)\nn = tamano&#x5B;0]\nm = tamano&#x5B;1]\n\n# Para cada fila en AB\nfor i in range(0,n-1,1):\n    # columna desde diagonal i en adelante\n    columna = abs(AB&#x5B;i:,i])\n    dondemax = np.argmax(columna)\n    \n    # dondemax no est\u00e1 en diagonal\n    if (dondemax !=0):\n        # intercambia filas\n        temporal = np.copy(AB&#x5B;i,:])\n        AB&#x5B;i,:]  = AB&#x5B;dondemax+i,:]\n        AB&#x5B;dondemax+i,:] = temporal\n\nA = np.copy(AB&#x5B;:,:n])\nB = np.copy(AB&#x5B;:,n])\n\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        \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)\n    errado = np.max(diferencia)\n    itera = itera + 1\n\n# Respuesta X en columna\nX = np.transpose(&#x5B;X])\n\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>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2021PAOI_T2 Atenci\u00f3n hospitalaria con medicamentos limitados literal a Se plantea el sistema de ecuaciones de acuerdo a la cantidad de medicamentos que se administra a cada tipo de paciente, siendo las variables X=[a,b,c,d] de acuerdo a la tabla: Ni\u00f1os Adolescentes Adultos Adultos Mayores Medicamentos \/semana Medicamento_A 0.3 0.4 1.1 4.7 3500 Medicamento_B 1 3.9 [&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-7405","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\/7405","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=7405"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7405\/revisions"}],"predecessor-version":[{"id":23842,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7405\/revisions\/23842"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}