{"id":1257,"date":"2017-11-07T11:35:01","date_gmt":"2017-11-07T16:35:01","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=1257"},"modified":"2026-04-05T19:51:11","modified_gmt":"2026-04-06T00:51:11","slug":"s1eva2007tiii_t2-funcion-cobb-douglas","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva10\/s1eva2007tiii_t2-funcion-cobb-douglas\/","title":{"rendered":"s1Eva2007TIII_T2 Funci\u00f3n Cobb-Douglas"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-1eva10\/1eva2007tiii_t2-funcion-cobb-douglas\/\" data-type=\"post\" data-id=\"604\">1Eva2007TIII_T2 Funci\u00f3n Cobb-Douglas<\/a><\/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>a1 <a href=\"#interpolafilas\">interpola filas<\/a><\/p>\n\n\n\n<p>a2 <a href=\"#interpolapuntoy\">interpola punto Y<\/a><\/p>\n\n\n\n<p>b1 <a href=\"#interpolacolumnas\">interpola columnas<\/a><\/p>\n\n\n\n<p>b2 <a href=\"#raizNewtonRaphson\">ra\u00edz Newton-Raphson<\/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=\"interpolafilas\">literal a.1 Interpola tabla por filas<\/h2>\n\n\n\n<p>Se usa la tabla para plantear los polinomios usando los datos de cada fila. Se eval\u00faa el polinomio con el valor de K=25 (en miles) para completar los datos de la columna K=25<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>&nbsp;L\\K (miles $)<\/th><th>10<\/th><th>20<\/th><th>25<\/th><th>30<\/th><th>40<\/th><\/tr><\/thead><tbody><tr><td><strong>0<\/strong><\/td><td>0<\/td><td>0<\/td><td>&nbsp;<\/td><td>0<\/td><td>0<\/td><\/tr><tr><td><strong>10<\/strong><\/td><td>11.0000<\/td><td>13.0813<\/td><td>&nbsp;<\/td><td>14.4768<\/td><td>15.5563<\/td><\/tr><tr><td><strong>20<\/strong><\/td><td>18.4997<\/td><td>22.0000<\/td><td>&nbsp;<\/td><td>24.3470<\/td><td>26.1626<\/td><\/tr><tr><td><strong>25<\/strong><\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td><strong>Y<\/strong><\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><td><strong>30<\/strong><\/td><td>25.0746<\/td><td>29.8189<\/td><td>&nbsp;<\/td><td>33.0000<\/td><td>35.4608<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Para la fila L=0 no es necesario realizar un polinomio, pues se observa que para 0 trabajadores la producci\u00f3n es nula, no existe producci\u00f3n p(K)=0&nbsp; y pK(25)=0.<\/p>\n\n\n\n<p>Para la fila L=10, se disponen de 4 puntos, por lo que se plantea un polinomio de grado 3:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{L10}(K) = 11\\frac{(K-20)(K-30)(K-40)}{(10-20)(10-30)(10-40)} +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 13.0813\\frac{(K-10)(K-30)(K-40)}{(20-10)(20-30)(20-40)} +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 14.4768\\frac{(K-10)(K-20)(K-40)}{(30-10)(30-20)(30-40)} +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 15.5563\\frac{(k-10)(k-20)(k-30)}{(40-10)(40-20)(40-30)} <\/span>\n\n\n\n<p>Con el algoritmo se simplifica la expresi\u00f3n:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{L10}(K) =0.0000616335 K^3 - 0.0071269*K^2 + 0.378796 K + 7.8630 <\/span>\n\n\n\n<p>Se eval\u00faa el polinomio con K=25<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{L10}(K) =0.0000616335 (25)^3 - 0.0071269*(25)^2 + 0.378796 (25) + 7.8630 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{L10}(25) = 13.84166<\/span>\n\n\n\n<p>Se observan los resultados encontrados en la primera gr\u00e1fica:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/CobbDouglas02.png\" alt=\"cobb-douglas interpola gr\u00e1fica\" class=\"wp-image-18687\" \/><\/figure>\n\n\n\n<p>Se continua el ejercicio usando los algoritmos para encontrar los polinomios de Lagrange obteniendo:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code> **** literal a:\nPolinomio de Lagrange por fila de L\nfila: 0 , li&#091;fila]: 0  , polinomio pk :\n0\n pk&#091;25]: 0\n___\nfila: 1 , li&#091;fila]: 10  , polinomio pk :\n                     3                        2                               \n6.16333333333342e-5*K  - 0.00712699999999999*K  + 0.378796666666668*K + 7.86309999999999\n pk&#091;25]: 13.8416625000000\n___\nfila: 2 , li&#091;fila]: 20  , polinomio pk :\n                      3              2                                \n0.000103649999999999*K  - 0.0119855*K  + 0.637039999999995*K + 13.2242\n pk&#091;25]: 23.2787937499999\n___\nfila: 3 , li&#091;fila]: 30  , polinomio pk :\n                     3                       2                                \n0.00014048333333333*K  - 0.0162449999999998*K  + 0.863441666666663*K + 17.9242\n pk&#091;25]: 31.5521687500000\n___\n Datos para el polinomio de L\nli:\n&#091; 0 10 20 30]\nk_buscado:\n&#091;0, 13.8416625000000, 23.2787937499999, 31.5521687500000]\n<\/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>a1 <a href=\"#interpolafilas\">interpola filas<\/a><\/p>\n\n\n\n<p>a2 <a href=\"#interpolapuntoy\">interpola punto Y<\/a><\/p>\n\n\n\n<p>b1 <a href=\"#interpolacolumnas\">interpola columnas<\/a><\/p>\n\n\n\n<p>b2 <a href=\"#raizNewtonRaphson\">ra\u00edz Newton-Raphson<\/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=\"interpolapuntoy\">literal a.2 Interpola un punto en Y con K=25<\/h2>\n\n\n\n<p>Con los datos obtenidos se genera el siguiente polinomio P(L), que corresponde a la parte derecha de la gr\u00e1fica mostrada.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{k=25}(L) = 0\\frac{(L-10)(L-20)(L-30)}{(0-10)(0-20)(0-30)} +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 13.84166\\frac{(L-0)(L-20)(L-30)}{(10-0)(10-20)(10-30)} +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 23.27879\\frac{(L-0)(L-10)(L-30)}{(20-0)(20-10)(20-30)} +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 31.55216\\frac{(L-0)(L-10)(L-20)}{(30-0)(30-10)(30-20)} <\/span>\n\n\n\n<p>simplificando con el algoritmo se tiene:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{k=25}(L) = 00.00054012 L^3 - 0.038226 L^2 + 1.71241 L<\/span>\n\n\n\n<p>evaluando el polinomio con L=25<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{k=25}(L) = 00.00054012 (25)^3 - 0.038226 (25)^2 + 1.71241 (25)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> P_{k=25}(L) = 27.358402<\/span>\n\n\n\n<p>Con los datos obtenidos se realiza la gr\u00e1fica en 3D marcando los puntos calculados con los polinomios.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/CobbDouglas02.png\" alt=\"cobb-douglas interpola gr\u00e1fica\" class=\"wp-image-18687\" \/><\/figure>\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>a1 <a href=\"#interpolafilas\">interpola filas<\/a><\/p>\n\n\n\n<p>a2 <a href=\"#interpolapuntoy\">interpola punto Y<\/a><\/p>\n\n\n\n<p>b1 <a href=\"#interpolacolumnas\">interpola columnas<\/a><\/p>\n\n\n\n<p>b2 <a href=\"#raizNewtonRaphson\">ra\u00edz Newton-Raphson<\/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=\"interpolacolumnas\">literal b.1 Interpola tabla por columnas<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>&nbsp;L\\K (miles $)<\/th><th>10<\/th><th>20<\/th><th><span style=\"color: red\">K=?<\/span><\/th><th>30<\/th><th>40<\/th><\/tr><\/thead><tbody><tr><td><strong>0<\/strong><\/td><td>0<\/td><td>0<\/td><td>&nbsp;<\/td><td>0<\/td><td>0<\/td><\/tr><tr><td><strong>10<\/strong><\/td><td>11.0000<\/td><td>13.0813<\/td><td>&nbsp;<\/td><td>14.4768<\/td><td>15.5563<\/td><\/tr><tr><td><strong>20<\/strong><\/td><td>18.4997<\/td><td>22.0000<\/td><td>&nbsp;<\/td><td>24.3470<\/td><td>26.1626<\/td><\/tr><tr><td><strong>25<\/strong><\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td><strong>Y=30<\/strong><\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><td><strong>30<\/strong><\/td><td>25.0746<\/td><td>29.8189<\/td><td>&nbsp;<\/td><td>33.0000<\/td><td>35.4608<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Se repite el ejercicio del literal a, con el mismo algoritmo para no rescribir todo por las filas por columnas. En el algoritmo se intercambian las filas por columnas y se transpone la matriz.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# INGRESO \n\n...\n# Se intercambian los valores de fila columna para repetir el algoritmo\n# obteniendo Y(L=25,k)\nM = np.transpose(M)\nkj = &#x5B;0, 10, 20, 30]\nli = &#x5B;10, 20, 30, 40]\n\nl_busca = 25 # trabajadores\nk_busca = 25 # inversi\u00f3n en miles de $\n<\/pre><\/div>\n\n\n<p>Se ajustan las etiquetas de las gr\u00e1ficas y se obtiene el polinomio a usar, que es la producci\u00f3n Y(k) para un capital K dado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Y(K) = P_{L=25}(K) = \n0.000121812500000016*K**3 - 0.0140857812500013*K**2 +\n 0.748676562500027*K + 15.5417812499999<\/code><\/pre>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Y(K) = 0.00012181 K^3 - 0.014085 K^2 + 0.74867 K + 15.54178 <\/span>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/CobbDouglas03.png\" alt=\"Cobb-Douglas gr\u00e1fica 03\" class=\"wp-image-18688\" \/><\/figure>\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>a1 <a href=\"#interpolafilas\">interpola filas<\/a><\/p>\n\n\n\n<p>a2 <a href=\"#interpolapuntoy\">interpola punto Y<\/a><\/p>\n\n\n\n<p>b1 <a href=\"#interpolacolumnas\">interpola columnas<\/a><\/p>\n\n\n\n<p>b2 <a href=\"#raizNewtonRaphson\">ra\u00edz Newton-Raphson<\/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=\"raizNewtonRaphson\">literal b.2 ra\u00edz con Newton-Raphson<\/h2>\n\n\n\n<p>Para el algoritmo de Newton- Raphson, el ejercicio se plantea igualando el polinomio al valor buscado de producci\u00f3n Y=30. Se escribe luego la expresi\u00f3n en como f(x)=0 y f'(x):.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0.00012181 K^3 - 0.014085 K^2 + 0.74867 K + 15.54178 = 30<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(K) = 0.00012181 K^3 - 0.014085 K^2 + 0.74867 K + 15.54178 - 30<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(K) = 0.0001218(3) K^2 - 0.014085(2) K+ 0.74867 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(K) = 0.00036543 K^2 - 0.02817 K+ 0.74867 <\/span>\n\n\n\n<p>Usando la gr\u00e1fica se inicia con K<sub>0<\/sub>=30, por ser el valor mas cercano de los puntos conocidos a Y=30, se obtienen los siguientes resultados:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">itera = 0<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(30) = 0.00012181 (30)^3 - 0.014085 (30)^2 + 0.74867 (30) +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 15.54178 - 30 = -1.3862<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(30) = 0.00036543 (30)^2 - 0.02817 (30)+ 0.74867 = 0.2325 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{1} = 30 -\\frac{-1.3862}{0.2325} = 35.963 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> errado = |35.963 -30| = 5.963 <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">itera = 1<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(35.963) = 0.00012181 (35.963)^3 - 0.014085 (35.963)^2 +<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 0.74867 (35.963) + 15.54178 - 30 = -0.0854 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'(35.963) = 0.00036543 (35.963)^2 - 0.02817 (35.963) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 0.74867 = 0.2082 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{2} = 35.963 -\\frac{-0.0854}{0.2082} = 36.3734 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> errado = |36.3734 -35.963| = 0.4104 <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">itera = 2<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f( 36.3734) = 0.00012181 ( 36.3734)^3 - 0.014085 ( 36.3734)^2 + <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 0.74867 ( 36.3734) + 15.54178 - 30 = -0.00016955 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f'( 36.3734) = 0.00036543 ( 36.3734)^2 - 0.02817 ( 36.3734)+<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 0.74867 = 0.20751 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{3} = 36.3734 -\\frac{-0.00016955}{0.20751} = 36.374 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> errado = |36.374 - 36.3734| = 0.00081705 <\/span>\n\n\n\n<p>Se observa que el error disminuye en cada iteraci\u00f3n, por lo que el m\u00e9todo converge.<\/p>\n\n\n\n<p>Se sigue con las iteraciones usando el algoritmo:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>m\u00e9todo de Newton-Raphson\ni &#091;'xi', 'fi', 'dfi', 'xnuevo', 'tramo']\n0 &#091;30.     -1.3862  0.2325 35.963   5.963 ]\n1 &#091;35.963  -0.0854  0.2082 36.3734  0.4104]\n2 &#091; 3.6373e+01 -1.6955e-04  2.0751e-01  3.6374e+01  8.1705e-04]\n3 &#091; 3.6374e+01 -3.8858e-08  2.0751e-01  3.6374e+01  1.8726e-07]\nra\u00edz en:  36.3742052500759<\/code><\/pre>\n\n\n\n<p>Se encuentra la ra\u00edz en 36.3741, que corresponde a una inversi\u00f3n K un poco mas de 36 mil d\u00f3lares para una producci\u00f3n Y de 30 mil unidades.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/11\/CobbDouglas04.png\" alt=\"Cobb-Douglas gr\u00e1fica 04\" class=\"wp-image-18689\" \/><\/figure>\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>a1 <a href=\"#interpolafilas\">interpola filas<\/a><\/p>\n\n\n\n<p>a2 <a href=\"#interpolapuntoy\">interpola punto Y<\/a><\/p>\n\n\n\n<p>b1 <a href=\"#interpolacolumnas\">interpola columnas<\/a><\/p>\n\n\n\n<p>b2 <a href=\"#raizNewtonRaphson\">ra\u00edz Newton-Raphson<\/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\">Instrucciones en Python. literal a<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Interpolacion de Lagrange\n# divisoresL solo para mostrar valores denominador\nimport numpy as np\nimport sympy as sym\n\ndef interpola_Lagrange(xi,fi,vertabla=False,\n                       precision=6, casicero = 1e-15):\n    '''\n    Interpolaci\u00f3n con m\u00e9todo de Lagrange\n    resultado: polinomio en forma simb\u00f3lica\n    '''\n    # Matrices como arreglo, numeros reales\n    xi = np.array(xi,dtype=float)\n    fi = np.array(fi,dtype=float)\n    \n    if vertabla==True:\n        print('Interpola con Lagrange')\n        \n    # Polinomio con Lagrange\n    n = len(xi)\n    x = sym.Symbol('x')\n    polinomio = sym.S.Zero\n    divisorL = np.zeros(n, dtype = float)\n    for i in range(0,n,1):\n        \n        termino = 1 # Termino de Lagrange\n        numerador = 1\n        denominador = 1\n        for j  in range(0,n,1):\n            if (j!=i):\n                numerador = numerador*(x-xi&#x5B;j])\n                denominador = denominador*(sym.UnevaluatedExpr(xi&#x5B;i])-xi&#x5B;j])\n        terminoLi = numerador\/denominador\n        \n        if vertabla==True:\n            txt0='' ; txt1='('; txt2=')'\n            if i&gt;0:\n                txt0='+'\n            if n&gt;2:\n                txt1=''; txt2=''\n            print(txt0,fi&#x5B;i],'*'+txt1,numerador,txt2+'\/'+ txt1,\n                  denominador,txt2)\n        \n        polinomio = polinomio + (terminoLi.doit())*fi&#x5B;i]\n        denominador = denominador.doit()\n        divisorL&#x5B;i] = denominador\n        \n    # simplifica el polinomio\n    polisimple = polinomio.expand()\n    \n    try: # intenta redondear coeficientes a precisiion    \n        polisimple = redondea_coef(polisimple, precision,casicero)\n    except NameError:\n        print(&quot;redondea_coef() no se encuentra definida.&quot;)\n\n    if vertabla==True:\n        print('polinomio simplificado')\n        print(polisimple)\n        \n    return(polisimple)\n\ndef redondea_coef(ecuacion, precision=6,casicero = 1e-15):\n    ''' redondea coeficientes de t\u00e9rminos suma de una ecuacion\n    '''\n    tipo = type(ecuacion)\n    tipo_eq = False\n    if tipo == sym.core.relational.Equality:\n        RHS = ecuacion.rhs\n        ecuacion = ecuacion.lhs\n        tipo = type(ecuacion)\n        tipo_eq = True\n\n    if tipo == sym.core.add.Add: # t\u00e9rminos suma de ecuacion\n        term_sum = sym.Add.make_args(ecuacion)\n        ecuacion = sym.S.Zero\n        for term_k in term_sum:\n            # factor multiplicativo de termino suma\n            term_mul = sym.Mul.make_args(term_k)\n            producto = sym.S.One\n            for factor in term_mul:\n                if not(factor.has(sym.Symbol)):\n                    factor = np.around(float(factor),precision)\n                    if (abs(factor)%1)&lt;casicero: # si es entero\n                        factor = int(factor)\n                producto = producto*factor\n            ecuacion = ecuacion + producto\n    if tipo == sym.core.mul.Mul: # termino \u00fanico, busca factores\n        term_mul = sym.Mul.make_args(ecuacion)\n        producto = sym.S.One\n        for factor in term_mul:\n            if not(factor.has(sym.Symbol)):\n                factor = np.around(float(factor),precision)\n                if (abs(factor)%1)&lt;casicero: # si es entero\n                    factor = int(factor)\n            producto = producto*factor\n        ecuacion = producto\n    if tipo == float: # si es entero\n        if (abs(ecuacion)%1)&lt;casicero: \n            ecuacion = int(ecuacion)\n    if tipo_eq:\n        ecuacion = sym.Eq(ecuacion,RHS)\n    return(ecuacion)\n\n# INGRESO\nM = &#x5B;&#x5B; 0,       0,       0,       0     ],\n     &#x5B;11.0000, 13.0813, 14.4768, 15.5563],\n     &#x5B;18.4997, 22.0000, 24.3470, 26.1626],\n     &#x5B;25.0746, 29.8189, 33.0000, 35.4608]]\nli = &#x5B;0, 10, 20, 30]\nkj = &#x5B;10, 20, 30, 40]\n\nl_busca = 25 # trabajadores\nk_busca = 25 # inversion en miles de $\n\n# PROCEDIMIENTO\nM = np.array(M)\ntamano = np.shape(M)\nn = tamano&#x5B;0]\nm = tamano&#x5B;1]\nx,K,L = sym.symbols('x,K,L')\n\n# Literal a.1 Interpola polinomio pk\n# por fila de trabajadores L\n# evalua en k_busca, inversiones en miles\npoli_fila = &#x5B;]\npk_columna =&#x5B;]\nfor fila in range(0,n,1):\n    pk = interpola_Lagrange(kj,M&#x5B;fila,:],vertabla=True,\n                            precision=4)\n    pk = pk.subs(x,K)\n    poli_fila.append(pk)\n    pk_busca = poli_fila&#x5B;fila].subs(K,k_busca)\n    pk_columna.append(pk_busca)\n\n# Interpola un polinomio en columna de inversiones pk_columna\n# evalua en l_busca\npkl_busca = interpola_Lagrange(li,pk_columna)\npkl_busca = pkl_busca.subs(x,L)\nYkl_busca = pkl_busca.subs(L,l_busca)\n\n# SALIDA\nnp.set_printoptions(precision=4)\nprint(' **** literal a:')\nprint('___ Polinomio por fila de trabajadores L')\nfor fila in range(0,n,1):\n    print(fila,', L&#x5B;'+str(fila)+']=',li&#x5B;fila], ', pk(K) :')\n    print(poli_fila&#x5B;fila])\n    print(' pk&#x5B;'+str(k_busca)+']:',pk_columna&#x5B;fila])\n    print('___')\nprint('\\n Datos para el polinomio de L')\nprint('     Li: ',li)\nprint('k_busca: ',pk_columna)\nprint('Polinomio p(L):')\nprint(pkl_busca)\nprint('Y&#x5B;l_busca,k_busca]: ',Ykl_busca)\n<\/pre><\/div>\n\n\n<p>Gr\u00e1ficas<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Grafica de P(k) por cada L\nimport matplotlib.pyplot as plt\n\nmuestras = 20\nxk = np.linspace(min(kj),max(kj),muestras)\n\nplt.subplot(121)\nfor fila in range(0,n,1):\n    pk = poli_fila&#x5B;fila]\n    if pk.has(K):\n        pk_lambda = sym.lambdify(K,pk)\n        pkx = pk_lambda(xk)\n    else:\n        nk = len(xk)\n        pkx = np.ones(nk)*float(pk)\n    plt.plot(xk,pkx, label='pk(K);li='+str(li&#x5B;fila]))\n    plt.plot(k_busca,pk_columna&#x5B;fila],'o')\nplt.ylabel('p(K)')\nplt.xlabel('K inversiones en miles')\nplt.axvline(k_busca, linestyle ='dashed')\nplt.title('Polinomios pk(K)')\nplt.legend()\n\n# Grafica de p(L) en k_busca \nxl = np.linspace(min(li),max(li),muestras)\npl_lambda = sym.lambdify(L,pkl_busca)\nplx = pl_lambda(xl)\n\nplt.subplot(122)\nplt.plot(xl,plx, label='p(L)')\nplt.plot(li,pk_columna,'o', label='&#x5B;li,pk(K)]')\nplt.axvline(l_busca, linestyle ='dashed')\nplt.plot(l_busca,Ykl_busca,'o')\nplt.ylabel('p(L)')\nplt.xlabel('L trabajadores')\nplt.title('Polinomio pl(L)')\nplt.legend()\n# plt.show()\n\n# Grafica 3D\nfrom mpl_toolkits.mplot3d import axes3d\nX, Y = np.meshgrid(kj,li)\nfigura = plt.figure()\nax = figura.add_subplot(111, projection = '3d')\nax.plot_wireframe(X,Y,M)\nax.plot(k_busca,l_busca,Ykl_busca,'o',label='(25,25,Y)')\nax.plot(k_busca*np.ones(len(li)),li,pk_columna,'o')\nax.set_xlabel('K inversion')\nax.set_ylabel('L trabajadores')\nax.set_zlabel('Y producci\u00f3n')\nax.set_title('Cobb-Douglas')\nplt.show()\n<\/pre><\/div>\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>a1 <a href=\"#interpolafilas\">interpola filas<\/a><\/p>\n\n\n\n<p>a2 <a href=\"#interpolapuntoy\">interpola punto Y<\/a><\/p>\n\n\n\n<p>b1 <a href=\"#interpolacolumnas\">interpola columnas<\/a><\/p>\n\n\n\n<p>b2 <a href=\"#raizNewtonRaphson\">ra\u00edz Newton-Raphson<\/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\">Instrucciones en Python. literal b<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n#1Eva_IIIT2007_T2 Funci\u00f3n Cobb-Douglas\n# Interpolacion de Lagrange # Newton-Raphson\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef newton_raphson(fx,dfx,x0, tolera, iteramax=100, vertabla=False, precision=4):\n    '''\n    funci\u00f3nx y fxderiva en forma num\u00e9rica lambda\n    xi es el punto inicial de b\u00fasqueda\n    '''\n    itera=0\n    xi=x0\n    tramo = abs(2*tolera)\n    if vertabla==True:\n        print('i', &#x5B;'xi','fi','dfi', 'xnuevo', 'tramo'])\n        np.set_printoptions(precision)\n    while (tramo&gt;=tolera and itera&lt;iteramax):\n        fi = fx(xi)\n        dfi = dfx(xi)\n        xnuevo = xi - fi\/dfi\n        tramo = abs(xnuevo-xi)\n        if vertabla==True:\n            print(itera,np.array(&#x5B;xi,fi,dfi,xnuevo,tramo]))\n        xi = xnuevo\n        itera = itera + 1\n    if itera&gt;=iteramax:\n        xi = np.nan\n        print('itera: ',itera, 'No converge,se alcanz\u00f3 el m\u00e1ximo de iteraciones')\n    return(xi)\n\n# INGRESO\ny_busca = 30\nfx  = lambda K: 0.0001218125*K**3 - 0.0140857812500013*K**2 + 0.748676562500027*K + 15.5417812499999 -y_busca\ndfx = lambda K: 0.00036543*K**2 - 0.02817*K + 0.748676562500027\n\nx0 = 30\ntolera = 0.00001\nmuestras = 20\n\n# PROCEDIMIENTO\nrespuesta = newton_raphson(fx,dfx,x0, tolera, vertabla=True)\n# SALIDA\nprint('ra\u00edz en: ', respuesta)\n\n# Grafica\nxl = np.linspace(0,40,muestras)\nplx = fx(xl)\nplt.plot(xl,plx, label='Y(k)')\nplt.axhline(0,linestyle='dotted')\nplt.ylabel('f(K)')\nplt.xlabel('K inversiones en miles')\nplt.title('f(K) = Y(K)-'+str(y_busca))\nplt.show()\n<\/pre><\/div>\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>a1 <a href=\"#interpolafilas\">interpola filas<\/a><\/p>\n\n\n\n<p>a2 <a href=\"#interpolapuntoy\">interpola punto Y<\/a><\/p>\n\n\n\n<p>b1 <a href=\"#interpolacolumnas\">interpola columnas<\/a><\/p>\n\n\n\n<p>b2 <a href=\"#raizNewtonRaphson\">ra\u00edz Newton-Raphson<\/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>Ejercicio: 1Eva2007TIII_T2 Funci\u00f3n Cobb-Douglas a1 interpola filas a2 interpola punto Y b1 interpola columnas b2 ra\u00edz Newton-Raphson Algoritmo literal a.1 Interpola tabla por filas Se usa la tabla para plantear los polinomios usando los datos de cada fila. Se eval\u00faa el polinomio con el valor de K=25 (en miles) para completar los datos de la [&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":[44],"tags":[58,54],"class_list":["post-1257","post","type-post","status-publish","format-standard","hentry","category-mn-s1eva10","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1257","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=1257"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1257\/revisions"}],"predecessor-version":[{"id":23807,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1257\/revisions\/23807"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}