Está en la página 1de 1

#include <iostream>

#include <cmath>
using namespace std;

//Se define una funcion para la aplicacion del m�todo numerico de Newton-Raphson
//a la ecuacion modificada de Van Der Waals
double newton_raphson_VanDerWaals(double Xo, double tol, double Tr, double Pr){
double f, fprima, Xi, err;
int n=0;
do{
n++;
f=Pr-8*Tr/(8*Xo-1)+27/(64*pow(Xo, 2));
fprima=64*Tr/(pow(8*Xo-1, 2))-54/(64*pow(Xo, 3));
Xi=Xo-(f/fprima);
err=abs((Xi-Xo))/abs(Xo);
Xo=Xi;
} while(err>tol);

cout<<"El volumen molar es "<< Xi<< "\n\n";


cout<<"El numero de iteraciones fue "<< n<< "\n\n";
}

int main(){
double Tr1, Pr1, a1, tolerancia;
char again;

//Aqui se ingresan las variables para iniciar las iteraciones


cout << "Bienvenido al programa para iterar \nusando el metodo de Newton-Raphspn
\nen la ecuacion de Van der Walls \n\n ";
cout<<"Ingrese la temperatura reducida \n\n";
cin>> Tr1;
cout<<"Ingrese la presion reducida \n\n";
cin>> Pr1;
cout<<"Ingrese la tolerancia deseada \n\n";
cin>> tolerancia;
cout<<"Ingrese la primera aproximacion de volumen molar segun los valores de Pr y
Tr \n\n";
cin>> a1;

//Se invoca la funcion definida anteriormente

newton_raphson_VanDerWaals(a1, tolerancia, Tr1, Pr1);

//Aqui se pregunta al usuario si desea usar de nuevo el programa


//� si desea salir del programa, no est� terminada esta parte

cout<<"�Desea realizar otra iteracion? Pulse la tecla correspondiente \nSi: [y]


\nNo: [n] \n\n";
cin>>again;

return 0;

También podría gustarte