Está en la página 1de 8

5.

3 MÉTODO DE LA FALSA POSICIÓN 131

FUNCTION Bisect(xl, xu, es, imax, xr, iter, ea)


iter = 0
DO
xrold = xr
xr = (xl + xu)/2
iter = iter + 1
IF xr ≠ 0 THEN
ea = ABS((xr – xrold) / xr) * 100
END IF
test = f(xl) * f(xr)
IF test < 0 THEN
xu = xr
ELSE IF test > 0 THEN
xl = xr
ELSE
ea = 0
END IF
FIGURA 5.10 IF ea < es OR iter ≥ imax EXIT
Seudocódigo para la fun- END DO
ción que implementa el Bisect = xr
método de bisección. END Bisect

programa computacional que localice varias raíces. En tales casos, se tendría que llamar
al algoritmo de la figura 5.10 miles o aun millones de veces en el transcurso de una sola
ejecución.
Además, en un sentido más general, la función de una variable es tan sólo una en-
tidad que regresa un solo valor para un solo valor que se le da. Visto de esta manera, las
funciones no son simples fórmulas como las ecuaciones de una sola línea de código
resueltas en los ejemplos anteriores de este capítulo. Por ejemplo, una función puede
consistir de muchas líneas de código y su evaluación llega a tomar un tiempo importan-
te de ejecución. En algunos casos, esta función incluso representaría un programa de
computadora independiente.
Debido a ambos factores es imperativo que los algoritmos numéricos minimicen las
evaluaciones de una función. A la luz de estas consideraciones, el algoritmo de la figu-
ra 5.10 es deficiente. En particular, observe que al hacer dos evaluaciones de una función
por iteración, vuelve a calcular una de las funciones que se determinó en la iteración
anterior.
La figura 5.11 proporciona un algoritmo modificado que no tiene esta deficiencia.
Se han resaltado las líneas que difieren de la figura 5.10. En este caso, únicamente se
calcula el valor de la nueva función para aproximar la raíz. Los valores calculados pre-
viamente son guardados y simplemente reasignados conforme el intervalo se reduce.
Así, las 2n evaluaciones de la función se reducen a n + 1.

5.3 MÉTODO DE LA FALSA POSICIÓN

Aun cuando la bisección es una técnica perfectamente válida para determinar raíces, su
método de aproximación por “fuerza bruta” es relativamente ineficiente. La falsa posición
es una alternativa basada en una visualización gráfica.
132 MÉTODOS CERRADOS

FUNCTION Bisect(xl, xu, es, imax, xr, iter, ea)


iter = 0
fl = f(xl)
DO
xrold = xr
xr = (xl + xu) / 2
fr = f(xr)
iter = iter + 1
lF xr ≠ 0 THEN
ea = ABS((xr – xrold) / xr) * 100
END IF
test = fl * fr
IF test < 0 THEN
xu = xr
ELSE IF test > 0 THEN
xl = xr
fl = fr
ELSE
ea = 0
FIGURA 5.11 END IF
Seudocódigo para el IF ea < es OR iter ≥ imax EXIT
subprograma de bisección END DO
que minimiza las evaluacio- Bisect = xr
nes de la función. END Bisect

Un inconveniente del método de bisección es que al dividir el intervalo de xl a xu en


mitades iguales, no se toman en consideración las magnitudes de f(xl) y f(xu). Por ejem-
plo, si f(xl) está mucho más cercana a cero que f(xu), es lógico que la raíz se encuentre
más cerca de xl que de xu (figura 5.12). Un método alternativo que aprovecha esta visua-
lización gráfica consiste en unir f(xl) y f(xu) con una línea recta. La intersección de esta
línea con el eje de las x representa una mejor aproximación de la raíz. El hecho de que
se reemplace la curva por una línea recta da una “falsa posición” de la raíz; de aquí el
nombre de método de la falsa posición, o en latín, regula falsi. También se le conoce
como método de interpolacion lineal.
Usando triángulos semejantes (figura 5.12), la intersección de la línea recta con el
eje de las x se estima mediante

f ( xl ) f ( xu )
= (5.6)
x r − xl x r − xu

