Metodo de biseccion
Escuela superior de Ingeniería Mecánica y Eléctrica
Unidad Zacatenco
Ingeniería en Control y Automatización
Análisis Numérico
Practica No. 1
Titulo de la Practica: “Método de bisección”
Grupo: 3A2V
Salón: 3102
2.- Introducción sobre el método:
El método de bisección, conocido también como de corte binario, de participación en dos intervalosiguales o método Bolzano, es un método de búsqueda incremental en el que el intervalo se divide siempre en dos. Si la función cambia se signo sobre un intervalo, se evalúa el valor de la función en el punto medio. La posición de la raíz se determina situándola en el punto medio del subintervalo dentro del cual ocurre un cambio. El proceso se repite hasta obtener una mejor aproximación. Acontinuación se muestra un sencillo algoritmo sencillo para calcular la bisección.
Algoritmo del método de bisección
Paso 1. Elija los valores iníciales inferior x1 y superior x2 de forma tal que la función cambio de signo sobre el intervalo. Esto se puede verificar asegurándose que F(x1) F(x2) < 0.Paso 2. La primera aproximación a la raíz x, se determina como:x1=x1+x22Paso 3. Realice lassiguientes evaluaciones para determinar en qué subintervalo cae la raíz: a) Si F(x1) F(x2) < 0; entonces la raíz se encuentra dentro del subintervalo. Por lo tanto, tome xu = x1, y continúe con el paso 2. b) Si F(x1) F(x2) > 0; entonces la raíz se encuentra dentro del subintervalo superior. Por lo tanto, resuélvase xf = xr y continúese con el caso 2.Paso 4. Si F(x1) F(x2) = 0, la raíz es iguala x; termina el cálculo. |
Criterios de paro y estimación de errores
Para la segunda iteración de este método tenemos todos los argumentos necesarios para poder calcular el error relativo y el error porcentual. Una sugerencia inicial puede finalizar el cálculo cuando el error se encuentre por debajo de algún nivel prefijado. Puede decidirse que el método termine cuando se alcance un error másbajo, por ejemplo del 0.1%. Cuando no se conoce la raíz solucion, se requiere estimar el error de manera análoga, de esta manera calculamos el error porcentual:
Ea=|Xact-XantXact*100|
Donde Xact es la raíz de la iteración actual y Xant es el valor de la raíz de iteración anterior. Se usa el valor absoluto, ya que por lo general importa solo la magnitud de Ea sin considerar su signo. CuandoEa es menor que un valor previamente fijado en Ea, el cálculo lo termina.
3.- Diagrama de flujo:
4.- Código en matlab:
% Programa para el cálculo de raíces en Ecuaciones No-lineales% Método de Bisección Clear all % // limpia memoria // Clc % // limpia la pantalla // Fprintf (‘ \n Calculo de la raíz de una Ecuacion por el método de bisección \n\n’);Y= input ( ‘Dame la función: ’, ‘s’ ); xa= input ( ‘Dame el intervalo inferior: ’ ); xb= input ( ‘Dame el intervalo superior: ’ ); error= input ( ‘Dame el porciento del error: ’ ); x= xa; ya= eval( Y ) % x= xb; yb= eval( Y ) % if ( ya * yb ) > 0 fprintf ( ‘\n\n No existe una raíz en este intervalo \n\n); break; end disp ( ‘ N xa xb xrF(xa) F(xb) F(xr) error ‘ ); xant= 0; N= 0; While N < 5 xr=( xa + xb )/ 2; xact= xr; x= xr; yr= eval (Y); Ea= abs((xact – xant) – xact)*100 ds_i= fprinf ( ‘ %4d %17.8g %17.8g %17.8g %17.8g %17.8g %17.8g %10.5g ‘ , N, xa, . xb, xr, ya, yb, yr, Ea); if ( Ea < error) fprintf ( ‘ \n\nLa raíz exacta es: %g ‘ , xr); fprintf ( ‘ \n\n Numero de Iteraciones: %d \n\n’ , N); break end if ( ya * yr ) < 0 xb= xr; else if ( ya * yr )== 0 fprintf ( ‘ \n\n La raíz exacta es: %17.8g ‘ ,xr); fprintf ( ‘ \n\n Numero de Iteraciones: %d’ , N); break else xact= x end xant= xr; N= N+1; end |
6.- Ejecución:
1.- Obtener una raíz de la función...
Regístrate para leer el documento completo.