You are on page 1of 9

Métodos Matemáticos em Engenharia Química

Luís F. Novazzi
Departamento de Engenharia Química
Maio de 2017

Lista 04

Resolver numericamente os seguintes exemplos e exercícios do Constantinides:

1) exemplo 5.5, p.331

function f = exemplo_5_5(t,y,T)
w1=13.1; w2=0.005; w3=30; w4=0.94; w5=1.71; w6=20;
b1=w1*((1-w2*(T-w3)^2)/(1-w2*(25-w3)^2));
b2=w4*((1-w2*(T-w3)^2)/(1-w2*(25-w3)^2));
b3=w5*((1-w2*(T-w6)^2)/(1-w2*(25-w6)^2));
f=zeros(3,1);
T=y(3);
f(1)=b1*y(1)-(b1/b2)*y(1)^2;
f(2)=b3*y(1);
f(3)=0;

function y = var_T(T)
[t,x]=ode45('exemplo5_5',[0 1],[0.03;0;T]);
y=x(length(x),2);

T=[15:1:40]';

n=length(T);

x=zeros(n,1);

for i=1:n
x(i)=var_T(T(i));
end
plot (T,x)
2) exercício 5.3, p.354

a)
k1=3; k2=1;
A=zeros(3,3);
A(1,1)=-k1;
A(2,1)=k1;
A(2,2)=-k2;
A(3,2)=k2;

x0=[1;0;0];

t=(0:0.1:10);
n=length(t);
x=zeros(n,3);
x(1,:)=x0';
for m=2:n
x(m,:)=expm(A*t(m))*x0;
end
plot(t,x)
legend('ca','cb','cc')
b)
Para t=1:

k1=3; k2=1;
A=zeros(3,3);
A(1,1)=-k1;
A(2,1)=k1;
A(2,2)=-k2;
A(3,2)=k2;
x0=[1;0;0];
t=1;
x=expm(A*t)*x0

x =

0.0498
0.4771
0.4731

Para t=10:
k1=3; k2=1;
A=zeros(3,3);
A(1,1)=-k1;
A(2,1)=k1;
A(2,2)=-k2;
A(3,2)=k2;
x0=[1;0;0];
t=10;
x=expm(A*t)*x0

x =

0.0000
0.0001
0.9999
3) exercício 5.4, p.355

%Método Analitico
A=[-4 1;4 -4];
x0=[100;0];
r=(0:0.05:5);
n=length(r);
y=zeros(n,2);
y(1,1)=100; y(1,2)=0;
for k=2:n
y(k,:)=expm(A*r(k))*x0;
end
plot(r,y(:,1),'r');
hold on
plot(r,y(:,2),'b');
hold on
legend('ca_analitico','cb_analitico')

%Metodo preditor

[t,x]=euler_expl('ex54',[0 5],[100;0],0.05);
plot(t,x(:,1),'--r');
hold on
plot(t,x(:,2),'--b');
hold on
legend('ca_analitico','cb_analitico')

n=length(t);
der=zeros(n,2);
for m=1:n;
der(m,1)=-4*x(m,1)+x(m,2);
der(m,2)=4*x(m,1)-4*x(m,2);
end
h=0.05;
yP=zeros(n,2);
yP(1,1)=100;
yP(1,2)=0;
for m=2:n;
yP(m,1)=yP(m-1,1)+h*der(m-1,1);
yP(m,2)=yP(m-1,2)+h*der(m-1,2);
end

pred=zeros(n,2);
pred(1,1)=100;
pred(1,2)=0;
for m=2:n
pred(m,1)=yP(m-1,1)+(h/2)*((-4*pred(m-1,1)+pred(m-1,2))+(-
4*yP(m,1)+yP(m,2)));
pred(m,2)=yP(m-1,2)+(h/2)*((4*pred(m-1,1)-4*pred(m-1,2))+(4*yP(m,1)-
4*yP(m,2)));
end

plot(t,pred(:,1),'k');
hold on
plot(t,pred(:,2),'c');
hold on
legend('ca_preditor','cb_preditor')

%Range-Kutta

[p,o]=rk4('ex54',[0 5],[100;0],0.05);
plot(p,o(:,1),'g');
hold on
plot(p,o(:,2),'m');
hold on
legend('c_aanalitico','c_banalitico','c_aeuexpl','c_beulexpl','c_apreditor','c
_bpreditor','c_arK','c_brK')

Pelas curvas obtidas é possível observar que os valores calculados pelo método de
range-kutta são mais próximos ao analítico, tanto que, visualmente, as curvas coincidem.
Isso acontece devido a este método possui 4 estágios, obtendo assim maior aproximação.
4) exercício 5.5, p.355

function f = exerc_5_5(t,y)
k1=0.03120; k2=47.70; k3=3.374; k4=0.01268;
f=zeros(2,1);
f(1)=k1*y(1)*(1-(y(1)/k2));
f(2)=k3*y(1)-k4*y(2);
end

[t,y]=rk4('exerc_5_5',[0 212],[5;0],0.01);
plot(t,y)
legend('y1','y2')

5) exercício 5.6, p.356

