Publicado el 27 de Julio del 2018
1.294 visualizaciones desde el 27 de Julio del 2018
59,6 KB
1 página
Creado hace 10a (08/02/2015)
Programación: Método de bisección
Para resolver esta tarea práctica se pueden usar los apuntes del tema “Método de bisec-
ción”. Los comandos escritos abajo se ejecutan en el lenguaje de programación GNU Oc-
tave.
1. Modelo. La función f1(x) := x2 − 2 es continua en R (en particular, en [1, 2]) y
toma valores de signos opuestos en los extremos del intervalo [1, 2]: f1(1) = −1 < 0,
f2(2) = 2 > 0. Por el teorema del valor medio existe un punto c ∈ (1, 2) tal que f1(c) = 0.
Dibujemos la gráfica de la función f1 en un intervalo más amplio que [1, 2]:
f1 = @(x) x .^2 - 2;
xs = -1 : 0.01 : 3;
plot(xs, f1(xs));
2. Ejemplos. Para cada una de las siguientes funciones fk muestre que fk toma valores
de signos opuestos en los puntos ak y bk, además dibuje la gráfica de la función fk en
un intervalo más amplio que [ak, bk]. Se ve que fk son continuas en R y por lo tanto en
[ak, bk].
f2(x) = sen(x), a2 = 2, b2 = 4.
f3(x) = x5 + x − 1, a3 = 0, b3 = 1.
f4(x) = ex + x − 2, a4 = 0, b4 = 1.
Explicación: xtol, ytol, pmax. En los ejercicios de esta unidad hay que programar
algoritmos que busquen una aproximación de una raíz de la función dada f. Los algoritmos
tienen que pararse cuando se cumple al menos una de las siguientes tres condiciones:
|c − z| < xtol
∨
|f(c)| < ytol
∨
p ≥ pmax,
donde c es la aproximación obtenida, z es el valor exacto del cero de f, p es el número de
los pasos hechos. El valor exacto z del cero de f no se sabe, pero se sabe que z ∈ (a, b),
por eso la condición |c − z| < xtol se sustituye por |a − b| < xtol.
3. Problema bisec.
Escriba una función bisec(f, a0, b0, xtol, ytol, pmax) que aplique el método de
bisección a la función f en el intervalo [a0, b0]. La función debe regresar el punto c (una
aproximación al cero de f) y el número p de los pasos hechos. Pruebe la función bisec1
con los ejemplos del ejercicio 2, poniendo xtol = 10−6, ytol = 10−7 y pmax = 50.
[c, p] = bisec(f1, 1.0, 2.0, 1.0E-6, 1.0E-7, 50)
Verifique si el valor f(c) es pequeño o no:
f1(c)
4. Problema bisecrecur. Escriba una versión recursiva del método de bisección y
pruébela con los mismos ejemplos.
Programación: Método de bisección, página 1 de 1
Comentarios de: Programación: Método de bisección (0)
No hay comentarios