我正在开始一个项目,涵盖MatLab中的质量弹簧系统建模。在本实验中,我们已经提供了一些在.m文件中运行的初始代码。根据项目的视频说明,代码应该运行而不进行任何修改或编辑。但是,当我运行代码时,会返回许多错误。
代码:
function LAB08ex1
m = 1; % mass [kg]
k = 4; % spring constant [N/m]
omega0 = sqrt(k/m);
y0 = 0.1; v0 = 0; % initial conditions
[t,Y] = ode45(@f,[0,10],[y0,v0],[],omega0); % solve for 0<t<10
y = Y(:,1); v = Y(:,2); % retrieve y, v from Y
figure(1); plot(t,y,'b+-',t,v,'ro-'); % time series for y and v
grid on
%legend('y(t)','v(t)=y''(t)'); % note the use of '' for '
%figure(2); plot(y,v); % phase plot
%xlabel('y'); ylabel('v=y'''); grid on
%-----------------------------------------
function dYdt = f(t,Y,omega0)
y = Y(1); v = Y(2);
dYdt = [ v ; -omega0^2*y ];
运行此代码会返回以下错误:
LAB08ex1
Index exceeds array bounds.
Error in LAB08ex1>f (line 15) y = Y(1); v = Y(2);
Error in ode45 (line 273) k_(:,1)=feval(FUN,x,t);
Error in LAB08ex1 (line 6) [t,Y] = ode45(@f,[0,10],[y0,v0],[],omega0);
出了什么问题,我该如何解决?