You are on page 1of 10

Propuestas de problemas para resolver

Alumno: Morales Alcántara Bryan Oscar Código: 16070141


Problema Nº1 (Método Newton Rapson)

Para este caso el punto inicial seria 0.25

Código Scilab:

function y=f(x)
y=(60/(35*(1-x)))^2.05-(40/(35*x))
endfunction

function y=df(x)
y=(60/35)^2.05*(41/(20*(1-x)^3.05))+60/(35*x^2);
endfunction

function newton(x0, es)


i=1;
ea=100;
x(1)=x0
printf(' i \t X(i) Error aprox (i) \n');
while abs(ea(i))>=es;
x(i+1)=x(i)-f(x(i))/df(x(i));
ea(i+1)=abs((x(i+1)-x(i))/x(i+1)*100);
printf('%2d \t %11.7f \t %7.3f \n',i+1,x(i),ea(i));
i=i+1;
end

endfunction
Ejecución del programa:

Como se puede observar el


programa muestra 12 iteraciones,
donde la raíz final es 0.224677
Problema Nº2 (Método Punto Fijo)

Calcular la composición de la mezcla en equilibrio en porcentaje molar

Datos:

T=475 k

PT=1 atm

Log kp=0.227, entonces kp =1.6865

𝟐𝑪𝟐 𝑯𝟓 𝑶𝑯 ↔ 𝑪𝑯𝟑 𝑪𝑶𝑶𝑪𝟐 𝑯𝟓 + 𝟐𝑯𝟐

Moles iniciales 2n

Moles rxn nx nx 2nx

Moles en equilibrio n(2-x) nx 2nx

Recordemos la ecuación que relaciona el Kp con las presiones parciales, para esta reacción:.

(𝑃𝐻2 )2 (𝑃𝐶𝐻3 𝐶𝑂𝑂𝐶2 𝐻5 )


𝐾𝑝 = …..(1)
(𝑃𝐶2 𝐻5 𝑂𝐻 )2

Las presiones parciales se conocen

𝑛𝐻2 2𝑛𝑥
𝑃𝐻2 = 𝑥 𝑃𝑇 = 𝑥1𝑎𝑡𝑚 …..(2)
𝑛𝑇 2𝑛(1+𝑥)

𝑛𝐶𝐻3 𝐶𝑂𝑂𝐶2 𝐻5 𝑛𝑥
𝑃𝐶𝐻3 𝐶𝑂𝑂𝐶2 𝐻5 = 𝑥 𝑃𝑇 = 𝑥1𝑎𝑡𝑚 …..(3)
𝑛𝑇 2𝑛(1+𝑥)

𝑛𝐶2 𝐻5 𝑂𝐻 𝑛(2−𝑥)
𝑃𝐶2𝐻5 𝑂𝐻 = 𝑥 𝑃𝑇 = 𝑥1𝑎𝑡𝑚 …..(4)
𝑛𝑇 2𝑛(1+𝑥)
 Ordenando las ecuaciones (1), (2), (3) y (4):

2x 3
f(x) = − 1.6865
4 − 3x 2 + x 3

El intervalo es [1 , 1.2]

 Despejando x tenemos:

1.6865x(4 − 3x 2 + x 3 )
3√ = x = g1 (x)
2

 Comprobamos el criterio de convergencia:

|g ′ (x0 )| < 1
Código scilab:

function y=f(x)
y=(1.6865*x*(4-3*x^2+x^3)/2)^(1/3);
endfunction

function x=puntofijo(x0, x1, es)


j=2;
i=1;
x(1)=x0;
x(2)=x1;
ea(i)=100;
while abs(ea(i))>=es
x(j+1)=f(x(j))
ea(i+1)=abs((x(j+1)-x(j))/x(j+1))*100;
ph(j+1)=(x(j+1)/(1+x(j+1)))*100;
pe(j+1)=(x(j+1)/(2*(1+x(j+1))))*100;
pi(j+1)=((2-x(j+1))/(2*(1+x(j+1))))*100;
j=j+1;
i=i+1;
end

printf(' i \t\t x(i) \t Error aprox (i) \n');


printf('%2d \t %11.7f \t \n',0,x(1));

for k=2:j;
printf('%2d \t %11.7f \t %7.3f \n',k-1,x(k),ea(k-1));
end

printf(' i\t porcentaje molar del H2 (i)\t porcentaje molar del acetato de etilo \t porcentaje
molar del etanol \n');

for k=2:j
printf('%2d \t %18.7f \t %27.5f \t %38.5f \n',k-1,ph(k-1),pe(k-1),pi(k-1));
end

endfunction
Ejecucion del programa:

Donde se puede observar la raíz final que viene a ser 1.1472849 , además
de mostrar los porcentajes de los reactantes y productos de la reacción en
equilibrio para cada iteración. Para verificar si los porcentajes son
correctos solo basta con sumar porcentajes tanto de productos y
reactantes y tiene q ser igual a 100 aproximadamente
Problema Nº3

a) Encuentre T1, f y el ciclo del trabajo


Donde RA= 8670, C=0.001x10-5, T2= 1.4x10-4

 Según la ecuación 𝑇1 = 𝑅𝐴 𝐶𝐿𝑛2


Reemplazando los valores 𝑇1 = 8670𝑥0.001x10−5 𝑥𝐿𝑛2 = 6.009𝑥10−5

1
 Según la ecuación 𝑇1 + 𝑇2 =
𝑓
Reemplazando los valores 𝑓 = 4997.60

𝑇1
 Según la ecuación 𝑐𝑖𝑐𝑙𝑜 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 = 𝑥100%
