首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入参数太多Matlab ode45

输入参数太多Matlab ode45
EN

Stack Overflow用户
提问于 2016-04-04 08:07:58
回答 1查看 1.9K关注 0票数 0

我正试图编写一个简单的Matlab代码来建模一个弹丸。每当我试图运行代码时,都会看到一个错误,说明输入参数太多。我正在运行代码

model1(44.7,45)

代码语言:javascript
复制
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
代码语言:javascript
复制
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);

我希望你能给我任何建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-04 08:41:30

错误是(我过去多次犯的错误),您也必须传递自变量(在这种情况下,时间)。

代码语言:javascript
复制
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

我修改了您的代码以返回解决方案和相应的时间步骤。此外,我将ball删除为嵌套函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36397436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档