Ecuación diferencial con matlab
Publicado por Javi (5 intervenciones) el 22/07/2011 09:18:26
si me pueden ayudar, necesito resolver urgentemente un problema de matlab. Tengo la siguiente ecuación diferencial dy/dt=((-m/0.6)*(y/(23500+y))*X)+((1/10)*(47806-y));
m=0,15*1,072^(T-20)
Tengo datos experimentales de T, X en función del tiempo en un excel y he creado los siguientes ficheros.m:
sustrato.m
clear all
%toma de datos experimentales
Data1=xlsread('programa','Datos');
[M,N]=size(Data1);
%Comienzo programa
texp(:,1)=Data1(:,1);
j=find(~isnan(texp(:,1)));
tspan=texp(j,1);
T(:,2)=Data1(:,2);
X(:,3)=Data1(:,3);
m(:,4)=Data1(:,4);
[t,y]=ode45(@funcion,tspan,20000);
funcion.m
function dy=funcion(t,y)
dy=((-m/0.6)*(y/(23500+y))*X)+((1/10)*(47806-y));
Pero al ejecutarlo en matlab simpre me da el siguiente error:
??? Undefined function or variable 'm'.
Error in ==> funcion at 2
dy=((-m/0.6)*(y/(23500+y))*X)+((1/10)*(47806-y));
Error in ==> odearguments at 110
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in ==> sustrato at 12
[t,y]=ode45(@funcion,tspan,20000);
Siento molestarle pero necesito urgentemente resolver el problema, para mi sería de gran ayuda si le puede echar un vistazo y decirme donde cometo el error al definir las variables.
Muchas gracias
Un saludo
m=0,15*1,072^(T-20)
Tengo datos experimentales de T, X en función del tiempo en un excel y he creado los siguientes ficheros.m:
sustrato.m
clear all
%toma de datos experimentales
Data1=xlsread('programa','Datos');
[M,N]=size(Data1);
%Comienzo programa
texp(:,1)=Data1(:,1);
j=find(~isnan(texp(:,1)));
tspan=texp(j,1);
T(:,2)=Data1(:,2);
X(:,3)=Data1(:,3);
m(:,4)=Data1(:,4);
[t,y]=ode45(@funcion,tspan,20000);
funcion.m
function dy=funcion(t,y)
dy=((-m/0.6)*(y/(23500+y))*X)+((1/10)*(47806-y));
Pero al ejecutarlo en matlab simpre me da el siguiente error:
??? Undefined function or variable 'm'.
Error in ==> funcion at 2
dy=((-m/0.6)*(y/(23500+y))*X)+((1/10)*(47806-y));
Error in ==> odearguments at 110
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in ==> sustrato at 12
[t,y]=ode45(@funcion,tspan,20000);
Siento molestarle pero necesito urgentemente resolver el problema, para mi sería de gran ayuda si le puede echar un vistazo y decirme donde cometo el error al definir las variables.
Muchas gracias
Un saludo
Valora esta pregunta


0