Sei sulla pagina 1di 6

// f(x)= x^5-4x^4+5x^3-6x+4

#include <iostream>
#include <iomanip>
#include <math.h>
#define f1(x)(1.0*pow(x,5)-4.0*pow(x,4)+5.0*pow(x,3)-6.0*x+4.0)
#define fp(x)(5.0*pow(x,4)-16.0*pow(x,3)+15.0*pow(x,2)-6.0)

double newton_raphson(double x1, double es, int iter);

using namespace std;


int main()
{
int iter;
double es, x1, raiz;
cout<<"-------Metodo de Newton-Raphson------\n";
cout<<"Punto Inicial (xi):"; cin>>x1; cout<<"\n";
cout<<"Error de Convergencia (Dado por unidad):";cin>>es;
cout<<"\n";
cout<<"Numero de iteraciones (Usar numero entre 100 y 150):";
cin>>iter; cout<<"\n";
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.setf(ios::showpos);
cout.precision(4);
raiz=newton_raphson(x1, es, iter);
cout<<"La raiz es:"<<setprecision(10)<<raiz;
return 0;
}
double newton_raphson(double x1, double es, int iter)
{
double x2, ea, y1, yp1;

cout<<"Iteracion"<<setw(10)<<"xi"<<setw(10)<<"xi+1"<<setw(10)<<"Ea
"<<setw(10)<<"f(xi)"<<setw(10)<<"f'(xi)"<<endl;
for(int cont=1;cont<=iter;cont++)
{
y1=f1(x1);
yp1=fp(x1);
if(yp1==0)
{
cout<<"Hay una division entre cero. f
´(xi)=0"<<endl;
break;
}
x2=x1-(y1/yp1);
ea=fabs((x2-x1)/x2);

cout<<setw(5)<<cont<<setw(15)<<x1<<setw(10)<<x2<<setw(10)<<ea<<set
w(10)<<y1<<setw(10)<<yp1<<endl;

x1=x2;

if(ea<es)
{
cout<<"El metodo converge
a"<<cont<<"iteraciones.\n";
return x2;
break;
}
}
if(ea>es)
cout<<"El metodo no converge para
las"<<iter<<"iteraciones indicadas. aumente el numero de
\n"<<"iteraciones, use otro punto inicial o en su defecto; use
otro medoto numerico\n";
}
Conclusiones.

Newton Rapshon nos pide solamente un punto inicial, y aunque nos pide las
derivadas fue más fácil ponerla con un #define para ahorrarnos los pasos de
derivar en el programa. Después el programa ira comparando y acomodando y1,
x1, x2 etc. para ir realizando las iteraciones necearías que indiquemos al
programa.
El poner las derivadas y la función en #define ayudo a qe el programa fuera mas
compacto y fácil de realizar.
INSTITUTO POLITECNICO NACIONAL

“ESCUELA SUPERIOR DE INGENIERIA

MECANICA Y ELECTRICA “

UNIDAD CULHUACAN
ANALISIS NUMERICO

PRACTICA:

NEWTON RAHPSON

ALUMNO:

ORTIZ CORTES MOISES

PROFESOR:

RODRIGUEZ HERNANDEZ JAVIER

Potrebbero piacerti anche