ode45 error problem in following code
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
更多回答(1 个)
Steven Lord
2019-1-14
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 个评论
Steven Lord
2019-1-14
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?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!