我正在嘗試創建一個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'); –