Vous êtes sur la page 1sur 4

ALGORITMO EN MATLAB: FALSA POSICIÓN

Teniendo en cuenta la parte teórica que implica este método numérico, y tomando como
base la ecuación:

𝑓(𝑋𝑢)(𝑋𝑙 − 𝑋𝑢 )
𝑋𝑟 = 𝑋𝑢 −
𝑓(𝑋𝑙 ) − 𝑓(𝑋𝑢 )

Se implementará el código en Matlab que finalmente nos permitirá hallar las raíces que
queremos encontrar de una forma rápida y eficaz.

En primer lugar, se pedirá la ecuación de interés. Y por medio del comando inline la
variable y que entrara al programa como cadena, se convertirá en función.

Luego, para conocer qué valores iniciales son recomendables para empezar, se hará una
inspección visual del comportamiento de la función. Este paso no es necesario, sin
embargo siempre es bueno conocer una estimación de la raíz real para asegurar la
convergencia del método. Se pide que se ingrese el límite inferior y el límite superior en
los que se desee ver el comportamiento de la función.

A continuación, teniendo la estimación de la raíz identificada, se solicita al usuario que


ingrese el valor inicial donde se evaluará la función, Xl, y el valor final donde se evaluará
la función, Xu, es decir, puntos cercanos que contienen a la raíz.
Ahora, se inicializaran algunas variables que se utilizarán en el método para evitar que
Matlab presente errores de compilación. La variable cont corresponde al contador de
iteraciones que parte desde cero y además la variable E, que en este caso hace
referencia al error, debe iniciar en un número mayor al de la tolerancia. E igualmente, se
le pide al usuario que suministre la tolerancia que requiera y a su vez el número de
iteraciones máximas que desea.

Luego, implementamos la ecuación que se mencionó anteriormente para hallar el punto


más cercano a la raíz. Es necesario que esta esté tanto dentro como fuera del ciclo while,
un poco más adelante se explicará el porqué.

El siguiente paso no es sumamente necesario, sin embargo, se hace con el fin de obtener
al final del programa una tabla que compile todos los datos utilizados y los agrupe de
acuerdo a las iteraciones realizadas.

La mayoría de métodos numéricos se basan en la iteración y estimación del error y el


método de Falsa posición no es una excepción. Por lo tanto, lo que se hace ahora es
crear el ciclo en el que se llevará a cabo todo el proceso, incluyendo claramente la
estimación del error que será la condición de parada del ciclo. En otras palabras, mientras
el error sea mayor a la tolerancia indicada, el programa seguirá realizando los cálculos
expuestos en el ciclo hasta que esta sea menor. Se utilizan tres condicionales if dentro
del while que son sumamente necesarios para nuestro programa. El primer if, ayuda a
saber si la raíz se encuentra entre los valores que el usuario ingresó al programa. Para el
segundo condicional if ya es necesario conocer el primer valor aproximado de la raíz a
partir de los valores iniciales, por eso se dijo anteriormente que se debía utilizar la
ecuación tanto dentro como fuera del while, porque en este if se evalúa si la raíz se
encuentra entre Xl y Xr. Y sino se encuentra entre Xl y Xr, estará por consiguiente entre Xr
y Xu. Y el tercer if indica que si se alcanzó el número máximo de iteraciones establecidas
por el usuario, el programa debe detenerse devolviendo una tabla de datos con los
cálculos realizados en cada iteración y una gráfica de las aproximaciones realizadas de la
raíz en cada iteración. En el ciclo también se incluyen las variables vectorit y vectorap
que son vectores que guardan datos en cada iteración, vectorit se encarga de guardar
las iteraciones mientras que vectorap del valor aproximado de la raíz, luego estos dos
vectores se emplean para graficar las aproximaciones de la raíz versus iteraciones. Este
fprintf dentro del ciclo nos servirá para llenar los datos de la tabla por cada iteración que
se haga.
Por último, se utiliza un condicional if para que grafique las aproximaciones de la raíz
versus iteraciones y diga cuál es la raíz que más se aproximó solo si el error final es
menor que la tolerancia. Si no se utilizara dicho condicional aunque la raíz no estuviese
entre Xl y Xu, el programa mostraría que hay una raíz ya que la primera aproximación Xr
se calcula fuera del ciclo.

CONDICIONES DE CONVERGENCIA EN EL METODO DE LA FALSA POSICIÓN

Una de las principales condiciones para que el método de la falsa posición converja es
escoger una buena aproximación del valor de la raíz, en otras palabras, saber identificar
correctamente el valor inicial del método puesto que esto hará que el programa llegue a la
respuesta de una forma rápida y sin errores.
Por otra parte, otra condición de convergencia para este método es sencillamente la
existencia de la raíz, por lo cual hay que asegurarse que la función con la que se va a
trabajar conste de al menos una raíz. Para estar seguros de eso, se recomienda hacer
una inspección visual de la gráfica de la función. Y por último, cabe resaltar que este
algoritmo tiende el inconveniente de que el extremo del intervalo más alejado de la
solución queda fijo, variando únicamente el más cercano, convergiendo lentamente.

DIAGRAMA DE FLUJO DEL MÉTODO DE FALSA POSICIÓN

Para que se le facilite la comprensión del método a continuación se mostrará el diagrama


de flujo del mismo.
Inicio

y, Xl, Xu, tolerancia,


iteraciones

E=20, n=0

Xr=Xu-((y(Xu)*(Xl-Xu))/(y(Xl)-y(Xu)))

while E>tolerancia

y(Xl)*y(Xu)>0 No hay raíz

Si No
(y(Xl)*y(Xr))<0

Xu=Xr Xl=Xr

Xr=Xu-((y(Xu)*(Xl- Xr=Xu-((y(Xu)*(Xl-
Xu))/(y(Xl)-y(Xu))) Xu))/(y(Xl)-y(Xu)))

E=abs((Xr-Xri)/Xr)*100 E=abs((Xr-Xri)/Xr)*100

n=n+1 n=n+1

Si Si

E>tolerancia E>tolerancia

No No

La raíz es=’Xr’

Fin

Vous aimerez peut-être aussi