Matlab ODE解决错误Ode45

时间:2016-11-02 20:00:58

标签: matlab ode

我正在尝试解决微分方程组,但MATLAB ODE求解器给出了以下错误:

Error in
@(t,x)[20000/NA*(-k1*x(1)*x(2)+k_n1*x(3)+krec*(1-fL)*x(4));
-k1*x(1)*x(2)+k_n1*x(3)-keR*x(2)+krec(1-fR)*x(5)+Vs;
k1*x(1)*x(2)-(k1+keC)*x(3);keC*x(2)-(kdegL*fL+krec*(1-fL))*x(4);
keR*x(2)+keC*x(3)-(kdegR*fR+krec(1-fR))*x(5)]

Error in odearguments (line 87)
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);

Error in cmp_2_bme (line 49)
[t, var] = ode45(f1, [0 30], [0, NR, 0, 0, NRi]);

我的代码如下:

k1 = 7.2*10^7;
k_n1 = 0.3;
keR = 0.03;
keC = 0.30;
krec = 0.08;
kdegR = 0.0022;
kdegL = 0.01;
fR = 0.2;
fL = 0.05;
NA = 6.0221409*10^23;
NR = 0.5*10^5;
Vs = 10.2421
NRi = 2.3277e+04

f1 = @(t, x) [1/NA*(-k1*x(1)*x(2)+k_n1*x(3)+krec*(1-fL)*x(4)); ...
    -k1*x(1)*x(2)+k_n1*x(3)-keR*x(2)+krec(1-fR)*x(5)+Vs;...
    k1*x(1)*x(2)-(k1+keC)*x(3); ...
    keC*x(2)-(kdegL*fL+krec*(1-fL))*x(4);...%Nli
    keR*x(2)+keC*x(3)-(kdegR*fR+krec(1-fR))*x(5)] %Nri

[t, var] = ode45(f1, [0 30], [0, NR, 0, 0, NRi]);

我不确定为什么在使用ODE45时错误指的是ODE151I。

谢谢!

0 个答案:

没有答案