{"id":13507,"date":"2025-11-19T07:55:00","date_gmt":"2025-11-19T12:55:00","guid":{"rendered":"https:\/\/blog.espol.edu.ec\/algoritmos101\/?p=13507"},"modified":"2026-04-05T19:53:54","modified_gmt":"2026-04-06T00:53:54","slug":"s1eva2025paoii_t2-publicidad-provincia-medio-comunicacion","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva30\/s1eva2025paoii_t2-publicidad-provincia-medio-comunicacion\/","title":{"rendered":"s1Eva2025PAOII_T2 publicidad por provincia y medio de comunicaci\u00f3n"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-1eva30\/1eva2025paoii_t2-publicidad-provincia-medio-comunicacion\/\" data-type=\"post\" data-id=\"13490\">1Eva2025PAOII_T2 publicidad por provincia y medio de comunicaci\u00f3n<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal a<\/h2>\n\n\n\n<p>Planteamiento del sistema de ecuaciones<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{cases} 0.35x + 0.45y+ 0.2z+0.15w =540 \\\\ 1.2x+0.41y+0.35z+0.19w = 1250 \\\\ 0.1x+0.3y+0.7z+0.12w=1200 \\end{cases} <\/span>\n\n\n\n<p>siendo la variable libre con valor por ejemplo cinco, w =5<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{cases} 0.35x + 0.45y+ 0.2z =540-0.15(5) \\\\ 1.2x+0.41y+0.35z = 1250 -0.19(5)\\\\ 0.1x+0.3y+0.7z=1200 - 0.12(5)\\end{cases} <\/span>\n\n\n\n<p>la forma matricial del sistema es:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\begin{pmatrix} -0.35 &amp; 0.45 &amp; 0.2 \\\\ 1.2 &amp; 0.41 &amp; 0.35 \\\\ 0.1 &amp; 0.3 &amp; 0.7 \\end{pmatrix} \\begin{pmatrix} x \\\\ y \\\\ y \\end{pmatrix} = \\begin{pmatrix} 540-0.15(5) \\\\ 1250-0.19(5) \\\\ 1200-0.12(5) \\end{pmatrix} <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\left( \\begin{array}{rrr|r} 0.35 &amp; 0.45 &amp; 0.2 &amp; 540-0.15(5) \\\\ 1.2 &amp; 0.41 &amp; 0.35 &amp; 1250-0.19(5) \\\\ 0.1 &amp; 0.3 &amp; 0.7 &amp; 1200-0.12(5) \\end{array} \\right)<\/span>\n\n\n\n<p>Para el pivoteo parcial por filas, se usa la columna 0, el mayor valor est\u00e1 en la fila 1, por lo que se intercambia la fila 0 y 1.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\left( \\begin{array}{rrr|r} 1.2 &amp; 0.41 &amp; 0.35 &amp; 1250-0.19(5) \\\\ 0.35 &amp; 0.45 &amp; 0.2 &amp; 540-0.15(5) \\\\ 0.1 &amp; 0.3 &amp; 0.7 &amp; 1200-0.12(5) \\end{array} \\right)<\/span>\n\n\n\n<p>Luego al observar la columna 1 desde la diagonal hacia abajo, se encuentra que el valor del pivote ya es el mayor, por lo que no ser requieren cambios de fila<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p>Las expresiones para el m\u00e9todo de Gauss-Seidel son:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 1.2x+0.41y+0.35z = 1250-0.19(5)<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.35x+0.45y+0.2z = 540-0.15(5)<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.1x+0.3y+0.7z = 1200-0.12(5)<\/span>\n\n\n\n<p>despejando la variable de la diagonal:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x = \\dfrac{1250-0.19(5)-0.41y-0.35z}{1.2}<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y = \\dfrac{540-0.15(5)-0.35x-0.2z}{0.45}<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z = \\dfrac{1200-0.12(5)-0.1x-0.3y}{0.7}<\/span>\n\n\n\n<p>el vector inicial se puede estimar considerando por ejemplo todas las variables independiente en cero<\/p>\n\n\n\n<p>X<sub>0<\/sub> =[ (1250-0.19(5))\/1.2, (540-0.15(5))\/0.45, (1200-0.12(5))\/0.7]<\/p>\n\n\n\n<p>X<sub>0<\/sub> = [1040.87, 1198.33, 1713.42]<\/p>\n\n\n\n<p>con lo que si las otra variables no son cero, se podr\u00eda empezar con un n\u00famero aproximadamente la mitad de lo calculado<\/p>\n\n\n\n<p>X<sub>0<\/sub> = [500, 550, 850]<\/p>\n\n\n\n<p>la tolerancia ser\u00e1 de 0.1, dado que el n\u00famero de espacios publicitarios son de tipo entero<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal c<\/h2>\n\n\n\n<p>iteraci\u00f3n = 0 , X0 =X<sub>0<\/sub> = [500, 550, 850]<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_1= \\dfrac{1250-0.19(5)-0.41(550)-0.35(850)}{1.2} =619.62<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_1 = \\dfrac{540-0.15(5)-0.35(619.62)-0.2(850)}{0.45} =356.95<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z_1 = \\dfrac{1200-0.12(5)-0.1(619.62)-0.3(356.95)}{0.7}=1471.92<\/span>\n\n\n\n<p class=\"has-text-align-center\">X<sub>1<\/sub>=[619.62, 356.95, 1471.92]<\/p>\n\n\n\n<p class=\"has-text-align-center\">errado = max | [X<sub>1<\/sub>-X<sub>0<\/sub>]  |<\/p>\n\n\n\n<p class=\"has-text-align-center\">=max |[619.62, 356.95, 1471.92]-[500, 550, 850] | <\/p>\n\n\n\n<p class=\"has-text-align-center\">= max | [119.62, 193.04, 671.92] | = 671.92<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>iteraci\u00f3n = 1 , X<sub>1<\/sub>=[619.62, 356.95, 1471.92]<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_2 = \\dfrac{1250-0.19(5)-0.41(356.95)-0.35(1471.92)}{1.2} = 489.60 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_2 = \\dfrac{540-0.15(5)-0.35(489.60)-0.2(1471.92)}{0.45}= 159.45<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z _2= \\dfrac{1200-0.12(5)-0.1(489.60)-0.3(159.45)}{0.7} = 1575.14 <\/span>\n\n\n\n<p class=\"has-text-align-center\">X<sub>2<\/sub> = [ 489.60, 159.45, 1575.14 ]<\/p>\n\n\n\n<p class=\"has-text-align-center\">errado=max | [489.60, 159.45, 1575.14 ]-[619.62, 356.95, 1471.92]  |<\/p>\n\n\n\n<p class=\"has-text-align-center\">= max | [130.02, 197.50, 103.22] | = 197.50<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>iteraci\u00f3n = 2 , X<sub>2<\/sub> = [ 489.60, 159.45, 1575.14 ]<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_3 = \\dfrac{1250-0.19(5)-0.41(159.45)-0.35(1575.14)}{1.2} = 526.97<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_3 = \\dfrac{540-0.15(5)-0.35(526.97)-0.2(1575.14)}{0.45}= 84.50 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z_3 = \\dfrac{1200-0.12(5)-0.1(526.97)-0.3(84.50)}{0.7} =1601.92<\/span>\n\n\n\n<p class=\"has-text-align-center\">X<sub>2<\/sub> = [ 526.97, 84.50, 1601.92 ]<\/p>\n\n\n\n<p class=\"has-text-align-center\">errado = max | [526.97, 84.50, 1601.92 ] -[489.60, 159.45, 1575.14 ]|<\/p>\n\n\n\n<p class=\"has-text-align-center\">= max |[37.37, 74.94, 26.78]| = 74.94<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal d<\/h2>\n\n\n\n<p>El error disminuye en cada iteraci\u00f3n , por lo que se estima que el m\u00e9todo converge.<\/p>\n\n\n\n<p>Usando el algoritmo, el resultado luego de 10 iteraciones es:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Matriz aumentada<br>&#091;&#091;3.50000e-01 4.50000e-01 2.00000e-01 5.37500e+02]<br>&#091;1.20000e+00 4.10000e-01 3.50000e-01 1.24905e+03]<br>&#091;1.00000e-01 3.00000e-01 7.00000e-01 1.19940e+03]]<br>Pivoteo parcial:<br>1 intercambiar filas: 0 y 1<br>AB<br>&#091;&#091;1.20000e+00 4.10000e-01 3.50000e-01 1.24905e+03]<br>&#091;3.50000e-01 4.50000e-01 2.00000e-01 5.37500e+02]<br>&#091;1.00000e-01 3.00000e-01 7.00000e-01 1.19940e+03]]<br>Iteraciones Gauss-Seidel<br>itera,&#091;X]<br>errado,&#091;diferencia]<br>0 &#091;500. 550. 800.]<br>nan<br>1 &#091; 619.625 356.9583 1471.9286]<br>671.9285714285713 &#091;119.625 193.0417 671.9286]<br>2 &#091; 489.6017 159.4526 1575.1486]<br>197.50571538800702 &#091;130.0233 197.5057 103.2201]<br>3 &#091; 526.977 84.5074 1601.9287]<br>74.94523526150007 &#091;37.3753 74.9452 26.7801]<br>4 &#091; 544.7724 58.7642 1610.4193]<br>25.74314554013919 &#091;17.7954 25.7431 8.4906]<br>5 &#091; 551.0916 50.0757 1613.2402]<br>8.688487997115615 &#091;6.3192 8.6885 2.8209]<br>6 &#091; 553.2374 47.1531 1614.1862]<br>2.9226923643758127 &#091;2.1458 2.9227 0.946 ]<br>7 &#091; 553.9601 46.1705 1614.5041]<br>0.9825295158950382 &#091;0.7227 0.9825 0.3178]<br>8 &#091; 554.2031 45.8403 1614.6109]<br>0.33025930633446166 &#091;0.243 0.3303 0.1068]<br>9 &#091; 554.2847 45.7293 1614.6468]<br>0.1110080156455382 &#091;0.0817 0.111 0.0359]<br>10 &#091; 554.3122 45.6919 1614.6589]<br>0.03731226893541617 &#091;0.0275 0.0373 0.0121]<br>Metodo de Jacobi<br>numero de condici\u00f3n: 6.0782105438630545<br>X: &#091; 554.3122 45.6919 1614.6589]<br>errado: 0.03731226893541617<br>iteraciones: 10<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">literal e<\/h2>\n\n\n\n<p>el n\u00famero de condici\u00f3n es 6.07 que es relativamente bajo, \"cercano a 1\" por lo que el sistema no tiene grandes variaciones en el resultado antes peque\u00f1os cambios en los valores de entrada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal f<\/h2>\n\n\n\n<p>EL resultado del algoritmo se ha mostrado en el literal e<\/p>\n\n\n\n<p>Las instrucciones en Python usadas son:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport numpy as np\n\ndef gauss_seidel(A,B,X0,tolera, iteramax=100, vertabla=False, precision=4):\n    ''' M\u00e9todo de Gauss Seidel, tolerancia, vector inicial X0\n        para mostrar iteraciones: vertabla=True\n    '''\n    # Matrices como arreglo, numeros reales\n    A = np.array(A, dtype=float)\n    B = np.array(B, dtype=float)\n    X0 = np.array(X0, dtype=float)\n    tamano = np.shape(A)\n    n = tamano&#x5B;0]\n    m = tamano&#x5B;1]\n \n    # valores iniciales\n    diferencia = 2*tolera*np.ones(n, dtype=float)\n    errado = 2*tolera # np.max(diferencia)\n \n    tabla = &#x5B;np.copy(X0)] # tabla de iteraciones\n    tabla = np.concatenate((tabla,&#x5B;&#x5B;np.nan]]),\n                            axis=1) # a\u00f1ade errado\n \n    if vertabla==True:\n        print('Iteraciones Gauss-Seidel')\n        print('itera,&#x5B;X]')\n        print('   errado,&#x5B;diferencia]')\n        print(0,X0)\n        print(' ',np.nan)\n        np.set_printoptions(precision)\n \n    itera = 0 # Gauss-Sediel\n    X = np.copy(X0)\n    while (errado&gt;tolera and itera&lt;iteramax):\n \n        for i in range(0,n,1): # una ecuacion\n            suma = B&#x5B;i]\n            for j in range(0,m,1):\n                if (i!=j):\n                    suma = suma-A&#x5B;i,j]*X&#x5B;j]\n            nuevo = suma\/A&#x5B;i,i]\n            diferencia&#x5B;i] = np.abs(nuevo-X&#x5B;i])\n            X&#x5B;i] = nuevo\n        errado = np.max(diferencia)\n \n        Xfila= np.concatenate((X,&#x5B;errado]),axis=0)\n        tabla = np.concatenate((tabla,&#x5B;Xfila]),axis = 0)\n        itera = itera + 1\n        if vertabla==True:\n            print(itera, X)\n            print(' ', errado,diferencia)\n \n    # No converge\n    if (itera&gt;iteramax):\n        X = np.nan\n        print('No converge,iteramax superado')\n    return(X,tabla)\n \ndef pivoteafila(A,B,vertabla=False):\n    '''\n    Pivotea parcial por filas, entrega matriz aumentada AB\n    Si hay ceros en diagonal es matriz singular,\n    Tarea: Revisar si diagonal tiene ceros\n    '''\n    A = np.array(A,dtype=float)\n    B = np.array(B,dtype=float)\n    # Matriz aumentada\n    nB = len(np.shape(B))\n    if nB == 1:\n        B = np.transpose(&#x5B;B])\n    AB  = np.concatenate((A,B),axis=1)\n     \n    if vertabla==True:\n        print('Matriz aumentada')\n        print(AB)\n        print('Pivoteo parcial:')\n     \n    # Pivoteo por filas AB\n    tamano = np.shape(AB)\n    n = tamano&#x5B;0]\n    m = tamano&#x5B;1]\n     \n    # Para cada fila en AB\n    pivoteado = 0\n    for i in range(0,n-1,1):\n        # columna desde diagonal i en adelante\n        columna = np.abs(AB&#x5B;i:,i])\n        dondemax = np.argmax(columna)\n         \n        # dondemax no es 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 \n            pivoteado = pivoteado + 1\n            if vertabla==True:\n                print(' ',pivoteado, 'intercambiar filas: ',i,'y', dondemax+i)\n    if vertabla==True:\n        if pivoteado==0:\n            print('  Pivoteo por filas NO requerido')\n        else:\n            print('AB')\n            print(AB)\n    return(AB)\n \n# PROGRAMA B\u00fasqueda de solucion  --------\n# INGRESO\n\nA = &#x5B;&#x5B;0.35,0.45,0.2],\n     &#x5B;1.2,0.41,0.35],\n     &#x5B;0.1,0.3,0.7]]\n\nB = &#x5B;540-0.5*5,1250-0.19*5,1200-0.12*5]\n \nX0 = &#x5B;500,550,800]\ntolera = 0.1\niteramax = 100\nverdecimal = 4\n \n# PROCEDIMIENTO\nAB = pivoteafila(A,B,vertabla=True)\nn,m = np.shape(AB)\nA = AB&#x5B;:,:n] # separa en A y B\nB = AB&#x5B;:,n]\n \n&#x5B;X, tabla] = gauss_seidel(A,B,X0,tolera,\n                          iteramax=100,\n                          vertabla=True,\n                          precision=verdecimal)\nn_itera = len(tabla)-1\nerrado = tabla&#x5B;-1,-1]\n \n# numero de condicion\nncond = np.linalg.cond(A)\n \n# SALIDA\nprint('Metodo de Jacobi')\nprint('numero de condici\u00f3n:', ncond)\nprint('X: ',X)\nprint('errado:',errado)\nprint('iteraciones:', n_itera)\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2025PAOII_T2 publicidad por provincia y medio de comunicaci\u00f3n literal a Planteamiento del sistema de ecuaciones siendo la variable libre con valor por ejemplo cinco, w =5 la forma matricial del sistema es: Para el pivoteo parcial por filas, se usa la columna 0, el mayor valor est\u00e1 en la fila 1, por lo que [&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-13507","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\/13507","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=13507"}],"version-history":[{"count":12,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/13507\/revisions"}],"predecessor-version":[{"id":23817,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/13507\/revisions\/23817"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=13507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=13507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=13507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}