en la cual se despeja xr (véase cuadro 5.1 para los detalles)

f ( xu )( xl − xu )
x r = xu − (5.7)
f ( xl ) − f ( xu )

Ésta es la fórmula de la falsa posición. El valor de xr calculado con la ecuación (5.7), re-
emplazará, después, a cualquiera de los dos valores iniciales, xl o xu, y da un valor de la
5.3 MÉTODO DE LA FALSA POSICIÓN 133

f (x)

f (xu)

xr
xl
xu x
FIGURA 5.12
Representación gráfica del
método de la falsa posición. f (xl)
Con los triángulos semejan-
tes sombreados se obtiene
la fórmula para el método.

función con el mismo signo de f(xr). De esta manera, los valores xl y xu siempre encierran
la verdadera raíz. El proceso se repite hasta que la aproximación a la raíz sea adecuada. El
algoritmo es idéntico al de la bisección (figura 5.5), excepto en que la ecuación (5.7)

Cuadro 5.1 Desarrollo del método de la falsa posición

Multiplicando en cruz la ecuación (5.6) obtenemos sumando y restando xu en el lado derecho:

f(xl)(xr – xu) = f(xu)(xr – xl) xu f ( xl ) xl f ( xu )


x r = xu + − xu −
f ( xl ) − f ( xu ) f ( xl ) − f ( xu )
Agrupando términos y reordenando:
Agrupando términos se obtiene
xr [f(xl) – f(xu)] = xu f(xl) – xl f(xu)
xu f ( xu ) xl f ( xu )
x r = xu + −
Dividiendo entre f(xl) – f(xu): f ( xl ) − f ( xu ) f ( xl ) − f ( xu )

xu f ( xl ) − xl f ( xu ) o
xr = (C5.1.1)
f ( xl ) − f ( xu )
f ( xu )( xl − xu )
x r = xu −
Ésta es una de las formas del método de la falsa posición. Ob- f ( xl ) − f ( xu )
serve que permite el cálculo de la raíz xr como una función de
los valores iniciales inferior xl y superior xu. Ésta puede ponerse la cual es la misma ecuación (5.7). Se utiliza esta forma porque
en una forma alternativa al separar los términos: implica una evaluación de la función y una multiplicación menos
que la ecuación (C5.1.1). Además ésta es directamente compa-
xu f ( xl ) xl f ( xu )
xr = − rable con el método de la secante, el cual se estudia en el capí-
f ( xl ) − f ( xu ) f ( xl ) − f ( xu ) tulo 6.
134 MÉTODOS CERRADOS

se usa en el paso 2. Además, se usa el mismo criterio de terminación [ecuación (5.2)]


para concluir los cálculos.

EJEMPLO 5.5 Falsa posición

Planteamiento del problema. Con el método de la falsa posición determine la raíz


de la misma ecuación analizada en el ejemplo 5.1 [ecuación (E5.1.1)].

Solución. Como en el ejemplo 5.3 se empieza el cálculo con los valores iniciales xl =
12 y xu = 16.
Primera iteración:

xl = 12 f(xl) = 6.0699
xu = 16 f(xu) = –2.2688
−2.2688(12 − 16)
xr = 16 − = 14.9113
6.0669 − ( −2.2688)
que tiene un error relativo verdadero de 0.89 por ciento.

Segunda iteración:

f(xl) f(xr) = –1.5426

Por lo tanto, la raíz se encuentra en el primer subintervalo y xr se vuelve ahora el límite


superior para la siguiente iteración, xu = 14.9113:

xl = 12 f(xl) = 6.0699
xu = 14.9113 f(xu) = –0.2543
−0.2543(12 − 14.9113)
xr = 14.9113 − = 14.7942
6.0669 − ( −0.2543)
el cual tiene errores relativos y verdadero y aproximado de 0.09 y 0.79 por ciento. Es po-
sible realizar iteraciones adicionales para hacer una mejor aproximación de las raíces.

Se obtiene una idea más completa de la eficiencia de los métodos de bisección y de


