{"id":7838,"date":"2021-11-25T21:45:31","date_gmt":"2021-11-26T02:45:31","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=7838"},"modified":"2026-04-05T20:04:25","modified_gmt":"2026-04-06T01:04:25","slug":"s1eva2021paoii_t1-interpolacion-para-perfil-de-terreno","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva30\/s1eva2021paoii_t1-interpolacion-para-perfil-de-terreno\/","title":{"rendered":"s1Eva2021PAOII_T1 Interpolaci\u00f3n para perfil de terreno"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-1eva30\/1eva2021paoii_t1-interpolacion-perfil-terreno\/\" data-type=\"post\" data-id=\"7817\">1Eva2021PAOII_T1 Interpolaci\u00f3n para perfil de terreno<\/a><\/p>\n\n\n\n<p>a. Plantee y desarrolle un polinomio P<sub>3<\/sub>(d<sub>1<\/sub>) de <strong>grado 3<\/strong>, que describa el perfil del terreno en el <strong>intervalo<\/strong> [0,1300] de distancias a la primera antena d<sub>1<\/sub>.<\/p>\n\n\n\n<p>Para plantear el ejercicio, se observan los punto en el <strong>intervalo<\/strong> [0,1300], asi como los tama\u00f1os de paso.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"564\" height=\"442\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2021\/11\/PerfilTerreno01.png\" alt=\"Perfil Terreno 01\" class=\"wp-image-18815\" \/><\/figure>\n\n\n\n<p>Como el polinomio es de grado 3,se requiere 3 tramos o 4 muestras, el intervalo presenta 5. Para incluir el punto de inicio, fin y m\u00e1ximo, las muestras seleccionadas son las que se muestran en la tabla siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-table alignwide\"><table><thead><tr><th>\u0394d<sub>1<\/sub><\/th><th>distancia d1<\/th><th>Perfil de Terreno<\/th><th>DifDiv1<\/th><th>DifDiv2<\/th><th>DifDiv3<\/th><\/tr><\/thead><tbody><tr><td>350<\/td><td>0<\/td><td>85<\/td><td>DifDiv11 = 0.02857<\/td><td>DifDiv12 = -6.122E-05<\/td><td>DifDiv13 =&nbsp; -1.123E-05<\/td><\/tr><tr><td>350<\/td><td>350<\/td><td>95<\/td><td>DifDiv21 = -0.01428<\/td><td>DifDiv22 = -1.127E-05<\/td><td>&nbsp;<\/td><\/tr><tr><td>600<\/td><td>700<\/td><td>90<\/td><td>DifDiv31 =<br>-0.025<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><td>&nbsp;<\/td><td>1300<\/td><td>75<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Los tama\u00f1os de paso, \u0394d<sub>1<\/sub>, son diferentes, por lo que se pueden usar el m\u00e9todo de diferencias divididas de Newton o el M\u00e9todo de Lagrange.<\/p>\n\n\n\n<p>Usando diferencias divididas de Newton, se completa la tabla con las expresiones:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> DifDiv_{11} = \\frac{95-85}{350-0} = 0.02857143 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> DifDiv_{21} = \\frac{90-95}{700-350} = -0.01428<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> DifDiv_{31} = \\frac{75-90}{1300-700} =-0.025<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> DifDiv_{12} = \\frac{-0.01428-0.02857}{700-0} = -6.122E-05 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> DifDiv_{22} = \\frac{-0.025-(-0.01428)}{1300-350} = -1.127E-05 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> DifDiv_{13} = \\frac{(-1.127E-05) -(6.122E-05)}{1300-0} = 1.123E-05<\/span>\n\n\n\n<p>con lo que se puede construir el polinomio<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_{3}(d) = 85 + 0.02857(d-0)+(-6.122E5)(d-0)(d-350)+<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -(1.123E-5)(d-0)(d-350)(d-700) <\/span>\n\n\n\n<p>simplificando el polinomio se obtiene:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_{3}(d) = 85.0+ 0.05941 d - 0.0001015 d^2 +(3.842E-8)d^3 <\/span>\n\n\n\n<p>b. Calcule el <strong>error<\/strong> sobre el o los datos que no se usaron en el <strong>intervalo<\/strong><\/p>\n\n\n\n<p>El valor no usado que estaba en el intervalo es d=1000, que se eval\u00faa en p<sub>3<\/sub>(d) y se compara con el valor muestreado para ver el error del modelo<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_{3}(1000) = 85.0+ 0.05941 (1000) - 0.0001015 (1000)^2 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">+(3.842E-8)(1000)^3 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_{3}(1000) = 81.26 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Error = |81.26 - 80| = 1.26<\/span>\n\n\n\n<p>encontrando que el error es de 1.26m de altitud del terreno a los 1000m de distancia desde la referencia a la izquierda.<\/p>\n\n\n\n<p>c. Desarrolle y justifique una <strong>propuesta para disminuir los errores<\/strong> encontrados en el literal anterior, sobre el mismo intervalo, es decir obtiene un nuevo polinomio (use algoritmo).<\/p>\n\n\n\n<p>En caso de requerir una mayor precisi\u00f3n, se puede aumentar el grado del polinomio al incluir el punto d=1000 no usado en el paso anterior.<\/p>\n\n\n\n<p>Usando el algoritmo con Python se obtiene:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Tabla Diferencia Dividida\n&#091;&#091;'i   ', 'xi  ', 'fi  ', 'F&#091;1]', 'F&#091;2]', 'F&#091;3]', 'F&#091;4]', 'F&#091;5]']]\n&#091;&#091; 0.0000e+00  0.0000e+00  8.5000e+01  2.8571e-02 -6.1224e-05  3.1920e-08  2.1666e-11  0.0000e+00]\n &#091; 1.0000e+00  3.5000e+02  9.5000e+01 -1.4286e-02 -2.9304e-05  6.0086e-08  0.0000e+00  0.0000e+00]\n &#091; 2.0000e+00  7.0000e+02  9.0000e+01 -3.3333e-02  2.7778e-05  0.0000e+00  0.0000e+00  0.0000e+00]\n &#091; 3.0000e+00  1.0000e+03  8.0000e+01 -1.6667e-02  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00]\n &#091; 4.0000e+00  1.3000e+03  7.5000e+01  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00]]\ndDividida: \n&#091; 2.8571e-02 -6.1224e-05  3.1920e-08  2.1666e-11  0.0000e+00]\npolinomio: \n2.16658863275405e-11*x*(x - 1000.0)*(x - 700.0)*(x - 350.0) + 3.19204604918891e-8*x*(x - 700.0)*(x - 350.0) - 6.12244897959184e-5*x*(x - 350.0) + 0.0285714285714286*x + 85.0\npolinomio simplificado: \n2.16658863275405e-11*x**4 - 1.24946064795689e-8*x**3 - 6.6683650518237e-5*x**2 + 0.0525123706702654*x + 85.0\n<\/code><\/pre>\n\n\n\n<p>junto a la gr\u00e1fica:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2021\/11\/PerfilTerreno02.png\" alt=\"Perfil Terreno 02\" class=\"wp-image-18816\" \/><\/figure>\n\n\n\n<p>d. Escriba sus conclusiones y recomendaciones sobre los resultados obtenidos entre los dos polinomios.<\/p>\n\n\n\n<p>Dado que el error se considera m\u00ednimo en el intervalo, y el coeficiente del polinomio para x<sup>4<\/sup> es del orden de 10<sup>-11<\/sup> se recomendar\u00eda usar el polinomio de grado 3.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Polinomio interpolaci\u00f3n\n# Diferencias Divididas de Newton\n# Tarea: Verificar tama\u00f1o de vectores,\n#        verificar puntos equidistantes en x\nimport numpy as np\nimport sympy as sym\nimport matplotlib.pyplot as plt\n\n# INGRESO , Datos de prueba\nxi = np.array(&#x5B;0.0,350,700,1000,1300])\nfi = np.array(&#x5B;85.0,95,90,80,75])\n\n# PROCEDIMIENTO\n\n# Tabla de Diferencias Divididas Avanzadas\ntitulo = &#x5B;'i   ','xi  ','fi  ']\nn = len(xi)\nki = np.arange(0,n,1)\ntabla = np.concatenate((&#x5B;ki],&#x5B;xi],&#x5B;fi]),axis=0)\ntabla = np.transpose(tabla)\n\n# diferencias divididas vacia\ndfinita = np.zeros(shape=(n,n),dtype=float)\ntabla = np.concatenate((tabla,dfinita), axis=1)\n\n# Calcula tabla, inicia en columna 3\n&#x5B;n,m] = np.shape(tabla)\ndiagonal = n-1\nj = 3\nwhile (j &lt; m):\n    # A\u00f1ade t\u00edtulo para cada columna\n    titulo.append('F&#x5B;'+str(j-2)+']')\n\n    # cada fila de columna\n    i = 0\n    paso = j-2 # inicia en 1\n    while (i &lt; diagonal):\n        denominador = (xi&#x5B;i+paso]-xi&#x5B;i])\n        numerador = tabla&#x5B;i+1,j-1]-tabla&#x5B;i,j-1]\n        tabla&#x5B;i,j] = numerador\/denominador\n        i = i+1\n    diagonal = diagonal - 1\n    j = j+1\n\n# POLINOMIO con diferencias Divididas\n# caso: puntos equidistantes en eje x\ndDividida = tabla&#x5B;0,3:]\nn = len(dfinita)\n\n# expresi\u00f3n del polinomio con Sympy\nx = sym.Symbol('x')\npolinomio = fi&#x5B;0]\nfor j in range(1,n,1):\n    factor = dDividida&#x5B;j-1]\n    termino = 1\n    for k in range(0,j,1):\n        termino = termino*(x-xi&#x5B;k])\n    polinomio = polinomio + termino*factor\n\n# simplifica multiplicando entre (x-xi)\npolisimple = polinomio.expand()\n\n# polinomio para evaluacion num\u00e9rica\npx = sym.lambdify(x,polisimple)\n\n# Puntos para la gr\u00e1fica\nmuestras = 101\na = np.min(xi)\nb = np.max(xi)\npxi = np.linspace(a,b,muestras)\npfi = px(pxi)\n\n# SALIDA\nnp.set_printoptions(precision = 4)\nprint('Tabla Diferencia Dividida')\nprint(&#x5B;titulo])\nprint(tabla)\nprint('dDividida: ')\nprint(dDividida)\nprint('polinomio: ')\nprint(polinomio)\nprint('polinomio simplificado: ' )\nprint(polisimple)\n\n# Gr\u00e1fica\nplt.plot(xi,fi,'o', label = 'Puntos')\n##for i in range(0,n,1):\n##    plt.axvline(xi&#x5B;i],ls='--', color='yellow')\nplt.plot(pxi,pfi, label = 'Polinomio')\nplt.legend()\nplt.xlabel('xi')\nplt.ylabel('fi')\nplt.title('Diferencias Divididas - Newton')\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2021PAOII_T1 Interpolaci\u00f3n para perfil de terreno a. Plantee y desarrolle un polinomio P3(d1) de grado 3, que describa el perfil del terreno en el intervalo [0,1300] de distancias a la primera antena d1. Para plantear el ejercicio, se observan los punto en el intervalo [0,1300], asi como los tama\u00f1os de paso. Como el polinomio [&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-7838","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\/7838","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=7838"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7838\/revisions"}],"predecessor-version":[{"id":23840,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7838\/revisions\/23840"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}