我正在尝试创建一个SIR模型(求解带有两个参数的3个微分方程),并在MATLAB上绘制解决方案,并且不断收到错误'没有足够的输入参数'。我真的不知道自己出错的地方。下面是代码:没有足够的输入参数
function dx = sir(t,x)
dx=[0; 0; 0];
beta = .003;
delta = 1;
dx(1)= -beta *x(1)*x(2);
dx(2)=beta*x(1)*x(2)-delta*x(2);
dx(3)=delta*x(2);
%options = odeset('RelTol', 1e-4, 'NonNegative', [1 2 3]);
[t,x] = ode45('sir', [0 10], [1000 1 0], options);
plot(t,x);
%legend('S', 'I', 'R');
end
首先,你为什么不直接复制问题中的代码?其次,你能告诉你如何调用函数'sir(t,x);'? – tashuhka
问题中的代码: –
函数dx = sir(t,x) dx = [0; 0; 0]; beta = .003; delta = 1; (1)= -beta * x(1)* x(2); (2)= beta * x(1)* x(2)-delta * x(2); dx(3)= delta * x(2); %options = odeset('RelTol',1e-4,'NonNegative',[1 2 3]); [t,x] = ode45('sir',[0 10],[1000 1 0],options); (t,x); plot(t,x); %legend('S','I','R'); –