La iteración de punto fijo también llamada iteración de punto, sustitución sucesiva o método de punto fijo es utilizado en la búsqueda de raíces o soluciones de funciones. Consiste en realizar un arreglo a la ecuación f(x)=0 dejando a x de lado izquierdo, quedandonos una nueva ecuación de la forma x=g(x). Esta transformación se realiza mediante operaciones algebraicas o simplemente sumando x a cada lado de la ecuación original.
A continuación gráficamente se observa como la línea imaginaria de corte se intersecta con la función f(x) en el punto donde la función es cero.
En la gráfica b) aplicando el método de punto fijo la función g(x)=0 se intersecta con la ecuación x=0 precisamente en un x1 igual al valor de la raíz de la función.
De esta forma g(x) es cero con un valor igual a x.
Ejemplo:
Realizando un arreglo nos quedaría
A continuación gráficamente se observa como la línea imaginaria de corte se intersecta con la función f(x) en el punto donde la función es cero.
a) |
b) |
Ejemplo:
Realizando un arreglo nos quedaría
En funciones donde no se puede despejar x como:
Se puede sumar x a cada lado.
Sin embargo cabe recalcar que existen otras posibilidades en las que se podría transformar una función, en el primer ejemplo, también son validas las siguientes funciones,
Cualquiera de las ecuaciones anteriores son válidas, pero eso no significa que todas convergerán a la respuesta, para evitar esto, es importante tener en cuanta que mientras |g'(x)|<1 la ecuación se aproximara a la solución.
El pseudocódigo permite comprender mejor el algoritmo, una vez comprendido este, se puede aplicar en cualquier lenguaje de programación, el código presentado en Matlab es solo un ejemplo de su aplicación.
Pseudocódigo
ENTRADA: aproximación p0; tolerancia Tol; número máximo de iteraciones Nmax
SALIDA: solución aproximada p o mensaje de error
Paso 1: Tome i=1
Paso 2: Mientras i<Nmax repita los pasos 3 a 6
Paso 3: Tome p=g(p0)
Paso 4: Si |p-p0|<Tol entonces
SALIDA: "La raíz de la función es", p (Procedimiento terminado exitosamente.)
PARAR
Paso 5: Tome i=i+1
Paso 6: Tome p0=p (Define el nuevo valor de p0)
Paso 7: SALIDA: "Se ha superado el número máximo de iteraciones" (Procedimiento terminado sin éxito)
PARAR
Algoritmo en Matlab
%Punto Fijo
clear;
nmax = input('Número de iteraciones: ');
tol = input('Tolerancia: ');
p0 = input('Aproximación inicial: p0 = ');
syms x;
f = input('Función: g(x) = ');
stop=0;
i = 1;
while(i<=nmax)
p = subs(f,x,p0);
if(abs(p-p0)<tol)
disp('La raíz de la función es');
disp(vpa(p,8));
stop = 1;
break
end
p0 = p;
i=i+1;
end
if(stop~=1)
disp('Se ha superado el número máximo de iteraciones');
end
El pseudocódigo permite comprender mejor el algoritmo, una vez comprendido este, se puede aplicar en cualquier lenguaje de programación, el código presentado en Matlab es solo un ejemplo de su aplicación.