Sei sulla pagina 1di 3

Universidad Simon Bolvar

Departamento de Computo
Cientfico y Estadstica
Computo Cientfico I

Laboratorio 7
Cada una de las funciones que realice debe
Estar comentada, es decir, se debe explicar para que sirve su funcion,
cuales son las variables de entradas, cuales son las variables de salida
y el significado de cada una de ellas.
Validar que las variables de entradas cumplan con las condiciones necesarias para ejecutar la funcion.
Adicionalmente debe crear un script en donde se encuentre definida todas las
variables de entrada para cada una de las funciones que se quiere trabajar.
Ejercicio 1 Sea f (x) una funci
on continua con f (a)f (b) < 0. El Metodo de
Biseccion permite calcular la soluci
on x tal que f (x ) = 0 en el intervalo
[a, b] mediante b
usquedas en intervalos sucesivos de menor tama
no.
Para ello, se toma el punto medio c = (a + b)/2 del intervalo (a, b). Si
f (c) = 0, entonces hemos encontrado la raz. Si f (c) 6= 0 y f (a) y f (c)
tienen signos diferentes, entonces la raz x est
a en el intervalo (a, c), de lo
contrario esta en (c, b).

En cualquier caso se sabe que la raz est


a ahora en un intervalo de tama
no
igual a la mitad del intervalo original. Se repite entonces el proceso, manteniendo siempre el intervalo en el cual se sabe que x est
a contenida, y evaluando f en el punto medio de este intervalo para obtener el siguiente intervalo.
El proceso de biseccion contin
ua hasta que el intervalo obtenido no sea de
longitud mayor a un parametro de tolerancia .
Los pasos para escribir una una funci
on en MatLab, tal que, dada una funci
on f : R R encuentre un punto x tal que f (x ) = 0, son

Dada la funcion f , se necesitan dos puntos a y b del dominio tal que


los signos de f (a) y f (b) sean opuestos.
El usuario debe pasar como variable de entrada un par
ametro para la
tolerancia que llamaremos , que ser
a positivo y tan cercano a cero
como se desee y un n
umero m
aximo de iteraciones kmax.
Si |f (a)| <  o |f (b)| < , entonces a o b es soluci
on (respectivamente);
reportelo y salga de la funci
on. Si eso no ocurre, siga con el siguiente
paso.
Mientras ocurra que |a b| >  o que no se ha excedido el m
aximo de
iteraciones, vaya al paso siguiente.
Hallar c, donde c sera el punto medio entre a y b.
Si |f (c)| <  , reporte que c es soluci
on y salga.
Si el signo de f (c) es igual al de f (a) sustituya a c y regrese al paso
3.
Si el signo de f (c) es igual al de f (b) sustituya b c y regrese al paso
3.
Si |a b| <  o se excedi
o el m
aximo de iteraciones, reporte que no se
pudo hallar una solucion con los par
ametros dados y salga.
Luego de entender la definici
on y el algoritmo anterior, el estudiante debe
realizar las siguientes actividades:
2

1. Escribir un programa iterativo para el Metodo de Bisecci


on (biseci).
[x]= biseci(f,a,b,eps,kmax)
2. Escribir un programa recursivo para el Metodo de Bisecci
on (bisecr).
[x]= bisecr(f,a,b,eps,kmax)
3. Utilizar los programas anteriores para calcular la raz de la funci
on
f (x) = (x + 1)(x 3), en el intervalo a = 1 y b = 4.
4. Ejecute los programas para los diferentes valores de  = 101 , . . . , 105
y calcule el tiempo para cada caso.
5. Realice una grafica donde se muestre el tiempo que tarda el programa
de acuerdo al valor de , es decir, epsilon (eje x) vs tiempo (eje y).
Ambos programas reciben los puntos a y b del intervalo, el par
ametro de
convergencia  y el n
umero m
aximo de iteraciones permitidas kmax. En caso
de alcanzar el valor de kmax el programa deber
a devolver como soluci
on el

u
ltimo valor calculado de x y un mensaje de advertencia para indicar que la
solucion no es optima.

Potrebbero piacerti anche