Método de Falsa Posición - Programación en C PDF

Title Método de Falsa Posición - Programación en C
Course Métodos Numéricos
Institution Universidad Autónoma de Zacatecas
Pages 4
File Size 217.7 KB
File Type PDF
Total Downloads 49
Total Views 124

Summary

Descripción , algoritmo y un ejemplo de su programación en Lenguaje C...


Description

Método de Falsa Posición Aunque el método de Bisección es un buen ejemplo de un método cerrado que utiliza la fuerza bruta para encontrar la raíz de una función, este se considera muy poco eficiente, ya que el proceso de búsqueda puede ser muy lento, por lo cual es un método ineficiente. Una alternativa es el método de "Falsa Posición". Uno de los fallos del de Bisección es que no toma en cuenta al dividir el intervalo de búsqueda en dos intervalos la magnitud de los factores f(x) inferior y f(x) superior, esto es que no toma en cuenta que valor está más cerca de la raíz. Por su parte el método de Falsa Posición es un método alternativo que utiliza la característica de unir mediante una línea recta los valores de f(xi) y f(xs), esta recta al cruzar el eje de las 'x' proporciona una estimación de la raíz, es decir, una falsa posición de la raíz, la cual permite encontrar la raíz mediante un proceso iterativo.

Algoritmo del método de Falsa Posición 1.- Elija 2 valores iníciales 'xi' y 'xs', tales que exista un cambio de signo en el intervalo, esto es cierto si f(xi) * f(xs) < 0 2.- Calcule la aproximación a la raíz 'xr' mediante la siguiente ecuación: f(xs) * (xi - xs) xr = xs f(xi) - f(xs) 3.- Determine en cuál de los 2 sub-intervalos se encuentra la raíz, para ello lleve a cabo las siguientes evaluaciones: a) Si f(xi) * f(xr) < 0 la raíz se encuentra en el primer sub-intervalo, por lo tanto, xs = xr, Regrese al paso 2. b) Si f(xi) * f(xr) > 0 la raíz se encuentra en el segundo lo tanto, xi = xr, Regrese al paso 2. c) Si f(xi) * f(xr) = 0 la raíz es xr, Fin del ciclo

sub-intervalo,

por

Código del método de Falsa Posición programado en C #include #include #include

xract=xr; printf("%.6f",xr); gotoxy(55,wherey()); calc_fx(xr); fxr = temp; printf("%.6f",fxr); gotoxy(65,wherey()); if(fxi*fxr > 0) { printf(" +"); xi = xr; } else if(fxi*fxr < 0) { printf(" -"); xs = xr; } gotoxy(70,wherey()); if(corrida == 0) { printf("100"); ea = 100; } else { ea = ((xract - xrant)/xract)*100; if (ea < 0) ea = ea*-1; printf("%.5f",ea); } corrida++; printf("\n"); if(ea < error) op='S'; if(xr == 0) op='S';

float e = 2.718281828; float temp,xrant,xract; void calc_fx(float x) { temp = pow(e,-(x)) - x; } int main(){ char op; int corrida=0; float xi, fxi, xs, fxs, xr, fxr, ea; float error = 0.001; xi = 0; xs = 1; printf(" #: xi: f(xi): xs: f(xr): f(xi)* |Ea|:\n");

f(xs): xr:

printf(" f(xr):\n\n\n"); do { gotoxy(3,wherey()); printf("%d",corrida); gotoxy(10,wherey()); printf("%.2f",xi); gotoxy(20,wherey()); calc_fx(xi); fxi = temp; printf("%.2f",fxi); gotoxy(26,wherey()); printf("%.6f",xs); gotoxy(35,wherey()); calc_fx(xs); fxs = temp; printf("%.6f",fxs); gotoxy(46,wherey()); xrant=xr; xr = xs-((fxs*(xi - xs))/(fxi-fxs));

}while(op != 'S'); getch(); return 0; }

Ejecución del Programa...


Similar Free PDFs