输入参数太多 Matlab ode45
Too Many Input Arguments Matlab ode45
我正在尝试编写一个简单的 Matlab 代码来模拟射弹。每当我尝试 运行 代码时,我都会收到一条错误消息,提示输入参数过多。我正在 运行 使用
编写代码
模型 1(44.7, 45)
function[] = model1(vel, angle)
close all;
tspan = [0 3];
x0 = [0; 0.915; vel*cos(angle); vel*sin(angle)];
[x] = ode45(@ball, tspan, x0);
function xdot = ball(x)
g = 9.81;
xdot = [x(3); x(4); 0; -g];
end
end
Error using model1/ball
Too many input arguments.
Error in odearguments (line 87)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options,
varargin);
Error in model1 (line 9)
[x] = ode45(@ball, tspan, x0);
如有任何建议,我将不胜感激!
错误是(我过去也犯过很多次)你也必须传递自变量(时间,在这种情况下)。
function [t, x] = model1(vel, angle)
tspan = [0 3];
x0 = [0; 0.915; vel*cos(angle); vel*sin(angle)];
[t, x] = ode45(@ball, tspan, x0);
end
function xdot = ball(t,x)
g = 9.81;
xdot = [x(3); x(4); 0; -g];
end
我将您的代码修改为 return 解决方案和相应的时间步长。此外,我删除了 ball
作为嵌套函数。
我正在尝试编写一个简单的 Matlab 代码来模拟射弹。每当我尝试 运行 代码时,我都会收到一条错误消息,提示输入参数过多。我正在 运行 使用
编写代码模型 1(44.7, 45)
function[] = model1(vel, angle)
close all;
tspan = [0 3];
x0 = [0; 0.915; vel*cos(angle); vel*sin(angle)];
[x] = ode45(@ball, tspan, x0);
function xdot = ball(x)
g = 9.81;
xdot = [x(3); x(4); 0; -g];
end
end
Error using model1/ball
Too many input arguments.
Error in odearguments (line 87)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options,
varargin);
Error in model1 (line 9)
[x] = ode45(@ball, tspan, x0);
如有任何建议,我将不胜感激!
错误是(我过去也犯过很多次)你也必须传递自变量(时间,在这种情况下)。
function [t, x] = model1(vel, angle)
tspan = [0 3];
x0 = [0; 0.915; vel*cos(angle); vel*sin(angle)];
[t, x] = ode45(@ball, tspan, x0);
end
function xdot = ball(t,x)
g = 9.81;
xdot = [x(3); x(4); 0; -g];
end
我将您的代码修改为 return 解决方案和相应的时间步长。此外,我删除了 ball
作为嵌套函数。