You are on page 1of 5

#include <stdlib.

h>
#include <math.h>
#include <iomanip>
#include <iostream>
#include <stdlib.h>
#include <sstream>
#include "C:\Users\beto\Desktop\ANALISIS NUMERICO PROGRAMAS\VALIDACION3.h"
using namespace std;
long double NEWTONRAPHSON1()
{
long double xf=0, xi=0, xr=0, func, func1,Es,func2,fun3;
int cs;
cout.setf(ios::fixed);

cout<<"La funcion utilizada es: 12x^3+7x^2+12x-100=0"<<endl<<endl;


cout<<"Numero de cifras significaticas: ";
cs=validarcs3();
cout<<endl;
Es=0.5*pow(10,(2-cs));
cout<<"Error de Tolerancia: "<<setprecision((cs-1)*2)<<Es<<" %"<<endl<<endl;
system("PAUSE");
system("cls");
do
{
cout<<"Ingresar el valor de xi: ";
xi=validaNumero3<long double>(true);
cout<<"Ingrese el valor de xf: ";
xf=validaNumero3<long double>(true);
cout<<endl;
system("PAUSE");
}
while(xi>xf);
system("PAUSE");
system("cls");
cout<<"Verificando existencia de raiz..."<<endl<<endl;
func=((12*(powl(xi,3)))+(7*(powl(xi,2)))+(12*xi)-100);
func1=((12*(powl(xf,3)))+(7*(powl(xf,2)))+(12*xf)-100);
func2=((36*(powl(xi,2)))+(14*xi)+12);
if(func==0)
{
cout<<"La raiz es: "<<xi<<endl<<endl;
system("PAUSE");
}
if(func1==0)
{
cout<<"La raiz es: "<<xf<<endl<<endl;
system("PAUSE");
}
if(func<0&&func1>0||func1<0&&func>0)
{
int i=1;
long double vprev;
do{
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>>>>>>>"<<endl;
cout<<"\tIteracion "<<i<<":"<<endl<<endl;
cout<<"xi= "<<xi<<", xf= "<<xf<<endl<<endl;
cout<<"f(xi)= "<<func<<" f(xf)= "<<func1<<" f'(xf)= "<<func2<<endl<
<endl;
cout<<"f(xi)*f(xf)= "<<func*func1;
vprev=xr;
xr=xi-(((12*(powl(xi,3)))+(7*(powl(xi,2)))+(12*xi)-100)/((36*(powl(x
i,2)))+(14*xi)+12));
cout<<"xr=xi-(f(xi)/f'(xi)) "<<xr<<endl<<endl;
xi=xr;
func=((12*(powl(xr,3)))+(7*(powl(xr,2)))+(12*xr)-100);
if(func<0)
{
xi=xr;
func1=(func*(-1));
cout<<"Era=|((Vact-Vprev)/Vact)|X100% = ";
cout<<setprecision(cs)<<"|(("<<xr<<"-"<<vprev<<")/"<<xr<<")|X100% =
";
cout<<fabs((xr-vprev)/xr)*100<<"%"<<endl<<endl;
}
else
{
xf=xr;
func1=func;
cout<<"Era=|((Vact-Vprev)/Vact)|X100% = ";
cout<<setprecision(cs)<<"Era=|(("<<xr<<"-"<<vprev<<")/"<<xr<<")|
X100% = ";
cout<<fabs((xr-vprev)/xr)*100<<"%"<<endl<<endl;
}
i++;
}
while((fabs((xr-vprev)/xr)*100)>Es);
cout<<"La raiz es x = "<<setprecision(cs)<<xr<<endl<<endl;
system("PAUSE");
}
else
{
cout<<"No existe raiz en el intervalo "<<endl<<endl;
system("PAUSE");
}
return 0;
}
long double NEWTONRAPHSON2()
{
long double xf=0, xi=0, xr=0, func, func1,Es,func2,fun3;
int cs;
cout.setf(ios::fixed);

cout<<"La funcion utilizada es: cos(x)-(1/senh(x-10))=0"<<endl<<endl;


cout<<"Numero de cifras significaticas: ";
cs=validarcs3();
cout<<endl;

Es=0.5*pow(10,(2-cs));
cout<<"Error de Tolerancia: "<<setprecision((cs-1)*2)<<Es<<" %"<<endl<<endl;
system("PAUSE");
system("cls");
do
{
cout<<"Ingresar el valor de xi: ";
xi=validaNumero3<long double>(true);
cout<<"Ingrese el valor de xf: ";
xf=validaNumero3<long double>(true);
cout<<endl;
system("PAUSE");
}
while(xi>xf);
system("PAUSE");
system("cls");
cout<<"Verificando existencia de raiz..."<<endl<<endl;
func=(cos(xi)-(1/sinh(xi)-10));
func1=(cos(xi)-(1/sinh(xi)-10));
func2=((1/(tanh(xi)))*(1/(sin(xi)))-sin(xi));
if(func==0)
{
cout<<"La raiz es: "<<xi<<endl<<endl;
system("PAUSE");
}
if(func1==0)
{
cout<<"La raiz es: "<<xf<<endl<<endl;
system("PAUSE");
}
if(func<0&&func1>0||func1<0&&func>0){
int i=1;
long double vprev;
do{
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>"<<endl;
cout<<"\tIteracion "<<i<<":"<<endl<<endl;
cout<<"xi= "<<xi<<", xf= "<<xf<<endl<<endl;
cout<<"f(xi)= "<<func<<" f(xf)= "<<func1<<" f'(xf)= "<<func2<<endl<
<endl;
cout<<"f(xi)*f(xf)= "<<func*func1;
vprev=xr;
xr=xi-((cos(xi)-(1/sinh(xi)-10))/(((1/(tanh(xi)))*(1/(sin(xi)))-sin(
xi))));
cout<<"xr=xi-(f(xi)/f'(xi)) "<<xr<<endl<<endl;
xi=xr;
func=(cos(xr)-(1/sinh(xr)-10));
if(func<0)
{
xi=xr;
func1=(func*(-1));
cout<<"Era=|((Vact-Vprev)/Vact)|X100% = ";
cout<<setprecision(cs)<<"|(("<<xr<<"-"<<vprev<<")/"<<xr<<")|X100% =
";
cout<<fabs((xr-vprev)/xr)*100<<"%"<<endl<<endl;
}
else

{
xf=xr;
func1=func;
cout<<"Era=|((Vact-Vprev)/Vact)|X100% = ";
cout<<setprecision(cs)<<"Era=|(("<<xr<<"-"<<vprev<<")/"<<xr<<")|
X100% = ";
cout<<fabs((xr-vprev)/xr)*100<<"%"<<endl<<endl;
}
i++;
}while((fabs((xr-vprev)/xr)*100)>Es);
cout<<"La raiz es x = "<<setprecision(cs)<<xr<<endl<<endl;
system("PAUSE");
}
else
{
cout<<"No existe raiz en el intervalo "<<endl<<endl;
system("PAUSE");
}
return 0;
}
long double NEWTONRAPHSON3()
{
long double xf=0, xi=0, xr=0, func, func1,Es,func2,fun3;
int cs;
cout.setf(ios::fixed);
cout<<"La funcion utilizada es: e^(4x-60)-(3e(x^2-60))+6"<<endl<<endl;
cout<<"Numero de cifras significaticas: ";
cs=validarcs3();
cout<<endl;
Es=0.5*pow(10,(2-cs));
cout<<"Error de Tolerancia: "<<setprecision((cs-1)*2)<<Es<<" %"<<endl<<endl;
system("PAUSE");
system("cls");
do
{
cout<<"Ingresar el valor de xi: ";
xi=validaNumero3<long double>(true);
cout<<"Ingrese el valor de xf: ";
xf=validaNumero3<long double>(true);
cout<<endl;
system("PAUSE");
}
while(xi>xf);
system("PAUSE");
system("cls");
cout<<"Verificando existencia de raiz..."<<endl<<endl;
func=(exp((4*xi)-60)-(3*exp(xi*xi-60))+6);
func1=(exp((4*xf)-60)-(3*exp(xf*xf-60))+6);
func2=(4*exp(4*xi-60)-(exp(1)*xi*6));
if(func==0)
{
cout<<"La raiz es: "<<xi<<endl<<endl;
system("PAUSE");
}
if(func1==0)
{

cout<<"La raiz es: "<<xf<<endl<<endl;


system("PAUSE");
}
if(func<0&&func1>0||func1<0&&func>0){
int i=1;
long double vprev;
do{
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>"<<endl;
cout<<"\tIteracion "<<i<<":"<<endl<<endl;
cout<<"xi= "<<xi<<", xf= "<<xf<<endl<<endl;
cout<<"f(xi)= "<<func<<" f(xf)= "<<func1<<" f'(xf)= "<<func2<<endl<
<endl;
cout<<"f(xi)*f(xf)= "<<func*func1;
vprev=xr;
xr=xi-((exp((4*xi)-60)-(3*exp(xi*xi-60))+6)/(4*exp(4*xi-60)-6*exp(1)
*xi));
cout<<"xr=xi-(f(xi)/f'(xi)) "<<xr<<endl<<endl;
xi=xr;
func=(exp((4*xr)-60)-(3*exp(xr*xr-60))+6);
if(func<0)
{
xi=xr;
func1=(func*(-1));
cout<<"Era=|((Vact-Vprev)/Vact)|X100% = ";
cout<<setprecision(cs)<<"|(("<<xr<<"-"<<vprev<<")/"<<xr<<")|X100% =
";
cout<<fabs((xr-vprev)/xr)*100<<"%"<<endl<<endl;
}
else
{
xf=xr;
func1=func;
cout<<"Era=|((Vact-Vprev)/Vact)|X100% = ";
cout<<setprecision(cs)<<"Era=|(("<<xr<<"-"<<vprev<<")/"<<xr<<")|
X100% = ";
cout<<fabs((xr-vprev)/xr)*100<<"%"<<endl<<endl;
}
i++;
}while((fabs((xr-vprev)/xr)*100)>Es);
cout<<"La raiz es x = "<<setprecision(cs)<<xr<<endl<<endl;
system("PAUSE");
}
else
{
cout<<"No existe raiz en el intervalo "<<endl<<endl;
system("PAUSE");
}
return 0;
}

You might also like