error with using ode45
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
i am writing this simple code and it is showing error as below... i dont knw why i am using matlab 2011b
function dydt = react(t,y)
% Solve the kinetics example
dydt = zeros(size(y));
% Parameters
k1 = 5; k2 = 2; k3 = 1;
A = y(1);
B = y(2);
C = y(3);
dydt(1) =k1*A + k2*B;
dydt(2) = k1*A*(k2+k3)*B;
dydt(3) = k3*B;
error is as follows
Error using feval
Undefined function 'react' for input arguments of type 'double'.
Error in odearguments (line 88)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
0 comentarios
Respuestas (2)
Kelly Kearney
el 17 de Oct. de 2014
How are you calling ode45? And where did you save the reac.m function? The error indicates that ode45 isn't seeing the react function it on your path, and therefore can't apply the solver to it.
Star Strider
el 17 de Oct. de 2014
You need to include an ‘@’ sign to create a function handle for ‘react’ in your ode45 call:
[t,y] = ode45(@react, tspan, y0);
5 comentarios
Star Strider
el 18 de Oct. de 2014
I am happy you got it running. I had no problems at all running your ‘react’ ODE function with the ode45 call I used. It ran perfectly for me in R2014b. Did you change your ode45 call to what I suggested, or did you keep it as in your original code?
Ver también
Categorías
Más información sobre Ordinary Differential Equations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!