En cálculo numérico, el método de la regula falsi (regla del falso) o falsa posición es un método iterativo de resolución numérica de ecuaciones no lineales. El método combina el método de bisección y el método de la secante.
#include<iostream>
#include<cmath>//biblioteca para poder utilizar la funcion pow()
using namespace std;
/*para encontrar una raíz de la ecuación f(x)=0 analíticamente, proporcionar la función
F(X)
DATOS:
-->a Y b que forman un intervalo, en donde se halla una raíz
-->TOL criterio de convergencia//la tolerancia
-->EXACTITUD criterio de exactitud
-->MAXIT número máximo de iteraciones
RESULTADOS:
-->X la raiz aproximada o mensaje de falla
*/
//función de la cual se quiere hallar una raiz
double F(double x){
return 3*pow(x,2)+4*x-7;//en este caso usamos una función cuadratica
}
double falsa_posicion(double a, double b,int MAXIT,double TOL,double EXACTITUD){
int cont=1;
double fa=F(a);
double fb=F(b);
double c;//punto entre a y b
double fc;//F(c)
while(cont<MAXIT){
c=(a*F(b)-b*F(a))/(F(b)-F(a));//formula de la falsa posicion
fc=F(c);
if(abs(fc)<=EXACTITUD){
return c;//raiz encontrada
}
if(abs(b-a)<=TOL){
c=(a+b)/2;
return c;//raiz encontrada
}
if(fc*fb>0)
a=c;
if(fa*fc>0)
b=c;
cont=cont+1;
}
return c;
}
int main (int argc, char *argv[]) {
//exactitud y tolerancia cercanas a cero
cout<<falsa_posicion(0,2,15,0.00000005,0.0000005);//retorna la raiz
return 0;
}
Buenos dias!! Alguien quien me pueda ayudar , es para mi examen. Tengo que escribir una funcion en programacion c++ que calcule la raiz de y=x^3+2x^2+10x-20 por el metodo de falsa posicion.
ResponderBorrar