ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Informe de Métodos Numéricos


Enviado por   •  8 de Noviembre de 2016  •  Trabajo  •  1.250 Palabras (5 Páginas)  •  326 Visitas

Página 1 de 5

Informe de Métodos Numéricos

Nombre: Daniel Andrés España Medina

Grupo: 2

Introducción

El método de la bisección es usado para encontrar los ceros de una función, funciona cogiendo un intervalo a y b tal que f(a)*f(b)<0 y con este intervalo hacer la operación x = (a+b)/2 de tal manera que si f(a)*f(x)<0 se repetirá la operación con x en vez de b o, caso contrario, si f(x)*f(b)<0 se lo reemplazara en vez de a hasta que f(x) sea tan pequeño como la tolerancia dada, es decir, hasta que f(x) sea menor o igual a la tolerancia, de esta manera nos aseguramos que el cero de la función siempre este en el intervalo y que este se reduzca cada vez más.

Para realizar este proceso se harán k iteraciones donde el intervalo será cada vez más pequeño, si las iteraciones tendieran al infinito, el proceso seria exacto, el intervalo k-esimo está dado por la ecuación  donde  es el modulo del primer intervalo, es decir el módulo de b – a si b>a.[pic 1][pic 2]

Como no podemos hacer infinitas iteraciones, se suele dar una tolerancia donde se pondrá un número aproximado a cero al cual queramos aproximar.

Así mismo para llegar a esta tolerancia, se tendrán un mínimo de iteraciones las cuales las podemos aproximar con la desigualdad:

[pic 3]

Donde:

 Es la tolerancia[pic 4]

R es cualquier base

Desarrollo del código

Bisección

Primero creamos una función que desarrolle el proceso que llamaremos bisección y utilizaremos 4 variables que serán fun, que será una variable en modo escrito para luego convertirla en una función, aquí se colocará la función del ejercicio, las siguientes variables serán x1 y x2 que serán los limites menor y mayor respectivamente y por ultimo tole que será la tolerancia que queramos dar raíz será lo que retorna la función, luego con la función inline convertiremos fun en una función:

>>function raiz=biseccion(fun,x1,x2,tole)

>>f=inline(fun);

Ahora ya podemos iniciar el proceso donde, si los límites son correctos, seguirá con el proceso y caso contrario retornara un mensaje, utilizamos if y colocamos la condición así:

>>function raiz=biseccion(fun,x1,x2,tole)

>>f=inline(fun);

>>if f(x1)*f(x2)<0

Daremos un valor inicial a x para poder usarlo por ejemplo con x1 y realizamos el bucle que tendrá como condición que se realice si el valor absoluto de x es mayor a la tolerancia y dentro del bucle daremos el valor de x que sera la suma de los limites dividido entre dos:  

>>function raiz=biseccion(fun,x1,x2,tole)

>>f=inline(fun);

>>if f(x1)*f(x2)<0

>>        x=x1;

>>        while abs(f(x))>tole

>>                x=(x1+x2)/2;

Luego se procede a comprobar por cual límite se debe reemplazar este x, si f(x)*f(x2)<0 entonces x se reemplazara con x1 y caso contrario se reemplazara con x2, asi termina el if y también el while:

>>function raiz=biseccion(fun,x1,x2,tole)

>>f=inline(fun);

>>if f(x1)*f(x2)<0

>>        x=x1;

>>        while abs(f(x))>tole

>>                x=(x1+x2)/2;

>>                if f(x)*f(x2)<0

>>                        x1=x;

>>                else

>>                        x2=x;

>>                end

>>        end

Al finalizar la función while, el x que quede será el valor de la raíz y así se dará por terminado el proceso, quedando de la siguiente manera:

>>function raiz=biseccion(fun,x1,x2,tole)

>>f=inline(fun);

>>if f(x1)*f(x2)<0

>>        x=x1;

>>        while abs(f(x))>tole

>>                x=(x1+x2)/2;

>>                if f(x)*f(x2)<0

>>                        x1=x;

>>                else

>>                        x2=x;

...

Descargar como (para miembros actualizados) txt (6 Kb) pdf (360 Kb) docx (858 Kb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com