ODE 45 Not enough input arguments
显示 更早的评论
It says i don't have enough input agruments in line 3 of the function section and I dont know what is wrong
global m c k Omega f0
k=2000; % N/m
m=5; %kg
c=20; %kg/s
dt=0.005;
f0=37.5;
Omega= 25;
t=0:dt:5;
x0=[0 0];
function rl=f(t,y)
global m c k Omega f0
f=f0*sin(2*pi*Omega*t);
rl=[y(1); f/m-(c*y(1))/m-k*y(2)/(4*m)];
end
4 个评论
James Tursa
2021-2-25
Where is the rest of your code? Where is the ode45( ) call?
Jan
2021-2-25
The cause of the problem would be clear, if you post the complete code including the call to ODE45 and a copy of the complete error message.
Mauricio San Román Caraza
2021-2-25
Jan
2021-2-26
As far as I understand, your problem is solved. But it may help to improve future questions: You have still not posted a complete copy of the error message, but just the part, which explains where the problem occurred.
回答(1 个)
Jan
2021-2-25
We cannot see it, because you have not posted the complete code. But this has been the reason in many other questions in this forum:
[t, y] = ode45(rl, ...)
This calls rl without inputs. You want to provide the handle of the function instead:
[t, y] = ode45(@rl, ...)
类别
在 帮助中心 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!