Está en la página 1de 15

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA


INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

ANALISIS NUMERICO
DOCENTE: CALZADA SERAFIN FELIPE

PRACTICA 4
METODO DE FALSA POSICION

2020303263
GARCIA MARTINEZ LESLIE
GRUPO: 4CV9

FECHA DE ENTREGA: 29/09/21


INTRODUCCION
Este método es similar al de la bisección salvo que la siguiente iteración se toma en
la intersección de una recta entre el par de valores x y el eje de las abscisas en lugar de
tomar el punto medio. El reemplazo de la curva por una línea recta da una “posición falsa”
de la raíz, de aquí el nombre de método de la regla falsa.

Para aplicarlo se eligen los extremos xL y xU del intervalo entre los que se encuentra
la raíz, verificando que se cumpla que f(xL). f(xU) < 0. Si se observa la Figura 3.3, por
semejanza de triángulos, puede escribirse la siguiente igualdad:

Y despejando de esta expresión el valor de xM, que es una aproximación de


la raíz, se obtiene la siguiente fórmula de iteración o recurrencia:

El valor de xM, calculado con la ecuación, reemplaza a uno de los dos valores, xL o xU que
produzca un valor de la función que tenga el mismo signo de f(xM). De esta manera los valores xL y
xU siempre encierran a la raíz.

 Si f(xM)=0 el proceso termina.


 Si f(xM) tiene el mismo signo de f(xL), el próximo paso es elegir xL = xM y xU =
xU.
 Si f(xM) tiene el mismo signo de f(xU) el próximo paso es elegir xL = xL y xU =
Xm

El proceso se repite en la misma forma hasta llegar a la cota de error. En la Figura 3.3 se presenta
un esquema del método.

Imagen obtenida de: http://faa.unse.edu.ar/pdf/publicdoc/Calculo_numerico.pdf

GML 1
OBJETIVO
Realizar y comprender un código que sea capaz de procesar el método de falsa
posición; para analizar la similitud y diferencia que existe con el método de la bisección,
por lo cual se encargara de forma progresiva de pedir primero al usuario el grado del
polinomio que se va a resolver y seguido de esto solicitara que se agreguen los datos de
cada uno, para así mostrar la grafica al usuario y que logre identificar los limites superior e
inferior para anexarlo junto con la tolerancia, al final se mostrara los datos del método que
se esta analizando. Cabe destacar que en este caso también se anexara la caratula respectiva
del alumno para dar una mejor presentación al usuario que se encuentre corriendo el
programa, además de hacerlo de forma intuitiva para el mismo.

GML 2
CODIFICACION
//GARCIA MARTINEZ LESLIE
#include<iostream>
#include <graphics.h>
#include<cstdlib>
#include<math.h>
#include<4CV9_GML_P.h>
using namespace std;
const int ANCHO = 720, ALTO = 720;
int e;
char opc;
class funcion
{
private:
double c,fc,r;
int m;
float *M;
public:

funcion()
{
cout<<"Inserte el grado del Polinomio: ";
cin>>m;
M=new float[m];
for(int i=0; i<=m;i++)
M[i]=0;
cout<<endl<<"Ingresa el Polinomio. ";
for(int i=m;i>=0;i--)
{

GML 3
cout<<endl<<"Coeficiente de x^ "<<i<<" = ";
cin>>M[i];
}
cout<<endl<<"\t\n Este es tu polinomio. "<<endl;
for(int i=m;i>=0;i--)
{
if(i!=0)
cout<<M[i]<<"x^ "<<i<<" + ";
else
cout<<M[i]<<endl<<endl;
}
system("PAUSE>NULL");
}
void evaluar(double n)
{
c=n;
r=0;
for(int i=m;i>=0;i--)
{
r+=M[i]*pow(c,i);
}
}
double resultado()
{
return r;
}
};

class metodo:protected funcion


