guardar datos al usar ciclo for usando comando ode45
Publicado por carlos (1 intervención) el 31/10/2015 07:13:21
hola, estoy haciendo un pequeño programa para hacer una comparacion de datos. tengo un problema para guardar los resultados luego de usar el ciclo "for" sobre el comando "ode45", como puedo guardar dichos datos de forma tal que al pasar cada ciclo estos tengan el nombre de alguna variable o poder agruparlos todos en una matriz mas grande. de la forma que lo hago solo puedo guardar el ultimo resultado. por favor ayuda, de ante mano muchas gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clc
clear all
clc
Po=4;%[=]atm
To=50;%[=]°c
vo=0.2;%[=]dm^3/seg
S=0.2;%[=]dm^2
k1=1.8;%[=]1/seg
k2=4.5;%[=]dm^6/(seg*mol^2)
R=0.082;%[=](atm*l)/(mol*K)
ct0=Po/(R*(To+273.15));%[=] mol/dm^3
Zf=input('largo final reactor[dm]:');
%sean Fa=F(1); Fb=F(2); Fc=F(3) y Fi=F(4)
%ecuaciones diferenciales:
%(dFa/dZ)=S*(-k1*ct0*(F(1)/(F(1)+F(2)+F(3)+F(4)))+k2*F(2)*(F(3)^2)*(ct0/(F(1)+F(2)+F(3)+F(4)))^3)
%(dFb/dZ)=S*(k1*ct0*(F(1)/(F(1)+F(2)+F(3)+F(4)))-k2*F(2)*(F(3)^2)*(ct0/(F(1)+F(2)+F(3)+F(4)))^3)
%(dFc/dZ)=2*S*(k1*ct0*(F(1)/(F(1)+F(2)+F(3)+F(4)))-k2*F(2)*(F(3)^2)*(ct0/(F(1)+F(2)+F(3)+F(4)))^3)
%(dFi/dZ)=0
paso=.5;
yAvector=[0:.1:1];
for i=1:1:11
yA=yAvector(i);
H=@(Z,F) [ec.dif.1;ec.dif.2;ec.dif.3,ec.dif.4];
[Z,F]=ode45(H,[0:paso:Zf],[yA*ct0;0;0;(1-yA)*ct0])
end
Valora esta pregunta


0