function f = exer_5_6(t,y)
b1=0.949; b2=3.439; b3=18.72; b4=37.51; b5=1.169;
f=zeros(4,1);
f(1)=b1*y(1)*(1-y(1)/b2);
f(2)=((b3*y(1)*y(4))/(b4+y(4))-0.9082*b5*y(2));
f(3)=b5*y(2);
f(4)=-1.011*((b3*y(1)*y(4))/(b4+y(4)));

[t,y]=rk4('exer_5_6',[0 9],[0.5;0;0;50],0.01);
plot(t,y)
legend('y1','y2','y3','y4')

6) exercício 5.10, p.363

function f = exer_5_10(V,x)
f=zeros(3,1);
cTo=0.1/15;
FT=sum(x(1:3));
ca=cTo*(x(1)/FT);
f(1)=-60*ca-((0.003*ca)/(1-10^-5*ca));
f(2)=60*ca;
f(3)=(0.003*ca)/(1-10^-5*ca);

[V,x]=rk4('exer_5_10',[0 3],[0.1;0;0],0.01);
P=[-5;35;-10];
Lucro=(x*P)/15; %lucro/15 para melhor visualização no gráfico
plot(V,x)
hold on
plot(V,Lucro)
hold on
legend('c_a','c_b','c_c','lucro')
O lucro atinge um valor máximo em volume de 1,5 L.

7) exemplo 6.1 (a) e (b), p.382

Ty1=25 °C
y=1
Tx1= 100 °C
Tx0=250 °C

0 x=1
Ty0=500 °C

𝑑²𝑇 𝑇𝑥+1,𝑦 − 2 ∗ 𝑇𝑥,𝑦 + 𝑇𝑥−1,𝑦


=
𝑑𝑥² ℎ𝑥2
𝑑²𝑇 𝑇𝑥,𝑦+1 − 2 ∗ 𝑇𝑥,𝑦 + 𝑇𝑥,𝑦−1
=
𝑑𝑦² ℎ𝑦2

Com ℎ𝑥 = ℎ𝑦 = ℎ
𝑇𝑥+1,𝑦 − 2 ∗ 𝑇𝑥,𝑦 + 𝑇𝑥−1,𝑦 𝑇𝑥,𝑦+1 − 2 ∗ 𝑇𝑥,𝑦 + 𝑇𝑥,𝑦−1
( )+( )=𝑓
ℎ² ℎ²

𝑇𝑥+1,𝑦 − 2 ∗ 𝑇𝑥,𝑦 + 𝑇𝑥−1,𝑦 + 𝑇𝑥,𝑦+1 − 2 ∗ 𝑇𝑥,𝑦 + 𝑇𝑥,𝑦−1 − 𝑓 ∗ ℎ2 = 0

𝑇𝑥+1,𝑦 − 4 ∗ 𝑇𝑥,𝑦 + 𝑇𝑥−1,𝑦 + 𝑇𝑥,𝑦+1 + 𝑇𝑥,𝑦−1 − 𝑓 ∗ ℎ2 = 0

𝑐𝑐1: 𝑥 = 0 0<𝑦<1 𝑇 = 250 °𝐶


𝑐𝑐2: 𝑥 = 1 0<𝑦<1 𝑇 = 100 °𝐶
𝑐𝑐3: 0 < 𝑥 < 1 𝑦 = 0 𝑇 = 500 °𝐶
𝑐𝑐4: 0 < 𝑥 < 1 𝑦 = 1 𝑇 = 25 °𝐶

b) A única diferença em relação ao anterior é a discretização das condições de contorno.


𝑐𝑐1: 𝑥 = 0 0<𝑦<1 𝑇 = 250 °𝐶
𝑑𝑇
𝑐𝑐2: 𝑥 = 1 0<𝑦<1 =0
𝑑𝑥
𝑑𝑇 𝑇𝑥+1,𝑦 − 𝑇𝑥−1,𝑦
= = 0 𝑇𝑥+1,𝑦 = 𝑇𝑥−1,𝑦
𝑑𝑥 2∗ℎ
𝑐𝑐3: 0 < 𝑥 < 1 𝑦 = 0 𝑇 = 500 °𝐶
𝑑𝑇
𝑐𝑐4: 0 < 𝑥 < 1 𝑦=1 =0
𝑑𝑥
𝑑𝑇 𝑇𝑥,𝑦+1 − 𝑇𝑥,𝑦−1
= = 0 𝑇𝑥,𝑦+1 = 𝑇𝑥,𝑦−1
𝑑𝑥 2∗ℎ

Referências
Beers, K.J., Numerical Methods for Chemical Engineering: Applications in Matlab. Nova
Iorque: Editora Cambridge University Press, 2007
Constantinides, A., Mostoufi, N. Numerical Methods for Chemical Engineers with
Matlab Applications. Nova Iorque: Editora Prentice Hall, 1999
Fogler, H.S. Elementos de Engenharia das Reações Químicas, 4 ed. Rio de Janeiro:
Editora LTC, 2009
Green, D. W., Perry, R. H. Perry’s Chemical Engineers’ Handbook, 7 ed. Nova Iorque:
Editora McGraw-Hill, 1999

You might also like