Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何计算物体自由下落10秒后的位置_Java - Fatal编程技术网

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


对数学符号的一般理解是,求幂比乘法结合得更紧密。

你能发布你的计算代码,让我们看看你错在哪里吗?你把重力常数平方了,这就是你错的地方。