falsa posición al observar la figura 5.13, donde se muestra el error relativo porcentual
verdadero de los ejemplos 5.4 y 5.5. Observe cómo el error decrece mucho más rápida-
mente en el método de la falsa posición que en el de la bisección, debido a un esquema
más eficiente en el método de la falsa posición para la localización de raíces.
Recuerde que en el método de bisección el intervalo entre xl y xu se va haciendo más
pequeño durante los cálculos. Por lo tanto, el intervalo, como se definió por ∆x/2 =
|xu – xl|/2 para la primera iteración, proporciona una medida del error en este método.
Éste no es el caso con el método de la falsa posición, ya que uno de los valores iniciales
puede permanecer fijo durante los cálculos, mientras que el otro converge hacia la raíz.
Como en el caso del ejemplo 5.6, el extremo inferior xl permanece en 12, mientras que
xu converge a la raíz. En tales casos, el intervalo no se acorta, sino que se aproxima a un
valor constante.
5.3 MÉTODO DE LA FALSA POSICIÓN 135

10

Bisección

Error relativo porcentual verdadero


1

10– 1

Falsa posición
10– 2

10– 3

10– 4
FIGURA 5.13
Comparación de los errores
relativos de los métodos 0 3 6
de bisección y de la falsa Iteraciones
posición.

El ejemplo 5.6 sugiere que la ecuación (5.2) representa un criterio de error muy
conservador. De hecho, la ecuación (5.2) constituye una aproximación de la discrepancia
en la iteración previa. Esto se debe a que para un caso, tal como el del ejemplo 5.6,
donde el método converge rápidamente (por ejemplo, el error se va reduciendo casi un
100% de magnitud por cada iteración), la raíz para la iteración actual xr nuevo es una me-
jor aproximación al valor real de la raíz, que el resultado de la iteración previa xranterior.
Así, el numerador de la ecuación (5.2) representa la discrepancia de la iteración previa.
En consecuencia, se nos asegura que al satisfacer la ecuación (5.2), la raíz se conocerá
con mayor exactitud que la tolerancia preestablecida. Sin embargo, como se ve en la
siguiente sección, existen casos donde el método de la falsa posición converge lentamen-
te. En tales casos la ecuación (5.2) no es confiable y se debe desarrollar un criterio di-
ferente de terminación.

5.3.1 Desventajas del método de la falsa posición

Aunque el método de la falsa posición parecería ser siempre la mejor opción entre los
métodos cerrados, hay casos donde funciona de manera deficiente. En efecto, como en
el ejemplo siguiente, hay ciertos casos donde el método de bisección ofrece mejores
resultados.
136 MÉTODOS CERRADOS

EJEMPLO 5.6 Un caso en el que la bisección es preferible a la falsa posición

Planteamiento del problema. Con los métodos de bisección y de falsa posición loca-
lice la raíz de

f(x) = x10 – 1

entre x = 0 y 1.3.

Solución. Usando bisección, los resultados se resumen como sigue

Iteración xl xu xr ea (%) et (%)

1 0 1.3 0.65 100.0 35


2 0.65 1.3 0.975 33.3 2.5
3 0.975 1.3 1.1375 14.3 13.8
4 0.975 1.1375 1.05625 7.7 5.6
5 0.975 1.05625 1.015625 4.0 1.6

FIGURA 5.14
Gráfica de la función f(x) = x10 – 1, ilustrando la lentitud de convergencia del método
de la falsa posición.

f (x)

10

0
1.0 x
5.3 MÉTODO DE LA FALSA POSICIÓN 137

De esta manera, después de cinco iteraciones, el error verdadero se reduce a menos del
2%. Con la falsa posición se obtienen resultados muy diferentes:

Iteración xl xu xr ea (%) et (%)

1 0 1.3 0.09430 90.6


2 0.09430 1.3 0.18176 48.1 81.8
3 0.18176 1.3 0.26287 30.9 73.7
4 0.26287 1.3 0.33811 22.3 66.2
5 0.33811 1.3 0.40788 17.1 59.2

Después de cinco iteraciones, el error verdadero sólo se ha reducido al 59%. Además,


