Untitled
Untitled
Untitled
INGENIERÍA QUÍMICA
Serie de Ejercicios
ASIGNATURA:
Métodos Numéricos
Nombre y firma del docente (s):
M. en C. Benito Rodriguez Nava
Unidad: 1 y 2 Tema: Introducción a los métodos numéricos y Solución de ecuaciones
algebraicas
ALUMNO: Grupo: Fecha de entrega:
IF-0401-2- 8 de Abril 2022
Amaury Baltazar Pérez. 3
% obtenido 49%
Instrucciones. De cada ejercicio realice el planteamiento y obtenga solución por medio de TICS. Para
resolver de forma analítica utilice tabla de iteraciones aplicando el método de Newton Raphson, de ser
necesario utilice método grafico para proponer un punto de evaluación para Newton Raphson, contemple
un porcentaje de error menor a 1% en sus resultados analíticos de tablas de iteraciones. Realizar
programa en Dev-C++ en los problemas indicados. El reporte lo realizará por equipo en hojas tamaño
carta y su respectiva carátula, posteriormente de la evaluación, deberá escanear y guardar en archivo
PDF que compartirá con los integrantes del equipo para subir de forma individual a la plataforma Teams
como portafolio digital.
Gas R A B T P V
CO2 0.08206 3.59 0.0427 250 10 1.911
NH3 0.08206 4.17 0.0371 420 75 0.3572
H2 0.08206 0.244 0.0266 100 5 1.639
Volume ideal:
F(v) =
F’(v)=
2. La ecuación de Van der Waals para gases reales, está dada por:
n2 A
P V nB nRT
V2
Donde n es el número de moles, R constante universal de los gases, Presión (P), Temperatura (T),
Volumen (V) y A, B son constantes obtenidas de tablas de gases para Van der Waals. Para comprobar
sus planteamientos y soluciones analíticas, considere los datos de los gases de la Tabla 2.
Tabla 2. Datos de gases para comprobar soluciones del problema 2.
Gas R A B n P T V
CO2 0.08206 3.59 0.0427 3 10 100 0.143743
NH3 0.08206 4.17 0.0371 4 75 50 0.1540886
H2 0.08206 0.244 0.0266 2 5 10 0.058939
Evidencia de solución por TICS. (1ptos)
Evidencia de solución analítica por aproximación con Newton Raphson y tabla de iteraciones, el
porcentaje de error para las soluciones reales debe ser menor a 1%. (2ptos)
Gas R Tc Pc T P V
He 0.08206 5.3 2.29 100 50 0.1798
SO2 0.08206 430 78.7 250 2 0.04893
CCl2F2 0.08206 385.1 41.1 350 10 2.5306
Respecto a la Tabla 3, del volumen calculado para SO2 en (m3/ kg), determine la masa que se puede
almacenar en un tanque de 1 m3. R->m=20.43kg
Calculando el valor de A
>
>
>
>
Calculando el valor de B
>
>
>
>
Sustituyendo datos en la ecuación
>
>
>
>
>
>
>
>
>
Por lo que se puede deducir que una solución aproximada es V=0.1792 y 0.34% de error
Evidencia de planteamiento y cálculo analítico para calcular masa del gas indicado.
(1ptos)
𝑉 𝑑𝑒𝑙 𝑡𝑎𝑛𝑞𝑢𝑒 1m%
M del gas ind. = = = 20.4373 𝐾𝑔
𝑉 𝑑𝑒 𝑆𝑂! 0.04893
Componente (c) zi ki
Propano 0.3 7
n-Butano 0.1 2.4
n-Pentano 0.15 0.8
Siguiendo las instrucciones de inicio, realice lo siguiente en función a los datos de la Tabla 4:
Ecuación original
Derivada de la ecuación
2 componentes
>restart;
>z1:=0.3; k1:=7; z2:=0.1; k2:=2.4;
z1:=0.3
k1:=7
z2:=0.1
k2:=2.4
z1 ∗ (k1 − 1) z2 ∗ (k2 − 1)
0= +
𝑥 ∗ (𝑘1 − 1) + 1 𝑥 ∗ (𝑘2 − 1) + 1
1.8 0.14
0= +
6𝑥 + 1 1.4𝑥 + 1
>fsolve((z))
-0.5773809524
3 componentes
>restart;
>z1:=0.3; k1:=7; z2:=0.1; k2:=2.4; z3:=0.15; k3:=0.8;
z1:=0.3
k1:=7
z2:=0.1
k2:=2.4
z3:=0.15
k3:=0.8
4 componentes
>restart;
>z1:=0.3; k1:=7; z2:=0.1; k2:=2.4; z3:=0.15; k3:=0.8; z4:=0.45; k4:=0.3;
z1:=0.3
k1:=7
z2:=0.1
k2:=2.4
z3:=0.15
k3:=0.8
z4:=0.45
k4:=0.3
#include<iostream>
#include<math.h>
#include<cstdlib>
using namespace std;
int main()
{
system ("color f0");
cout<<"Programa que a partir de la ecuacion de Rachford Rice:";
cout<<"\n\t Sumatoria (zi(ki-1)/((V/F)(ki-1)+1)";
cout<<"\nObtiene soluciones reales de V/F aplicando el metodo de Newton Raphson";
double z1, k1,z2,k2,z3,k3,z4,k4, Error, Vactual, Ec, x, num, den, incremento, Vsuperior, Vinicial, i, y;
int n=1, tabulacion=1;
cout<<"\n\nDe la tabla de componentes de hidrocarburos, ingrese los siguientes datos :";
cout<<"\n\nIngrese constante z1=";
cin>> z1;
cout<<"\nIngrese constante k1= ";
cin>> k1;
cout<<"\n\nIngrese constante z2=";
cin>> z2;
cout<<"\nIngrese constante k2= ";
cin>> k2;
cout<<"\n\nIngrese constante z3=";
cin>> z3;
cout<<"\nIngrese constante k3= ";
cin>> k3;
cout<<"\n\nIngrese constante z4=";
cin>> z4;
cout<<"\nIngrese constante k4= ";
cin>> k4;
while(tabulacion)
{
// Apartado de constantes de prueba
cout<<"\nValores de prueba = "<<z1*(k1-1)<<","<<z2*(k2-1)<<","<<z3*(k3-1)<<","<<z4*(k4-
1)<<","<<(k1-1)<<","<<(k2-1)<<","<<(k3-1)<<","<<(k4-1);
cout<<"\nIngrese valor inicial de tabulacion : ";
cin>>Vinicial;
cout<<"\nIngrese valor final de tabulacion : ";
cin>>Vsuperior;
cout<<"\nIngrese los incrementos : ";
cin>>incremento;
x=Vinicial;
for(i=Vinicial; i<=Vsuperior; i=i+incremento)
{
x=i;
y=(z1*(k1-1)/(x*(k1-1)+1)+z2*(k2-1)/(x*(k2-1)+1)+z3*(k3-1)/(x*(k3-1)+1)+z4*(k4-1)/(x*(k4-1)+1));
cout<<"\n"<<x<<"\t\t"<<y;
}
cout<<"\n\nPresione 1 para volver a tabular, 0 para concluir :";
cin>>tabulacion;
}
//Apartado de Newton Raphson
while(n)
{
cout<<"\nCual es el porcentaje de error que requieres= ";
cin>> Error;
cout<<"\nIngrese un valor de prueba= ";
cin>> x;
//Apartado de evaluación
cout<<"\nVactual"<<"\t\t %Error" ;
do
{
num=(z1*(k1-1)/(x*(k1-1)+1)+z2*(k2-1)/(x*(k2-1)+1)+z3*(k3-1)/(x*(k3-1)+1)+z4*(k4-1)/(x*(k4-1)+1));
den=-(z1*(k1-1)*(k1-1))/((x*(k1-1)+1)*(x*(k1-1)+1))-(z2*(k2-1)*(k2-1))/((x*(k2-1)+1)*(x*(k2-1)+1))-
(z3*(k3-1)*(k3-1))/((x*(k3-1)+1)*(x*(k3-1)+1))-(z4*(k4-1)*(k4-1))/((x*(k4-1)+1)*(x*(k4-1)+1));
Vactual=x-((num)/(den));
Ec=100*fabs((Vactual-x)/Vactual);
cout<<"\n"<<Vactual<<"\t\t"<<Ec;
x=Vactual;
}
while(Error <= Ec);
cout<<"\n\nUna solucion real de la relacion V/F es: "<<Vactual<<" con "<<Ec<<"% de error";
cout<<"\n\nPresione 1 para continuar, 0 para concluir :";
cin>>n;
}
return 0;
}
1 1 5,0452 1 5,8506
0= + 4,0. log Y ∗ 0.006 − log \ (0.006)+,+/01 ] + /,101+ ^
W𝑓 3,7065 𝑅𝑒 2.8257 𝑅𝑒
v En este caso se realiza la operación mediante la utilización de la TIC Maple, para obtener a
𝑅𝑒
>
>
v Según el libro de mecánica de fluidos para obtener el valor del diámetro, se debe identificar
una ecuación, la cual debe relacionar el caudal, Re, la temperatura del agua y por
consiguiente el diámetro. Dicha ecuación quedaría de la siguiente forma:
𝟒∗𝑸
𝒅=
𝝅(𝟏𝟗𝟗𝟐𝟗. 𝟐𝟎𝟕𝟑)(𝐯)
Diámetro a 25°C
v En la tabla de la viscosidad respecto a las propiedades físicas del agua a 1 bar se obtienen
las viscosidades de acuerdo a la temperatura de 25°C
>
>
>
>
>
…..
>
>
>
>
>
>
>
>
,,,,,
>
Vactual=
1. #include<iostream>
2. #include<math.h>
3. #include<cstdlib>
4. using namespace std;
5. int main() {
6. system ("color f0");
7. cout<<"\n Obtiene soluciones reales a partir del numero de Reynolds ";
8. double f, ED, R,Error, Vactual, Ec, num, den, V, p, m, d, Q ;
9. int n=1, tab=1, ciclos;
10. cout<<"\n\nIngrese los siguientes datos en congruencia con el sistema de unidades :";
11. cout<<"\n\nIngrese el valor de la relacion E/D= ";
12. cin>> ED;
13. cout<<"\n\nIngrese el valor del factor de friccion= ";
14. cin>> f;
15. while(n)
16. {
17. ciclos=1;
18. cout<<"\nCual es el porcentaje de error que requieres en tus calculos= ";
19. cin>> Error;
20. cout<<"\nIngrese un valor de prueba para Reynolds, considere alguno de los siguientes casos: ";
21. cout<<"\nFlujo laminar Re<2100";
22. cout<<"\nFlujo Transicion 2100<Re<4000";
23. cout<<"\nFlujo Turbulento Re>4000";
24. cout<<"\nIngrese Re : ";
25. cin>> R;
26. cout<<"\nReynolds"<<"\t\t"<<" % Error de calculo";
27. //Apartado de evaluación
28. do {
29. num=10+(4.0*log10(0.001618777823+(14.71651438/R)+(5.8506/(pow(R,0.8981)))))/(log10(10));
30. den=(4.0*(-(14.71651438/(pow(R,2)))-
(5.25442386/(pow(R,1.8981))))/((0.001618777823+(14.71651438/R)+(5.8506/(pow(R,0.8981))))
*log10(10)));
31. Vactual=R-((num)/(den));
32. Ec=100*fabs((Vactual-R)/Vactual);
33. cout<<"\n"<<Vactual<<"\t\t\t"<<Ec;
34. R=Vactual;
35. //ciclos=ciclos++; || ciclos<=10)
36. }
37. while(Error <= Ec) ;
38. cout<<"\n\nUna solucion real de la relacion es: "<<Vactual<<" con "<<Ec<<"% de error";
39. cout<<"\n\nPresione 1 para continuar, 0 para concluir :";
40. cin>>n;
41. }
42. cout<<"\n\nPara calcular el diametro, ingrese los siguientes datos obtenidos por tablas:";
43. cout<<"\n\nNota recuerde usar las conversiones requeridas";
44. cout<<"\n\nIngrese densidad del fluido p= ";
45. cin>> p;
46. cout<<"\n\nIngrese viscosidad m= ";
47. cin>> m;
48. cout<<"\n\nIngrese el valor del caudal del fluido Q= ";
49. cin>> Q;
50. cout<<"\n\nLa viscosidad cinetica es= "<<V;
51. V= m/p;
52. d= 4*Q/(3.1416*R*V);
53. cout<<"\n\nCon numero de Reynolds Re= "<<R <<" y Diametro d= "<<d;
54. return 0;
}
Captura de evidencia del programa funcional en DEV-C++ y en aplicación para móviles puede
ser Coding C u otro programa que pueda abrir el archivo .cpp que genera DEV-C++.
6. Velocidad terminal. Determinar la velocidad terminal de una partícula sólida cayendo en un fluido.
Considere una partícula esférica uniforme de hierro cayendo en aire.
Datos para la partícula:
𝜌5 = 7860 𝑘𝑔⁄ 𝑚%
𝐷5 = 0.5 𝑚𝑚
Datos para el aire:
𝜌 = 1.23 𝑘𝑔⁄𝑚%
𝜇 = 1.79 ∙ 102$ 𝑃𝑎 ∙ 𝑠
Notas: La velocidad terminal de una partícula esférica cayendo en un medio fluido se puede determinar
por la siguiente expresión:
4 𝑔 (𝜌5 − 𝜌)𝐷5
𝑣6 = y
3𝐶- 𝜌
El coeficiente de rozamiento depende del número de Reynolds de la siguiente manera:
24
𝐶* = , 𝑆𝑖 𝑅𝑒 < 0.1
𝑅𝑒
24
𝐶* = (1 + 0.14𝑅𝑒 #.,), 𝑆𝑖 0.1 ≤ 𝑅𝑒 ≤ 1000
𝑅𝑒
7! -" $
Donde 𝑅𝑒 =
8
R=> Con CD=24/Re, R𝑒 ≈ 2054.92, vt ≈ 59.81 m/s. Y en el último caso Re ≈ 260.82, vt ≈ 7.59 m/s
Siguiendo las instrucciones de inicio, realice lo siguiente en función a los casos de CD.
Evidencia del planteamiento matemático para ambos casos de CD.
1 𝑔 (𝜌𝑝 − 𝜌 )𝐷𝑝-𝑣𝑡
𝑣𝑡 = √2d
6 µ
v Se despejamos a vt de la ecuación.
1 𝑔 (𝜌𝑝 − 𝜌) 𝐷𝑝-
j[𝑣𝑡 = 0], m𝑣𝑡 = no
18 µ
-.
v Caso 2) Para este caso se ocupa el valor de 𝐶* = / (1 + 0.14𝑅#.,) realizando el
planteamiento en la TIC maple, se ocupa la ecuación original.
4 ∗ 𝑔 (𝜌𝑝 − 𝜌) 𝐷𝑝
𝑣𝑡 = d
3 ∗ 𝐶* ∗ 𝜌
v En este caso nos percatamos que las 3 ecuaciones 𝐶*, R y vt dependen de sí.
(𝑣𝑡 ∗ 𝐷𝑝 ∗ 𝜌 )
𝑅≔
µ
24
𝑅≔ (1 + 0.14 𝑅#.,)
𝑅
v Caso 1) Se dan de alta los valores para cada variable de la ecuación final resultante.
v zswww
q s(tuvt)wu!
𝑣𝑡 = = 59.81884983
qr µ
(𝑣𝑡 ∗ 𝐷𝑝 ∗ 𝜌)
𝑅=
µ
(59.81884983 ∗ 𝐷𝑝 ∗ 𝜌)
𝑅= = 𝟐𝟎𝟓𝟓. 𝟐𝟐𝟖𝟔𝟑𝟗
µ
v Caso 2) Para este caso de la ecuación anterior igualada a cero y utilizando la TIC Maple se
obtuvo su derivada con respecto a vt.
v Caso 1) En este caso no se aplica el método de solución por newton Raphson, pero
aquí es necesario que se incluyan los pasos que seguimos para obtener la ecuación
final resultante.
1 𝑔 (𝜌𝑝 − 𝜌) 𝐷𝑝-
j[𝑣𝑡 = 0], m𝑣𝑡 = no
18 µ
v A partir de la ecuación general, se sustituyen los valores que ya se han dado de alta
y queda la siguiente ecuación como resultante. De esta manera podemos comenzar
a asignar valores vt para las iteraciones.
1 20 8.13 146.00
2 8.13 7.59 7.03
3 7.59 7.591 0.0194574
vt=7.59
Reynolds:
R= 260.7737430
7. La siguiente ecuación permite calcular la concentración de un químico en un reactor donde se tiene
una mezcla completa:
𝐶 = 𝐶9:6 (1 − 𝑒 2/./36) + 𝐶/ 𝑒 2/./36
▪ Aplique el método de Newton de Raphson para determinar el tiempo. (Nota: tabule la función
en su calculadora para encontrar los cambios de signo y simplificar el número de iteraciones).
R=> t ≈ 33.95 s
Evidencia del planteamiento matemático. (2pto)
Evidencia de solución analítica por aproximación con Newton Raphson y tabla de iteraciones,
porcentaje de error para las soluciones reales debe ser menor a 1%. (2ptos)
Nota: Sí la ecuación se pueden despejar para calcular t realícelo, no tendría caso aplicar Newton
Raphson si las ecuación se puede despejar de forma simple.
8. En una sección de tubo, la caída de presión se calcula así:
𝐿𝜌𝑉 !
∆𝑝 = 𝑓
2𝐷
donde ∆𝑝 = caída de presión (Pa), 𝑓 = factor de fricción, 𝐿 = longitud del tubo [m], 𝜌 = densidad
(kg/m3), 𝑉 = velocidad (m/s) y 𝐷 = diámetro (m). Para el flujo turbulento, Ia ecuación de Colebrook
proporciona un medio para calcular el factor de fricción,
1 𝜀 2.51
= −2.0 log p + s
W𝑓 3.7 𝐷 𝑅𝑒W𝑓
R=> Solución:
a) A partir de 𝑓 = 0.316 / 𝑅𝑒 /.!$ , Sustituyendo en la ecuación de Colebrook queda como incógnita Re,
se calcula y se obtiene: R ≈ 5743.19
Posteriormente Re se sustituye en la ecuación de f para después sustituir en ∆𝑝, obteniendo: ∆𝑝 =
1428.74 Pa
>(-
b) A partir de 𝑅𝑒 = , sustituyendo en la ecuación de Colebrook queda como incógnita f, se calcula
8
y se obtiene: f ≈ 0.0408
Posteriormente f se sustituye en la ecuación ∆𝑝, obteniendo: ∆𝑝 ≈ 1605.88
Sustituyendo datos
1 0.0015X10vz 2.51
y.zq{ = −2log( + y.zq{
√ ".!$ 3.7(0.005) 𝑅√ ".!$
| |
Ecuación original
0.316 0.316
f= #.-0 = = 0.03629
𝑅 (5743.19)#.-0
Lp𝑉 !
∆p = f
2𝐷
?@ A
(0.03629)(0.2m)(1.23 A%)(40 B )! kg𝑚!
∆p = = 1428.37
2(0.005𝑚) 𝑚% 𝑠 !
Evidencia de solución analítica por aproximación con Newton Raphson y tabla de iteraciones, el
porcentaje de error para las soluciones reales debe ser menor a 1% para los incisos a) y b). (3ptos)
a)
Programa en DEV-C++ para calcular número de Reynolds y diámetro para los incisos a) y b). (3ptos)
a)
while(n)
{
ciclos=1;
cout<<"\nCual es el porcentaje de error que requieres en tus calculos= ";
cin>> Error;
cout<<"\nIngrese un valor de prueba para Reynolds, considere alguno de los siguientes casos: ";
cout<<"\nFlujo laminar Re<2100";
cout<<"\nFlujo Transicion 2100<Re<4000";
cout<<"\nFlujo Turbulento Re>4000";
cout<<"\nIngrese Re : ";
cin>> R;
cout<<"\nReynolds"<<"\t\t"<<" % Error de calculo";
//Apartado de evaluación
do
{
f=0.316/pow(R,0.25);
num=(1/sqrt(f))+2*(log10((e/(3.7*D))+(2.51/(R*sqrt(f)))));
den=(0.2223650209/pow(R,0.875))-
(7.813906834/((pow(R,1.875))*(log(10))*((0.2702702703*e/D)+(4.465089619/pow(R,0.875)))));
Vactual=R-((num)/(den));
Ec=100*fabs((Vactual-R)/Vactual);
cout<<"\n"<<Vactual<<"\t\t\t"<<Ec;
R=Vactual;
//ciclos=ciclos++; || ciclos<=10)
}
while(Error <= Ec) ;
cout<<"\n\nUna solucion real de la relacion V/F es: "<<Vactual<<" con "<<Ec<<"% de error";
cout<<"\n\nPresione 1 para continuar, 0 para concluir :";
cin>>n;
}
cout<<"\n\nPara calcular la caida de presion, ingrese los siguinetes datos :";
cout<<"\n\nIngrese densidad del fluido p= ";
cin>> p;
cout<<"\n\nIngrese longitud del tubo L= ";
cin>> L;
cout<<"\n\nIngrese velocidad V= ";
cin>> V;
f=0.316/(pow(R,0.25));
Ap=(f*L*p*pow(V,2))/(2*D);
cout<<"\n\nCon Re= "<<R <<" y factor de friccion f="<<f<< " la caida de presion es Ap="<<Ap;
return 0;
}
Captura de evidencia del programa funcional en DEV-C++ y en aplicación para móviles puede ser
Coding C u otro programa que pueda abrir el archivo .cpp que genera DEV-C++. (1ptos)
a)