{

GML 4
private:
double cl,cu,cr,fcl,fcu,fcr,er;
public:
int Validar(double a,double b)
{
cl=a;
cu=b;
evaluar(cl);
fcl=resultado();
evaluar(cu);
fcu=resultado();
if((fcl*fcu)<0)
return 0;
else
return 1;
}
double FalsaPosicion()
{
evaluar(cl);
fcl=resultado();
evaluar(cu);
fcu=resultado();
cr=cu-(fcu*(cl-cu))/(fcl-fcu);
evaluar(cr);
fcr=resultado();
if((fcl*fcr)<0)
{
cu=cr;
return cr;
}

GML 5
else if((fcl*fcr)>0)
{
cl=cr;
return cr;
}
else
return cr;
}
double error(double ant)
{
er=(fabs((cr-ant)/cr))*100;
return er;
}
void Imp()
{
cout<<cl<<"\t"<<cu<<"\t";
}
};

void dibujarLinea( int moverX, int moverY, int dibujarX, int dibujarY, int color, int textoX,
int textoY, char *nombre ) {
moveto ( moverX, moverY );
setcolor ( color );
lineto ( dibujarX, dibujarY );
outtextxy( textoX, textoY, nombre );
}
void dibujarExponente ( int e ){
float x, y;
for ( x = -360 ; x <= 360; x += 0.01 ) {
y = pow ( x , e ) / 100;

GML 6
putpixel( 360 + x ,360 - y , YELLOW );
}
}
void pintarPlano ( ) {
initwindow( ANCHO, ALTO );
dibujarLinea( 0, ALTO / 2, ANCHO, ALTO / 2, WHITE, ANCHO - 20, ALTO / 2 + 10,
"X" );
dibujarLinea( ANCHO / 2, 0, ANCHO / 2, ALTO, WHITE, ANCHO / 2 + 10, 0, "Y" );
}

int main()
{
PORTADA();
system("PAUSE>NULL");
system("cls");
int flag=1,i=1,Bis,Reg;
double a,b,raiz,anterior=0,error,tol;
metodo obj;
cout<<"\tEsta correcto el polinomio? [s/n] ";
cin>>opc;
switch(opc){
case 's':
cout << "\n\n GRAFICACION "<< endl;
cout << "Para visualizar su grafica, reingrese el grado del polinomio: ";
cin >> e;
pintarPlano();
dibujarExponente( e );
getch();
closegraph();
cout<<"\n\tGraficacion finalizada.";

GML 7
system("pause>null");
system("cls");
do{
cout<<"Escriba el limite inferior xl: ";
cin>>a;
cout<<endl;
cout<<"Escriba el limite superior xu: ";
cin>>b;
cout<<endl;
cout<<"Ingrese la tolerancia: ";
cin>>tol;
cout<<endl;
flag=obj.Validar(a,b);
if(flag==1)
{
cout<<"INTERVALO NO VALIDO."<<endl;
system("PAUSE>NULL");
}
}while(flag!=0);
system("cls");
cout<<"\n\tFALSA POSICION"<<endl;
cout<<endl<<endl<<"it\t\txl\txu\t xr\t\tError"<<endl;
i=0;
anterior=0;
flag=obj.Validar(a,b);
do{
raiz=obj.FalsaPosicion();
error=obj.error(anterior);
cout<<i<<"\t";
obj.Imp();

GML 8
cout<<raiz<<"\t"<<error<<endl;
anterior=raiz;
i++;
}while(error>=tol);
Reg=i;
system("PAUSE>NULL");
}
return 0;
}

GML 9
PRUEBAS DEL CODIGO

GML 10
GML 11
GML 12
GML 13
CONCLUSION
Dentro de los métodos cerrados de análisis numérico podemos observar que se
ubican tanto el método de la bisección como el método de falsa posición, donde cabe
destacar que existe una característica similitud entre ambos debido a que siguen un proceso
de resolución muy similar y hasta se encuentran interrelacionados entre sí, en este caso la
falsa posición sigue un proceso de pasos indicadores que determina hasta que punto se van
a detener los cálculos del error, todo esto en unos breves, rápidos y sencillos pasos para el
usuario.

BIBLIOGRAFIA
 Lucia Chaillou, D. L. (2008). CALCULO NUMERICO. unse edu.

http://faa.unse.edu.ar/pdf/publicdoc/Calculo_numerico.pdf

GML 14

También podría gustarte