我在 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
[我正在使用 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