Java 如何计算物体自由下落10秒后的位置
我得到了以下基本代码:Java 如何计算物体自由下落10秒后的位置,java,Java,我得到了以下基本代码: public class GravityCalculator { public static void main(String[] args) { double gravity = -9.81; //Earth's gravity in m/s^2 double initialVelocity = 0.0; double fallingTime = 10.0; double initialPositi
public class GravityCalculator {
public static void main(String[] args) {
double gravity = -9.81; //Earth's gravity in m/s^2
double initialVelocity = 0.0;
double fallingTime = 10.0;
double initialPosition = 0.0;
double finalPosition = 0.0;
System.out.println("The object's position after " + fallingTime + " seconds is " + finalPosition+ "m");
// the output is The object's position after 10.0 seconds is 0.0m
}
}
我被告知修改程序来计算物体下落10秒的位置,使用以下公式:
x(t) = 0.5 * at^2 + v(t) + x
a = acceleration = -9.81 m/s
t = time (in seconds) = 10
v = initial velocity
x = initial position
我试了又试,但我得到的答案是4811.805000000001
,
但显然正确的答案是-490.5m
这是我的尝试:
public class GravityCalculator2 {
public static void main(String[] args) {
double gravity = -9.81;
double fallingTime = 10;
double initialVelocity = 0.0;
double initialPosition = 0.0;
double x;
x = (0.5 * ((gravity * fallingTime) * (gravity * fallingTime))
+ (initialVelocity * fallingTime) + (initialPosition));
System.out.println(x);
}
}
我做错了什么?你得到4811的原因是因为你在计算重力加速度和第一学期的时间。你只需要将时间平方,然后乘以重力加速度和0.5。记住你的行动顺序。此外,重力引起的加速度为负,因此你应该用-9.81而不是9.81。你把公式编错了:
x(t) = 0.5 * at^2 + v(t) + x
是您开始时使用的,但您编码了:
x(t) = 0.5 * (at)^2 + v(t) + x
操作顺序很重要 您的代码正在计算此等式: x(t)=0.5*(at)2+v(t)+x 应在何时进行评估: x(t)=0.5*a(t2)+v(t)+x
对数学符号的一般理解是,求幂比乘法结合得更紧密。你能发布你的计算代码,让我们看看你错在哪里吗?你把重力常数平方了,这就是你错的地方。