Publicado el 27 de Julio del 2018
1.248 visualizaciones desde el 27 de Julio del 2018
68,7 KB
2 paginas
Creado hace 10a (08/03/2015)
Programación: Método del punto fijo
(método de iteración simple)
Objetivos. Programar el método del punto fijo.
Requisitos. Entender bien la idea del ciclo while. Tener preparados varios ejemplos
“buenos” y “malos” que muestren la convergencia y divergencia del método. Se recomienda
usar las funciones g1, g2, g3, g4, g5 de la clase anterior.
1. Idea del método. Buscamos el punto fijo de una función dada g. A partir de un
punto dado x0 construimos x1, x2, . . . mediante la siguiente fórmula recursiva:
xp = g(xp−1).
2. Guardar solamente el punto actual y el anterior. En el programa no es necesario
guardar todos los puntos x0, x1, x2, . . .. En cada momento vamos a guardar solamente el
punto actual xp denotándolo por x y el punto anterior xp−1 que denotamos por xprev.
3. Condición de terminación y condición de continuación. Denotemos por d a la
distancia entre el punto actual x y el punto anterior xprev. El método de punto fijo debe
pararse cuando d es pequeño (menor que un número dado xtol) o cuando el número de
los pasos hechos es mayor o igual al número de pasos máximo permitido:
d < xtol
∨
p ≥ pmax.
(1)
La condición de continuación será la negación de la condición de paro (1). Recuerde la
ley de De Morgan sobre la negación de la disyunción:
a ∨ b =
Escriba la condición de continuación en el método de punto fijo. Hay que continuar mien-
tras se cumpla la siguiente condición:
?
?
?
Programación: método del punto fijo, página 1 de 2
4. Algoritmo FixPoint (pseudocódigo).
Sustituya los signos ??? por expresiones correctas:
Entrada: g, x0, xtol, pmax.
Variables locales: ???.
p := ???;
d := 2 * xtol;
x := ???;
Mientras ...:
xprev := x;
x := ???;
d := abs(x - xprev);
p := p + 1;
Salida: x, p.
5. Problema FixPoint. Escriba una función con argumentos g, x0, xtol, pmax que
aplique el método de iteración de punto fijo a la función g con el punto inicial x0. La
función debe regresar la última aproximación al punto fijo y el número de las iteraciones
hechas.
6. Pruebas. Pruebe la función FixedPoint con varios ejemplos “buenos” y “malos”; se
recomienda usar las funciones g1, g2, g3, g4, g5 de la clase anterior. Ponga pmax = 30,
xtol = 10−8. Como la aproximación inicial x0 puede usar el extremo izquierdo ak (escriba
este número con el punto decimal).
√
g1(x) = 3
x + 1,
[a1, b1] = [1, 2], x0 = 1.0.
g2(x) = log(2 − x),
[a2, b2] = [0, 0.8], x0 = 0.0.
g3(x) = x −
x3 − x − 1
3x2 − 1
,
[a3, b3] = [1.2, 2], x0 = 1.2.
g4(x) = x3 − 1,
[a4, b4] = [1, 2], x0 = 1.0.
g5(x) = 2 − ex,
[a5, b5] = [0, 0.8], x0 = 0.0.
Por ejemplo, en Wolfram Mathematica puede escribir el programa de la siguiente manera:
FixPoint[g_, x0_, xtol_, pmax_] := ...
g1[x_] := (x + 1) ^ (1/3);
FixPoint[g1, 1.0, 10^(-8), 30]
7. Problema adicional FixedPointRecur. Escriba una función recursiva con argu-
mentos g, x0, xtol, pmax que realice el método de iteración de punto fijo. La función
tiene que regresar el punto fijo y el número de las iteraciones hechas.
Programación: método del punto fijo, página 2 de 2
Comentarios de: Programación: Método del punto fijo (método de iteración simple) (0)
No hay comentarios