我在 Scilab 6.1.1 中使用 Xcos 求解 ODE 系统,但用户定义的函数给我一个错误

I am solving a system of ODEs by using Xcos in Scilab 6.1.1, but the user-defined function gives me anerrors

[我正在使用 Scilab 6.1.1 版本中的 Xcos(SIRD 感染模型)求解 ODE 系统,我使用的是 Windows10 操作系统,但是用户定义的函数给我错误。

初始条件:S(0)=10^7-1000;我(0)=1000; R(0)=0; D(0)=0。 我尝试使用 1/S 块,但它不接受向量初始条件,所以我使用了积分器块,但我不确定它是否正确。拜托,我需要你的帮助来找出这个错误。附上SIRD模型仿真的Xcos文件截图。

你不需要Xcos来做这样的模拟。直接使用 ode() 求解器,如下例所示(用您的值替换参数)

function dxdt=f(t,x)
    S=x(1);
    I=x(2);
    R=x(3);
    D=x(4);
    dxdt=[-β*S*I/N
           β*S*I/N-γ*I-μ*I
           γ*I
           μ*I]
end

N = 1000;
β = 0.4;
γ = 0.035;
μ = 0.0035;

t=linspace(0,100,1000);
x0=[997; 3; 0; 0]
x=ode(x0,0,t,f);

clf
plot(t,x)
legend S I R D