𝑇1 +𝑇2

Reemplazando los valores 𝑐𝑖𝑐𝑙𝑜 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 = 30.03%

b) Encuentre RB usando los métodos de falsa posición, secante y bisección.


Metodo Falsa Posición

Código Scilab:

function y=f(x)
y=(((8670*0.001*10^-5*x)/(8670+x))*log(abs((8670-2*x)/(2*8670-x))))-1.4*10^-4;
endfunction

function xr=falsaposicion(xa, xb, es)


ea=100;
i=1;
xl(1)=xa;
xu(1)=xb;
xr(1)=xu(1)-(f(xu(1))*(xl(1)-xu(1))/(f(xl(1)-f(xu(1)))));
printf('i\t\t Xl\t\t Xu\t\t F(Xl)\t\t F(Xu)\t\t Xr\t\t F(Xr)\t\t Ea\t\t Es\n');
while abs(ea(i))>=es
if f(xl(i))*f(xr(i))>0
xl(i+1)=xr(i);
xu(i+1)=xu(i);
end
if f(xl(i))*f(xr(i))<0
xl(i+1)=xl(i);
xu(i+1)=xr(i);
end
xr(i+1)=xu(i+1)-(f(xu(i+1))*(xl(i+1)-xu(i+1))/(f(xl(i+1)-f(xu(i+1)))));
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);
printf('%2d \t %11.4f \t %11.4f \t %12.4f \t %13.4f \t %11.4f \t %11.4f \t %11.4f \t
%11.4f \n',i+1,xl(i+1),xu(i+1),f(xl(i+1)),f(xu(i+1)),xr(i+1),f(xr(i+1)),ea(i),es);
i=i+1;
end

endfunction

Ejecución del programa:


Método Secante

Código Scilab:

function y=f(x)
y=(((8670*0.001*10^-5*x)/(8670+x))*log(abs((8670-2*x)/(2*8670-x))))-1.4*10^-4;
endfunction

function x=secante(x0, x1, es)


j=2;
i=1;
x(1)=x0;
x(2)=x1;
ea(i)=100;
while abs(ea(i))>=es
x(j+1)=(x(j)*f(x(j-1))-x(j-1)*f(x(j)))/(f(x(j-1))-f(x(j)));
ea(i+1)=abs((x(j+1)-x(j))/x(j+1))*100;
j=j+1;
i=i+1;
end

printf(' i \t\t x(i) \t Error aprox (i) \n');


printf('%2d \t %11.7f \t \n',0,x(1));

for k=2:j;
printf('%2d \t %11.7f \t %7.3f \n',k-1,x(k),ea(k-1));
end

endfunction

Ejecución del programa:


Método Bisección

Codigo Scilab:

function y=f(x)
y=(((8670*0.001*10^-5*x)/(8670+x))*log(abs((8670-2*x)/(2*8670-x))))-1.4*10^-4;
endfunction

function xr=biseccion(xa, xb, es)


ea=100;
i=1;
if f(xa)*f(xb)<0
xl(1)=xa;
xu(1)=xb;
xr(1)=(xl(1)+xu(1))/2;
printf('i\t\t Xl\t\t Xu\t\t F(Xl)\t\t F(Xu)\t\t Xr\t\t F(Xr)\t\t Ea\t\t Es\n');
printf('%2d \t %11.4f \t %11.4f \t %12.4f \t %13.4f \t %11.4f \t %11.4f \t %11.4f \t %11.4f
\n',i,xl(i),xu(i),f(xa),f(xb),xr(i),f(xr),ea,es);
while abs(ea(i))>=es
if f(xl(i))*f(xr(i))>0
xl(i+1)=xr(i);
xu(i+1)=xu(i);
end
if f(xl(i))*f(xr(i))<0
xl(i+1)=xl(i);
xu(i+1)=xr(i);
end
xr(i+1)=(xl(i+1)+xu(i+1))/2;
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);
printf('%2d \t %11.4f \t %11.4f \t %12.4f \t %13.4f \t %11.4f \t %11.4f \t %11.4f \t
%11.4f \n',i+1,xl(i+1),xu(i+1),f(xl(i+1)),f(xu(i+1)),xr(i+1),f(xr(i+1)),ea(i),es);
i=i+1;
end
else
printf('No existe una raiz en ese intervalo');
end
endfunction

Ejecución del programa:


Solución:
Como se puede observar RB tiene los valores de:
20629.271 (método de falsa posición)
20628.744 (método de secante)
20632.812 (método de bisección)

Entonces analizando los resultados se concluye que son valores cercanamente


aproximados. Por lo tanto la resolución por código de Scilab fue positiva.

c) Seleccione una f y un ciclo de trabajo y luego encuentre T1 y T2


Sea f= 6000, ciclo de trabajo=60%

1 1
6000 = 𝑑𝑒𝑠𝑝𝑒𝑗𝑎𝑛𝑑𝑜 𝑇1 → 𝑇1 = − 𝑇2 (1)
𝑇1 + 𝑇2 6000

𝑇1
60 = 𝑥100 𝑟𝑒𝑒𝑚𝑝𝑙𝑎𝑧𝑎𝑛𝑑𝑜 (1) 𝑒𝑛 𝑙𝑎 𝑒𝑐𝑢𝑎𝑐𝑖ó𝑛 𝑦 𝑜𝑝𝑒𝑟𝑎𝑛𝑑𝑜
𝑇1 + 𝑇2

𝑇2 = 1.6665𝑥10−4 𝑇1 = 1.67𝑥10−8