ode45 error problem in following code
Mostrar comentarios más antiguos
I'm receiving errors for the following code:
mumax = 0.20;
Ks = 2;
Yxs = 0.58;
Ypx = 0.2;
Sf = 0.37;
Kp= 97.9;
mu = @(S,P) mumax*S./(Ks + S)*(1 - (P/Kp))^0.5; % Monod Equation
rg = @(X,S) mu(S)*X; % Rate of cell growth
rp = @(X,S) Ypx*rg(X,S); % Rate of product formation
F = @(t) 0.05;
dXV = @(t, x) x(4) *rg(x(1), x(2));
dPV = @(t, x) x(4) *rp(x(1), x(2));
dSV = @(t,x) F(t)*Sf - x(4)*rg(x(1), x(2))/Yxs;
dV = @(t,x) F(t);
dX = @(t,x) (dXV(t,x) - x(1)*dV(t,x))/x(4);
dS = @(t,x) (dSV(t,x) - x(2)*dV(t,x))/x(4);
dP = @(t,x) (dPV(t,x) - x(3)*dV(t,x))/x(4);
f = @(t,x) [dX(t,x); dS(t,x); dP(t,x); dV(t,x)];
tspan = [0 100];
[t,x] = ode45(f,tspan,ic);
The error I receive is:
Not enough input arguments.
Error in @(S,P)mumax*S./(Ks+S)*(1-(P/Kp))^0.5
Error in @(X,S)mu(S)*X
Error in @(t,x)x(4)*rg(x(1),x(2))
Error in @(t,x)(dXV(t,x)-x(1)*dV(t,x))/x(4)
Error in @(t,x)[dX(t,x);dS(t,x);dP(t,x);dV(t,x)]
Error in odearguments (line 90)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Respuesta aceptada
Más respuestas (1)
Steven Lord
el 14 de En. de 2019
mu = @(S,P) mumax*S./(Ks + S)*(1 - (P/Kp))^0.5; % Monod Equation
rg = @(X,S) mu(S)*X; % Rate of cell growth
As defined mu is a function of both S and P. Your rg function attempts to call it with just S. What value should be passed into mu as its second input when rg gets called?
3 comentarios
em246
el 14 de En. de 2019
Steven Lord
el 14 de En. de 2019
If I asked you to add two numbers x and y together and told you that x was 1, what's the answer? Do you have enough information to answer that question?
em246
el 14 de En. de 2019
Categorías
Más información sobre Ordinary Differential Equations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!