Professional Documents
Culture Documents
MATLAB Programas
MATLAB Programas
clc,clear all
syms c T t d
To=0; % 1-buteno
Ti=((-14.068*T)+(4.623*c)+1*d); % dCA1/dt
F=(10.344*T-10.239*c+3.371*d); % dCA2/dt
L=(3.724*T+4.623*c-4.371*d); % dCA3/dt
a=1;
b=0;
n=10;
h=(a-b)/n;
ti=0; % tiempo 0
ci=1; %cis-2-buteno
di=0; %trans-2-buteno
j=0;
fprintf('i t(seg) CA1(mol/L) CA2(mol/L) CA3(mol/L)\n');
fprintf('%2.0d %4.4f %4.2f %4.2f %4.4f\n',j,ti,To,ci,di);
i=1;
while i <= n
t=ti; T=To; c=ci; d=di;
k1=eval(Ti);c1=eval(F);d1=eval(L);
T=To+h*k1/2;c=ci+h/2*c1;d=di+h/2*d1; t=ti+h/2;
k2=eval(Ti);c2=eval(F);d2=eval(L);
T=To+h*k2/2;c=ci+h/2*c2;d=di+h/2*d2; t=ti+h/2;
k3=eval(Ti);c3=eval(F);d3=eval(L);
T=To+h*k3; c=ci+h*c3; d=di+h*d3; t=ti+h;
k4=eval(Ti);c4=eval(F);d4=eval(L);
To=To+h/6*(k1+2*k2+2*k3+k4);
ci=ci+h/6*(c1+2*c2+2*c3+c4);
di=di+h/6*(d1+2*d2+2*d3+d4);
ti=ti+h;
i=i+1;
j=j+1;
wi(j)=ti;, xi(j)=To;, yi(j)=ci; zi(j)=di;
fprintf('%i %4.4f %4.4f %4.4f %4.4f\n',i,ti,To,ci,di)
end
plot(wi,xi,'-*m',wi,yi,'-og',wi,zi,'-+b'),title('Tiempo vs
Concentraciones '),hold on;
i t(seg) CA1(mol/L) CA2(mol/L) CA3(mol/L)
0.0000 0.00 1.00 0.0000
2 0.1000 0.1105 0.5495 0.2761
3 0.2000 0.1317 0.3838 0.3786
4 0.3000 0.1310 0.3181 0.4114
5 0.4000 0.1262 0.2883 0.4165
6 0.5000 0.1213 0.2716 0.4104
7 0.6000 0.1168 0.2600 0.4002
8 0.7000 0.1127 0.2505 0.3884
9 0.8000 0.1089 0.2420 0.3764
10 0.9000 0.1053 0.2340 0.3643
11 1.0000 0.1018 0.2263 0.3526
>>
Programa 2
clc,clear all
syms c T t
To=298;
Ti=diff(1000*c*exp(-10/(T+273))-10*(T-20)); % dT/dt
F=-c*exp(-10/(T+273)); % dC/dt
a=1;
b=0;
n=15;
h=(a-b)/n;
ti=0; % tiempo
ci=1; % concentración inicial
j=0;
fprintf('i t(seg) T(K) C(mol/L)\n');
fprintf('%2.0d %4.4f %4.2f %4.4f\n',j,ti,To,ci);
i=1;
while i <= n
t=ti; T=To; c=ci;
k1=eval(Ti);c1=eval(F);
c=ci+h/2*c1; T=To+h*k1/2; t=ti+h/2;
k2=eval(Ti);c2=eval(F);
c=ci+h/2*c2; T=To+h*k2/2; t=ti+h/2;
k3=eval(Ti);c3=eval(F);
c=ci+h*c3; T=To+h*k3; t=ti+h;
k4=eval(Ti);c4=eval(F);
To=To+h/6*(k1+2*k2+2*k3+k4);
ci=ci+h/6*(c1+2*c2+2*c3+c4);
ti=ti+h;
i=i+1;
j=j+1;
wi(j)=ti;, yi(j)=To;, zi(j)=ci;
fprintf('%i %4.4f %4.4f %4.4f\n',i,ti,To,ci)
end
plot(wi,zi,'-ok',wi,yi/100-5.5,'-*b'),title('Tiempo vs
Concentración
temperatura'),xlabel('Tiempo'),ylabel('Concentración-
temperatura'),hold on;
Programa 3
Programa 4