1

我正在尝试对图中的每个方程式进行编程(我没有制作图表):

因此用户可以输入 5 个变量中的 3 个,并始终返回缺少的 2 个变量。在加速度为 0 和其他位置的情况下,我遇到了一些除以 0 的问题。第二行求时间的方程,第二个方程似乎特别奇怪。我也应该从其中一些中收到 2 个答案。即平方根问题?

首先,这些方程式准确吗?如果它们是准确的,我应该在我的程序中添加什么规定,以防止除以 0 问题和可能的其他问题。

如果它帮助你知道,我正在使用 JavaScript,但我更关心数学的本质以及它与运动学的关系,而不是语言本身。

非常感谢。

4

2 回答 2

0

从我检查的内容来看,这些看起来都是正确的。

第 2 行中的公式 2:

-u/a +/- sqrt(2*a*s + u^2)/a

有两个可能的值确实有意义。

如果你仔细想想,这个等式就是说:给定当前位置、加速度和起始速度,时间是多少。注意:加速度和起始速度不随时间变化。

由于 SUVAT 运动是抛物线运动,因此对于给定位置通常会有 2 个解。

查看此示例图像

在上图中,抛物线表示随时间变化的位置。水平线代表给定位置。抛物线的形状由给定的加速度和起始速度决定。如您所见,给定位置与抛物线相交有2 个点,用垂直线标记。

于 2018-07-30T23:29:03.093 回答
0

首先,方程是准确的。

然后,查看这些方程,有两个边界条件,其中加速度可以为零 (a=0) 或经过的时间可以为零 (t=0),您必须添加特殊情况以避免除以零错误。

  1. 如果 a = 0; 那么 s = ut, v = u
  2. 如果 t = 0; 那么 s = 0, u,v,a = undefined(不能确定加速度或速度)
  3. 对于第二个等式,您可以通过这种方式或使用以下方式计算时间: t = (Math.sqrt(u*u + 2*a*s) - u)/a
  4. 在第 4 种情况下,您可以使用上述公式和以下公式避免多个答案:t = (v - Math.sqrt(v*v - 2*a*s))/a

希望这可以帮助。

于 2018-07-30T23:21:05.123 回答