ode45 error problem in following code
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
em246
am 14 Jan. 2019
Kommentiert: em246
am 14 Jan. 2019
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);
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (1)
Steven Lord
am 14 Jan. 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 Kommentare
Steven Lord
am 14 Jan. 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?
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!