符合 ode45 的 MATLAB 错误
MATLAB error at line with ode45
我正在尝试让 matlab 显示猎物与捕食者的图表
function [ output_args ] = Untitled( input_args )
options = odeset('RelTol', 1e-4, 'NonNegative', [1 2]);
[t,x] = ode45('lotka_volterra', [0 30], [2 1], options);
plot(t,x);
legend('prey', 'predators');
end
function dxdt = lotka_volterra(t,x)
a = 1.2;
b = 0.6;
d = 0.3;
gamma = 0.8;
dxdt = [0;0];
dxdt(1) = a * x(1) - b * x(1) * x(2);
dxdt(2) = d * x(1) * x(2) - gamma * x(2);
end
重点是展示生活在同一环境中的两个物种种群之间的动态关系。
两个导数(dxdt(1) 和 dxdt(2))模拟每个人口的变化率
我尝试使用 Runge-Kutta 积分法来绘制两个物种的人口与时间关系图
错误只是说:
Error in Untitled (line 3)
[t,x] = ode45(@(t,x) lotka_volterra, [0 30], [2 1]);
我很难过任何帮助都会很棒
您可能想要使用函数句柄:
[t,x] = ode45(@lotka_volterra, [0 30], [2;1], options);
或者,更慢但可能更清晰:
[t,x] = ode45(@(t,x) lotka_volterra(t,x), [0 30], [2;1], options);
我正在尝试让 matlab 显示猎物与捕食者的图表
function [ output_args ] = Untitled( input_args )
options = odeset('RelTol', 1e-4, 'NonNegative', [1 2]);
[t,x] = ode45('lotka_volterra', [0 30], [2 1], options);
plot(t,x);
legend('prey', 'predators');
end
function dxdt = lotka_volterra(t,x)
a = 1.2;
b = 0.6;
d = 0.3;
gamma = 0.8;
dxdt = [0;0];
dxdt(1) = a * x(1) - b * x(1) * x(2);
dxdt(2) = d * x(1) * x(2) - gamma * x(2);
end
重点是展示生活在同一环境中的两个物种种群之间的动态关系。
两个导数(dxdt(1) 和 dxdt(2))模拟每个人口的变化率
我尝试使用 Runge-Kutta 积分法来绘制两个物种的人口与时间关系图
错误只是说:
Error in Untitled (line 3)
[t,x] = ode45(@(t,x) lotka_volterra, [0 30], [2 1]);
我很难过任何帮助都会很棒
您可能想要使用函数句柄:
[t,x] = ode45(@lotka_volterra, [0 30], [2;1], options);
或者,更慢但可能更清晰:
[t,x] = ode45(@(t,x) lotka_volterra(t,x), [0 30], [2;1], options);