observe que ea < et. Entonces, el error aproximado es engañoso. Se obtiene mayor cla-
ridad sobre estos resultados examinando una gráfica de la función. En la figura 5.14, la
curva viola la premisa sobre la cual se basa la falsa posición; es decir, si f(xl) se encuen-
tra mucho más cerca de cero que f(xu), la raíz se encuentra más cerca de xl que de xu
(recuerde la figura 5.12). Sin embargo, debido a la forma de esta función ocurre lo con-
trario.

El ejemplo anterior ilustra que, por lo común, no es posible realizar generalizaciones


con los métodos de obtención de raíces. Aunque un método como el de la falsa posición
casi siempre es superior al de bisección, hay algunos casos que violan esta conclusión
general. Por lo tanto, además de usar la ecuación (5.2), los resultados se deben verificar
sustituyendo la raíz aproximada en la ecuación original y determinar si el resultado se
acerca a cero. Esta prueba se debe incorporar en todos los programas que localizan
raíces.
El ejemplo ilustra también una importante desventaja del método de la falsa posición:
su unilateralidad. Es decir, conforme se avanza en las iteraciones, uno de los puntos
limitantes del intervalo tiende a permanecer fijo. Esto puede llevar a una mala conver-
gencia, especialmente en funciones con una curvatura importante. La sección siguiente
ofrece una solución.

5.3.2 Falsa posición modificada

Una forma de disminuir la naturaleza unilateral de la falsa posición consiste en obtener


un algoritmo que detecte cuando se “estanca” uno de los límites del intervalo. Si ocurre
esto, se divide a la mitad el valor de la función en el punto de “estancamiento”. A este
método se le llama método de la falsa posición modificado.
El algoritmo dado en la figura 5.15 lleva a cabo dicha estrategia. Observe cómo se
han usado contadores para determinar si uno de los límites del intervalo permanece fijo
“estancado” durante dos iteraciones. Si ocurre así, el valor de la función en este valor de
“estancamiento” se divide a la mitad.
La efectividad de este algoritmo se demuestra aplicándolo al ejemplo 5.6. Si se uti-
liza un criterio de terminación de 0.01% el método de bisección y el método estándar de
138 MÉTODOS CERRADOS

FUNCTION ModFalsePos(xl, xu, es, imax, xr, iter, ea)


iter = 0
fl = f(xl)
fu = f(xu)
DO
xrold = xr
xr = xu – fu * (xl – xu) / (fl – fu)
fr = f(xr)
iter = iter + 1
IF xr <> 0 THEN
ea = Abs((xr – xrold) / xr) * 100
END IF
test = fl * fr
IF test < 0 THEN
xu = xr
fu = f(xu)
iu = 0
il = il +1
If il ≥ 2 THEN fl = fl / 2
ELSE IF test > 0 THEN
xl = xr
fl = f (xl)
il = 0
iu = iu + 1
IF iu ≥ 2 THEN fu = fu / 2
ELSE
ea = 0
END IF
FIGURA 5.15 IF ea < es 0R iter ≥ imax THEN EXIT
Seudocódigo para el mé- END DO
todo de la falsa posición ModFalsePos = xr
modificado. END ModFalsePos

falsa posición convergerán, respectivamente, después de 14 y 39 iteraciones. En cambio


el método de la falsa posición modificado convergerá después de 12 iteraciones. De ma-
nera que para este ejemplo el método de la falsa posición modificado es más eficiente que
el de bisección y muchísimo mejor que el método de la falsa posición no modificado.

5.4 BÚSQUEDAS POR INCREMENTOS Y DETERMINACIÓN


DE VALORES INICIALES

Además de verificar una respuesta individual, se debe determinar si se han localizado


todas las raíces posibles. Como se mencionó anteriormente, por lo general una gráfica
de la función ayudará a realizar dicha tarea. Otra opción es incorporar una búsqueda
incremental al inicio del programa. Esto consiste en empezar en un extremo del inter-
valo de interés y realizar evaluaciones de la función con pequeños incrementos a lo
largo del intervalo. Si la función cambia de signo, se supone que la raíz está dentro del
incremento. Los valores de x, al principio y al final del incremento, pueden servir como
valores iniciales para una de las técnicas descritas en este capítulo.