Hi. I am trying to solve the equations : du/dt = k1*s – k2*u*v dv/dt = k3*s – k4*v
where s = floor(t/4)
Now i wrote the code :
syms T t u(t) v(t) u0 v0 Y Du = diff(u);Dv = diff(v); k1=1;k2=1;k3=1;k4=1; s=floor(t/4);ode1 = Du == k1*s-k2*u*v;ode2 = Dv == k3*s-k4*v;[ode_vf, ode_subs] = odeToVectorField(ode1,ode2);ode_fcn = matlabFunction(ode_vf, 'vars',{T,Y});tspan = linspace(0, 20, 10);icv = [0; 0]+sqrt(eps);[t,y] = ode45(ode_fcn, tspan, icv);figure(1)plot(t, y)grid
But i am getting the error :
Error using sym/matlabFunction>checkVarsSubset (line 234)The free variable t must be included in the 'Vars' value.
>>> Error in sym/matlabFunction>checkVars (line 222) checkVarsSubset(vexpanded,funvars);
>>>Error in sym/matlabFunction (line 154) vars = checkVars(funvars,opts);
Please let me know what to do here !!1
Best Answer