método de la regla falsa
DESCRIPTION
c++TRANSCRIPT
Diagrama de flujo del mtodo de la regla falsa. Return (0)y1*y2 > 0.0y1= f(x1)y2= f(x2)x1, x2, Eps, nitError en el intervalo
NoSi
i x1 x2 x3 xi+1-xi y1 y2 y3 ea
1
1
y1==y2
NoSi
Return (0)El proceso converge res= resy3=f(x3)x3= x2-[y2*(x1-x2)/(y1-y2)]res=x3y3==0Return (0)No se puede dividir por cero
NoSi
2
543Return (0)y1==y2y1= f(x1)y2= f(x2)x4=x3for (i=2; i 01 x1 x2 x3 xi+1-xi y1 y2 y3 ea
i=12
NoSi
NoSi
5x3= x2-[y2*(x1-x2)/(y1-y2)]y3=f(x3)
y3==0
NoSi2 x1 x2 x3 xi+1-xi y1 y2 y3 ea
ea= |(x3-x4)/(x3)|*100
El proceso converge res= resReturn (0)res=x3
|x3-x4| 0
SiNox4=x3x2=x3x1=x3
4
3
|x3-x4|>Eps
SiNo
finEl sistema no converge
Cdigo de programacin del mtodo de la regla falsa#include #include #include #include #include
using namespace std;
#define f(x)(4.0*pow(x,3)-30.0*pow(x,2)+70.0*x-50.0)
main(){int i,nit;float x1,x2,x3,x4,y1,y2,y3,eps,ea,res;
printf("Programa para encontrar la raiz usando la regla falsa\n");printf("\n");printf("x1= ");scanf("%f",&x1);printf("x2= ");scanf("%f",&x2);printf("eps= ");scanf("%f",&eps);printf("nit= ");scanf("%f",&nit);printf("\n");
y1=f(x1);y2=f(x2);
if (y1*y2>0){ cout