{"id":1153,"date":"2017-05-26T09:15:13","date_gmt":"2017-05-26T14:15:13","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=1153"},"modified":"2026-04-18T12:04:53","modified_gmt":"2026-04-18T17:04:53","slug":"metodo-falsa-posicion","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u02\/metodo-falsa-posicion\/","title":{"rendered":"2.2 M\u00e9todo de la Falsa Posici\u00f3n"},"content":{"rendered":"\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><a href=\"#concepto\">Falsa posici\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">Algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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=\"concepto\">1. M\u00e9todo de la Falsa&nbsp;Posici\u00f3n \u00bfQu\u00e9 es?<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: Burden p56, Chapra&amp;Canale 5.3 p131<\/p>\n\n\n\n<p>El m\u00e9todo de la posici\u00f3n falsa, falsa posici\u00f3n, regla falsa o regula falsi, considera dividir el intervalo cerrado [<strong>a<\/strong>,<strong>b<\/strong>] donde se encontrar\u00eda una ra\u00edz de la funci\u00f3n <em>f<\/em>(<strong>x<\/strong>) basado en la cercan\u00eda a cero que tenga <em>f<\/em>(<strong>a<\/strong>) o <em>f<\/em>(<strong>b<\/strong>).<\/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\/05\/falsaposicion_animado.gif\" alt=\"m\u00e9todo de falsa posici\u00f3n gr\u00e1fico animado\" class=\"wp-image-13320\" \/><\/figure>\n\n\n\n<p>El m\u00e9todo une f(<strong>a<\/strong>) con <em>f<\/em>(<strong>b<\/strong>) con una l\u00ednea recta, la intersecci\u00f3n de la recta con el eje x representar\u00eda una mejor aproximaci\u00f3n hacia la ra\u00edz.<\/p>\n\n\n\n<p>Al reemplazar la curva de <em>f<\/em>(<strong>x<\/strong>) por una l\u00ednea recta, se genera el nombre de \"posici\u00f3n falsa\" de la ra\u00edz. El m\u00e9todo tambi\u00e9n se conoce como interpolaci\u00f3n lineal.<\/p>\n\n\n\n<p>A partir de la gr\u00e1fica, usando tri\u00e1ngulos semejantes, considerando que f(a) es negativo en el ejemplo, se estima que:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"460\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/falsaposicionconcepto_animado.gif\" alt=\"m\u00e9todo de falsa posici\u00f3n concepto animado\" class=\"wp-image-13321\" \/><\/figure>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{0-f(a)}{c-a} = \\frac{f(b)-0}{b-c} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{f(a)}{c-a} = -\\frac{f(b)}{b-c} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{f(a)}{c-a} = \\frac{f(b)}{c-b} <\/span>\n\n\n\n<p>donde la f\u00f3rmula de la falsa posici\u00f3n se obtiene al despejar c.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = b - f(b) \\frac{(a-b)}{f(a)-f(b)} <\/span>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"460\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/falsaposicion03.gif\" alt=\"m\u00e9todo de la falsa posici\u00f3n gr\u00e1fica partes\" class=\"wp-image-13322\" \/><\/figure>\n\n\n\n<p>Calculado el valor de <strong>c<\/strong>, \u00e9ste reemplaza a uno de los valores iniciales [<strong>a<\/strong>,<strong>b<\/strong>], cuyo valor evaluado tenga el mismo signo que <em>f<\/em>(<strong>c<\/strong>).<\/p>\n\n\n\n<p><strong>Nota<\/strong>: La forma de la expresi\u00f3n presentada para c, se usa para comparar con el m\u00e9todo de la secante. Se obtiene sumando y restando b y reagrupando.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Control de iteraciones<\/h3>\n\n\n\n<p>Las correcciones del intervalo que se realizan en cada iteraci\u00f3n tienen a ser m\u00e1s peque\u00f1as, por lo que el control de iteraciones se realizan sobre la porci\u00f3n o tramo que se redujo el intervalo.<\/p>\n\n\n\n<p>Si la reducci\u00f3n del intervalo es por la izquierda, tramo=c-a<br>Si la reducci\u00f3n del intervalo es por la derecha, tramo=b-c<\/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><a href=\"#concepto\">Falsa posici\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">Algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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=\"ejercicio\">2. Ejercicio<\/h2>\n\n\n\n<p><strong>Referencia:&nbsp;<\/strong>Burden 2.1 ejemplo 1 p38<\/p>\n\n\n\n<p>La ecuaci\u00f3n mostrada tiene una ra\u00edz en [1,2], ya que f(1)=-5 y f(2)=14. Muestre los resultados parciales del algoritmo de la <strong>falsa<\/strong> <strong>posici\u00f3n <\/strong>con una tolerancia de 0.0001<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">f(x) = x^3 + 4x^2 -10 =0 <\/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\/05\/falsaposicion_animado.gif\" alt=\"m\u00e9todo de falsa posici\u00f3n gr\u00e1fico animado\" class=\"wp-image-13320\" \/><\/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><a href=\"#concepto\">Falsa posici\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">Algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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=\"analitico\">3. Desarrollo Anal\u00edtico - ejemplo paso a paso<\/h2>\n\n\n\n<p>Semejante a los m\u00e9todos anteriores, el m\u00e9todo&nbsp;posici\u00f3n falsa, falsa posici\u00f3n, regla falsa o regula falsi, usa un intervalo [a,b] para buscar la ra\u00edz.<\/p>\n\n\n\n<p>Se divide el intervalo en dos partes al calcular el punto c que divide al intervalo siguiendo la ecuaci\u00f3n:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = b - f(b) \\frac{a-b}{f(a)-f(b)} <\/span>\n\n\n\n<p><em>iteraci\u00f3n 1<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/falsaposicion_itera0.gif\" alt=\"m\u00e9todo de la falsa posici\u00f3n itera=0 gr\u00e1fica\" class=\"wp-image-22808\" style=\"width:350px\" \/><\/figure>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = 1 , b = 2 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1) = (1)^3 + 4(1)^2 -10 = -5 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(2) = (2)^3 + 4(2)^2 -10 = 14 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = 2 - 14 \\frac{1-2}{-5-14} = 1.2631 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1.2631) = (1.2631)^3 + 4(1.2631)^2 -10 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = -1.6031 <\/span>\n\n\n\n<p>el signo de f(c) es el mismo que f(a), se ajusta el lado izquierdo<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tramo = |c-a| = | 1.2631 - 1| = 0.2631 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = c = 1.2631 <\/span>\n\n\n\n<p><em>iteraci\u00f3n 2<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/falsaposicion_itera1.gif\" alt=\"m\u00e9todo de la falsa posici\u00f3n itera=1 gr\u00e1fica\" class=\"wp-image-22810\" style=\"width:350px\" \/><\/figure>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = 1.2631 , b = 2 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1.2631) = -1.6031 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(2) = 14 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = 2 - 14 \\frac{1.2631-2}{-1.6031-14} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1.3388 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1.3388) = (1.3388)^3 + 4(1.3388)^2 -10 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = -0.4308 <\/span>\n\n\n\n<p>el signo de f(c) es el mismo que f(a), se ajusta el lado izquierdo<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tramo = |c-a| = |1.3388 - 1.2631| = 0.0757 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = c = 1.3388 <\/span>\n\n\n\n<p><em>iteraci\u00f3n 3<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/falsaposicion_itera2.gif\" alt=\"m\u00e9todo de la falsa posici\u00f3n itera=2 gr\u00e1fica\" class=\"wp-image-22811\" style=\"width:350px\" \/><\/figure>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = 1.3388 , b = 2 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1.3388) = -0.4308 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(2) = 14 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> c = 2 - 14 \\frac{1.3388-2}{-0.4308-14} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1.3585 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1.3585) = (1.3585)^3 + 4(1.3585)^2 -10 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = -0.1107 <\/span>\n\n\n\n<p>el signo de f(c) es el mismo que f(a), se ajusta el lado izquierdo<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tramo = |c-a| = |1.3585 - 1.3388| = 0.0197 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a = c = 1.3585 <\/span>\n\n\n\n<p>valores que se resumen en la tabla<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>a<\/th><th>c<\/th><th>b<\/th><th>f(a)<\/th><th>f(c)<\/th><th>f(b)<\/th><th>tramo<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>1.2631<\/td><td>2<\/td><td><strong>-5<\/strong><\/td><td><strong>-1.6031<\/strong><\/td><td>14<\/td><td>0.2631<\/td><\/tr><tr><td>1.2631<\/td><td>1.3388<\/td><td>2<\/td><td>-1.6031<\/td><td>-0.4308<\/td><td>14<\/td><td>0.0757<\/td><\/tr><tr><td>1.3388<\/td><td>1.3585<\/td><td>2<\/td><td>-0.4308<\/td><td>-0.1107<\/td><td>14<\/td><td>0.0197<\/td><\/tr><tr><td>1.3585<\/td><td>...<\/td><td>2<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>se puede continuar con las iteraciones como tarea<\/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><a href=\"#concepto\">Falsa posici\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">Algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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\">4. Algoritmo en Python para el M\u00e9todo de la Falsa Posici\u00f3n<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"M\u00e9todo de la Falsa Posici\u00f3n y gr\u00e1fica con Python - M\u00e9todos Num\u00e9ricos\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/jYXmFepPtSk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>El algoritmo requiere la funci\u00f3n f(x), el intervalo de b\u00fasqueda [a,b] y la tolerancia. Las instrucciones b\u00e1sicas para obtener los resultados es:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# M\u00e9todo de la Falsa Posici\u00f3n - tabla\n# busca en intervalo &#x5B;a,b]\nimport numpy as np\n\n# INGRESO\nfx = lambda x: x**3 + 4*x**2 - 10\n\na = 1\nb = 2\ntolera = 0.001\n\n# PROCEDIMIENTO\ntramo = abs(b-a)\nwhile not(tramo&lt;=tolera):\n    fa = fx(a)\n    fb = fx(b)\n    c = b - fb*(a-b)\/(fa-fb)\n    fc = fx(c)\n    cambia = np.sign(fa)*np.sign(fc)\n    if (cambia &gt; 0): # cambio de signo derecha\n        tramo = abs(c-a)\n        a = c\n    else: # cambio de signo izquierda\n        tramo = abs(b-c)\n        b = c\n\n# SALIDA\nprint('raiz: ',c)\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Para seguimiento con el desarrollo anal\u00edtico en cada iteraci\u00f3n, se puede mejorar el algoritmo para mostrar la tabla de c\u00e1lculos del m\u00e9todo de la Falsa Posici\u00f3n. Los valores de cada iteraci\u00f3n se almacenan en orden en una tabla a ser mostrada en el bloque de salida.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Algoritmo Posicion Falsa para raices\n# busca en intervalo &#x5B;a,b]\nimport numpy as np\n\n# INGRESO\nfx = lambda x: x**3 + 4*(x**2) -10\n\na = 1\nb = 2\ntolera = 0.0001\n\n# PROCEDIMIENTO\ntabla = &#x5B;]\ntramo = abs(b-a)\nfa = fx(a)\nfb = fx(b)\nwhile not(tramo&lt;=tolera):\n    c = b - fb*(a-b)\/(fa-fb)\n    fc = fx(c)\n    unafila = &#x5B;a,c,b,fa,fc,fb,tramo]\n    cambio = np.sign(fa)*np.sign(fc)\n    if cambio&gt;0: # cambio de signo derecha\n        tramo = abs(c-a)\n        a = c\n        fa = fc\n    else: # cambio de signo izquierda\n        tramo = abs(b-c)\n        b = c\n        fb = fc\n    unafila&#x5B;6]=tramo\n    tabla.append(unafila)\ntabla = np.array(tabla)\nntabla = len(tabla)\n\n# SALIDA\nnp.set_printoptions(precision=6)\nprint('m\u00e9todo de la Posici\u00f3n Falsa ')\nprint('i', &#x5B;'a','c','b'],&#x5B; 'f(a)', 'f(c)','f(b)'])\nprint('  ','tramo')\nfor i in range(0,ntabla,1):\n    print(i, tabla&#x5B;i,0:3],tabla&#x5B;i,3:6])\n    print('   ', tabla&#x5B;i,6])\n\nprint('raiz: ',c)\n<\/pre><\/div>\n\n\n<p>Observe el n\u00famero de iteraciones realizadas, tan solo 6 vs 9 comparado con el m\u00e9todo de la Bisecci\u00f3n, realizadas hasta presentar el valor de la ra\u00edz en 1.3652 con un error de 0.000079585 en la \u00faltima fila de la tabla. <\/p>\n\n\n\n<p>Sin embargo, observe que la tabla solo muestra c\u00e1lculos de filas completas, el \u00faltimo valor de c y error no se ingres\u00f3 a la tabla, que se muestra como c y tramo, y es el m\u00e1s actualizado en los c\u00e1lculos.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>M\u00e9todo de la falsa posici\u00f3n\ni &#091;'a', 'c', 'b'] &#091;'f(a)', 'f(c)', 'f(b)']\n   tramo\n0 &#091;1.       1.263158 2. ] &#091;-5.       -1.602274 14. ]\n   0.26315789473684204\n1 &#091;1.263158 1.338828 2. ] &#091;-1.602274 -0.430365 14. ]\n   0.0756699440909967\n2 &#091;1.338828 1.358546 2. ] &#091;-0.430365 -0.110009 14. ]\n   0.019718502996940224\n3 &#091;1.358546 1.363547 2. ] &#091;-0.110009 -0.027762 14. ]\n   0.005001098217311428\n4 &#091;1.363547 1.364807 2. ] &#091;-2.776209e-02 -6.983415e-03  1.400000e+01]\n   0.0012595917846898175\n5 &#091;1.364807 1.365124 2. ] &#091;-6.983415e-03 -1.755209e-03  1.400000e+01]\n   0.0003166860575976038\n6 &#091;1.365124 1.365203 2. ] &#091;-1.755209e-03 -4.410630e-04  1.400000e+01]\n    7.958577822231305e-05\nM\u00e9todo de la falsa posici\u00f3n\niteraciones: 7\nra\u00edz en:  1.3652033036626001\nerrado: 7.958577822231305e-05<\/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><a href=\"#concepto\">Falsa posici\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">Algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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=\"funcion\">5. Algoritmo como funci\u00f3n en Python<\/h2>\n\n\n\n<p>Para usar bloques de cada algoritmo se a\u00f1ade la funci\u00f3n en Python, con las opciones para ver tabla de resultados, la precisi\u00f3n o n\u00famero de d\u00edgitos a mostrar en cada iteraci\u00f3n. Con lo que se puede realizar el seguimiento de cada iteraci\u00f3n para el desarrollo anal\u00edtico de cada ejercicio.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# M\u00e9todo de falsa posici\u00f3n para ra\u00edces\n# &#x5B;a,b] se seleccionan de la gr\u00e1fica de f(x)\nimport numpy as np\n \ndef falsaposicion(fx,a,b,tolera,iteramax = 50,\n                  vertabla=False, precision=6):\n    '''fx en forma num\u00e9rica lambda\n    Los valores de &#x5B;a,b] son seleccionados\n    desde la gr\u00e1fica de la funci\u00f3n\n    error = tolera\n    '''\n    fa = fx(a)\n    fb = fx(b)\n    tramo = np.abs(b-a)\n    itera = 0\n    cambia = np.sign(fa)*np.sign(fb)\n    tabla=&#x5B;]\n \n    if cambia&lt;0: # existe cambio de signo f(a) vs f(b)\n        if vertabla==True:\n            print('M\u00e9todo de la falsa posici\u00f3n')\n            print('i', &#x5B;'a','c','b'],&#x5B; 'f(a)', 'f(c)','f(b)'])\n            print('  ','tramo')\n            np.set_printoptions(precision)\n \n        while (tramo &gt;= tolera and itera&lt;=iteramax):\n            c = b - fb*(a-b)\/(fa-fb)\n            fc = fx(c)\n            cambia = np.sign(fa)*np.sign(fc)\n            unafila = np.array(&#x5B;a,c,b,fa,fc,fb])\n            if (cambia &gt; 0): # cambio de signo derecha\n                tramo = np.abs(c-a)\n                a = c\n                fa = fc\n            else: # cambio de signo izquierda\n                tramo = np.abs(b-c)\n                b = c\n                fb = fc\n\n            unafila = np.concatenate(&#x5B;unafila,&#x5B;tramo]],axis=0)\n            tabla.append(unafila)\n            if vertabla==True:\n                print(itera,unafila&#x5B;0:3],unafila&#x5B;3:6])\n                print('  ',tramo)\n            itera = itera + 1\n        respuesta = c\n        # Valida respuesta\n        if (itera&gt;=iteramax):\n            respuesta = np.nan\n    else: \n        print(' No existe cambio de signo entre f(a) y f(b)')\n        print(' f(a) =',fa,',  f(b) =',fb) \n        respuesta=np.nan\n    tabla = np.array(tabla,dtype=float)\n    return(respuesta,tabla)\n \n# PROGRAMA ----------------------\n# INGRESO\nfx  = lambda x: x**3 + 4*x**2 - 10\na = 1\nb = 2\ntolera = 0.0001\nverdigitos = 4 # ver digitos en tabla\n\n# PROCEDIMIENTO\nc,tabla = falsaposicion(fx,a,b,tolera,\n                        vertabla=True,\n                        precision=verdigitos)\nn = len(tabla)\nerrado = tabla&#x5B;n-1,6]\n\n# SALIDA\nprint('M\u00e9todo de la falsa posici\u00f3n')\nprint('iteraciones:',n)\nprint('ra\u00edz en: ',c)\nprint('errado:',errado)\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><a href=\"#concepto\">Falsa posici\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">Algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/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=\"grafica\">6. Gr\u00e1fica en Python<\/h2>\n\n\n\n<p>La secci\u00f3n para la gr\u00e1fica, contiene  las variantes:<\/p>\n\n\n\n<p>Las muestras para la gr\u00e1fica de f(x), con la marca de un punto de la ra\u00edz. <\/p>\n\n\n\n<p>Para el caso de realizar la gr\u00e1fica de una iteraci\u00f3n particular, usar la variable <strong>itera_graf<\/strong>. Por ejemplo para las gr\u00e1ficas presentadas en cada iteraci\u00f3n en la secci\u00f3n de <a href=\"#analitico\">desarrollo anal\u00edtico<\/a>.<\/p>\n\n\n\n<p>Las instrucciones que se a\u00f1aden al algoritmo como funci\u00f3n son:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA ---------------------\nimport matplotlib.pyplot as plt\n \nmuestras = 21 # en intervalo &#x5B;a,b]\nitera_graf = n-1 # iteraci\u00f3n en gr\u00e1fica\n \ntitulo = 'Falsa Posici\u00f3n'\nxk = np.linspace(a,b,muestras)\nfk = fx(xk)\n&#x5B;ai,ci,bi] = tabla&#x5B;itera_graf,0:3]\n&#x5B;fai,fci,fbi] = tabla&#x5B;itera_graf,3:6]\n \nplt.plot(xk,fk, label='f(x)')\n \nif itera_graf==(n-1): # iteraci\u00f3n final\n    plt.plot(c,0,'D',color='orange',label='c')\n \nif itera_graf&lt;(n-1): # una iteraci\u00f3n en gr\u00e1fica\n    titulo = titulo + ', itera='+str(itera_graf)\n    plt.plot(ai,fai,'o',color='red',label='a')\n    plt.plot(bi,fbi,'o',color='green',label='b')\n    plt.plot(ci,fci,'o',color='orange',label='c')\n\n    plt.plot(&#x5B;ci,ci],&#x5B;fci,0],'--',color='orange')\n    plt.plot(&#x5B;ai,ai],&#x5B;fai,0],'--',color='red')\n    plt.plot(&#x5B;bi,bi],&#x5B;fbi,0],'--',color='green')\n    plt.plot(&#x5B;ai,bi],&#x5B;fai,fbi],color='orange')\n \nplt.axhline(0,color='gray')\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.title(titulo)\nplt.grid()\nplt.legend()\nplt.tight_layout()\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><a href=\"#concepto\">Falsa posici\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">Anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">Algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Falsa posici\u00f3n Ejercicio Anal\u00edtico Algoritmo funci\u00f3n gr\u00e1fica 1. M\u00e9todo de la Falsa&nbsp;Posici\u00f3n \u00bfQu\u00e9 es? Referencia: Burden p56, Chapra&amp;Canale 5.3 p131 El m\u00e9todo de la posici\u00f3n falsa, falsa posici\u00f3n, regla falsa o regula falsi, considera dividir el intervalo cerrado [a,b] donde se encontrar\u00eda una ra\u00edz de la funci\u00f3n f(x) basado en la cercan\u00eda a cero que [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"wp-custom-template-entrada-mn-unidades","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-1153","post","type-post","status-publish","format-standard","hentry","category-mn-u02"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1153","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=1153"}],"version-history":[{"count":15,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1153\/revisions"}],"predecessor-version":[{"id":22818,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1153\/revisions\/22818"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}