Q2。 (30分)作为沿直线移动的身体的时间(t)的函数的位置d由下式给出:
d(t)= ‒ 0.2t4+0.5t3+15t-80 meters
粒子的速度v(t)由d(t)相对于t的导数确定,加速度a(t)由v(t)相对于t的导数确定。 使用您现有的数学知识导出粒子的速度和加速度的表达式,并将位置,速度和加速度的曲线图作为时间的函数,0≤t≤10s,增量为0.1 s,类似于以下屏幕截图。使用subplot命令在同一页面上绘制三个图,顶部位置图,中间速度图和底部加速度图。使用正确的单位适当标记轴。
你可以帮我解决这个问题吗?
我写道:
t=1:0.1:10
然后:
d(t)=-0.2*t.^4+0.5*t.^3+15*t-80
但我说:
这是什么意思?下标索引必须是实数正整数或逻辑。
答案 0 :(得分:5)
正如错误所述,t
必须是整数或逻辑。
但你的t是t=1:0.1:10
,因此是十进制值。
你可以写(请注意,.*
也是必要的)
d = -0.2.*t.^4+0.5.*t.^3+15.*t-80
您将获得一个适当的置换向量d
到您的时间向量t
。
原因是你想要赋值给d
,这需要索引,这是真正的正整数。
因此,尽管不是必需的,您可以创建索引向量:
idx_t = 1:numel(t);
并指定d
,如:
d(idx_t) = -0.2.*t.^4+0.5.*t.^3+15.*t-80
第二种情况,当索引向量是逻辑的时,它就像一个掩码。
e.g。
mask = logical( [1 0 1 0 1 0 1 0 1 0] );
t_new = t(mask);
会删除矢量t
的每一秒值。