TUTORIAL PARA MÉTODO DE BISECCIÓN
Enviado por Esteban Galaviz • 28 de Agosto de 2018 • Tutorial • 3.625 Palabras (15 Páginas) • 202 Visitas
INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE
[pic 1]
CARRERA:
Ingeniería Mecánica
GRUPO: 401
MATERIA:
Métodos Numéricos
TEMA:
Tema ll: Reporte Práctico
ALUMNO:
Miguel Ángel Esparza Parra
PROFESOR:
M.C. Raúl Loredo Medina
Guasave, Sinaloa, 19 de Marzo de 2018
TUTORIAL PARA MÉTODO DE BISECCIÓN
Este método, que se utiliza para resolver ecuaciones de una variable, está basado en el “Teorema de los Valores Intermedios” (TVM), en el cual se establece que toda función continua f, en un intervalo cerrado [a, b], toma todos los valores que se hallan entre f(a) y f (b), de tal forma que la ecuación f(x)=0 tiene una sola raíz que verifica f(a).f (b) <0.
Sea la función dada f (x)= determinar sus raíces reales cuando Xi= -2, Xu= -0.5, P= -1[pic 2]
- Fórmulas
[pic 3]
[pic 4]
[pic 5]
- Primeramente se inicia en el programa Excel para comenzar con la resolución del problema.
- Seguido de esto realiza la tabla correspondiente al método de bisección con las variables correspondientes.[pic 6]
- Seguido de esto se comienza a llenar la tabla con los valores dados al principio.
[pic 7]
- Con estos valores se realizan cálculos aplicando la fórmula para calcular el valor de Xr obtenido por la suma de Xl más Xu dividido entre dos.[pic 8]
[pic 9]
- Teniendo el valor de Xr se pasa calcular el valor siguiente, fXl que se obtiene sustituyendo el valor de Xl en x de la función .[pic 10]
[pic 11]
- Para calcular fXu se realiza el paso anterior pero cambiando el valor de Xl por el de Xu o simplemente desliza la celda de Xr hacia fXl.
[pic 12]
- Igualmente para fXr se repiten los dos pasos anteriores tomando el valor de Xr y sustituirlo en x de la función.
[pic 13]
- Ahora para calcular el valor de fXl*fXr simplemente se multiplican los valores a los que les corresponda el fXl y fXr.
[pic 14]
- Por siguiente está el error relativo porcentual se obtiene restando el valor verdadero del problema menos el valor obtenido de xr divido entre el valor verdadero y multiplicado por cien todo esto como valor absoluto.
[pic 15]
[pic 16]
Por ultimo para terminar la primer fila calcule el Error aproximado para la primera iteración mediante la formula.
[pic 19][pic 17][pic 18]
- una vez terminada la primera fila para conocer el nuevo valor de Xl en la segunda iteración es necesario expresarlo mediante la condición SI(fXl*fXu>0,Xr,Xl), esto se refiere a que si el valor fxl*fxu es mayor a cero el valor de xr pasa como valor de xl en la segunda iteración. Tal es es caso para encontrar el valor Xu solo que la condición cambiaria SI(fxl*fxr<0,Xr,Xu).
- Para agilizar el cálculo del método el programa ya tiene un orden a seguir por lo que solo se arrastraría cada celda a su nueva posición en la fila dos, excepto para calcular el error aproximado por lo que debe regresarse al paso 10 y calcular ese valor para la iteración 2.
[pic 20]
[pic 21]
- Se plantea nuevamente una condición para la iteración 3 donde sin fxl*fxr es mayor a cero xr de la segunda fila pasara a xl de la iteración dos y si no es asi mantendrá el mismo valor xl. Siendo el mismo proceso para xu de la tercera iteración donde si (fxl*fxr<0,xr,xu).[pic 22][pic 23]
- Por ultimo solo resta deslizar las celdas de la fila tres hacia la fila cuatro para obtener los valores restantes.
[pic 24]
PROGRAMA EN C++ PARA EL MÉTODO DE BISECCIÓN
//Se declaran las librerias
#include
#include
#include
using namespace std;
int main()
{
//Se declaran las variables
float xl, xu, xr, xrold;
float fxl, fxr, fxu,es,erp;
float ea=100;
int i=1;
//Se piden los valores iniciales para Xl, Xu, Es
cout<<"Ingrese el valor inicial de Xl: ";
cin>>xl;
cout<<"Ingrese el valor inicial de Xu: ";
cin>>xu;
cout<<"Ingrese el valor del error Es: ";
cin>>es;
printf("i\tXl\tXu\tXr\tF(Xl)\tF(Xu)\tF(Xr)\tERP\tEa\n");
//Todo se repite mientras no se cumpla con el error esperado
while(ea>es)
{
xrold=xr;
//Se imprimen los valores de cada una de las variables
printf("%1\t", i);//Iteración
printf("%0.2f\t", xl);//Xl
printf("%0.2f\t", xu);//Xu
//Se calculan FXl y FXu
fxl=(5*(xl*xl))+(6*xl)+(1);//Fxl
fxu=(5*(xu*xu))+(6*xu)+(1);//Fxu
//Se obtiene el valor de Xr
xr=(xl+xu)/2;
...