求解运动方程的java程序?(没有什么,只是一个java查询)

求解运动方程的java程序?(没有什么,只是一个java查询),java,Java,这根本不是科学,我只是需要一些java方面的帮助。如果你知道,有3个运动方程 我们现在只关注1,即v=u+,忘记所有的技术术语。您可以看到有4个变量 但是,如果我试图用java计算,我将总是要求用户提供u、a和t的值,并提供输出v。但在现实生活中,如果我们有其他变量,我们可以计算这个方程中任何变量的值 那么,是否有一种方法可以询问所有的输入,并且用户可以选择在4个输入中的一个中不输入任何输入,然后进行计算 示例:如果我输入2=v、1=u和3=a,当我被问及t的值时,我只需按enter键。我能做些

这根本不是科学,我只是需要一些java方面的帮助。如果你知道,有3个运动方程

我们现在只关注1,即v=u+,忘记所有的技术术语。您可以看到有4个变量

但是,如果我试图用java计算,我将总是要求用户提供u、a和t的值,并提供输出v。但在现实生活中,如果我们有其他变量,我们可以计算这个方程中任何变量的值

那么,是否有一种方法可以询问所有的输入,并且用户可以选择在4个输入中的一个中不输入任何输入,然后进行计算

示例:如果我输入2=v、1=u和3=a,当我被问及t的值时,我只需按enter键。我能做些什么来寻找空白吗?< /P> 现在我知道有一种方法可以实现if循环,但这会很长,而且我也有点懒。所以我只是想问,有没有一种快速的方法可以做到这一点

现在我是一个java知识有限的初学者,所以请不要挖苦我,如果我错了,请告诉我我错在哪里


谢谢

您需要的是一个方程组解算器系统,有无Java

请参阅本文使用Java设置表示方程组的矩阵的位置,并使用org.apache.commons.math.linear.RealMatrix包对其进行求解

你可以通过谷歌搜索线性方程组来了解更多关于这个过程/如何实现你自己的过程的信息


当您允许用户选择4个方程式中的3个时,请使用某种形式,用户可以输入3个或更多值,然后插入矩阵解算器并返回第4个答案。否则,您可以通过关键字google argparse来区分输入,了解如何使用命令行或查看

您想要的是一个带或不带Java的方程组解算器

请参阅本文使用Java设置表示方程组的矩阵的位置,并使用org.apache.commons.math.linear.RealMatrix包对其进行求解

你可以通过谷歌搜索线性方程组来了解更多关于这个过程/如何实现你自己的过程的信息


当您允许用户选择4个方程式中的3个时,请使用某种形式,用户可以输入3个或更多值,然后插入矩阵解算器并返回第4个答案。否则,您可以通过关键字google argparse来区分输入,了解如何使用命令行或查看

直接求解其他变量:

v=u+at
u=v-at
a=(v-u)/t
t=(v-u)/a

直接求解其他变量即可:

v=u+at
u=v-at
a=(v-u)/t
t=(v-u)/a

你可以这样做

import java.util.Scanner;
class motion
{
    public static double i(String str)
    {
     return Double.parseDouble(str);
    }
    public static void main(String args[])
    {
        String v1,u1,a1,S1;
        double v,u,a,S;
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter the following values and \"?\" to find that value");
        System.out.print("v=");
        v1=sc.next();
        System.out.print("u=");
        u1=sc.next();
        System.out.print("a=");
        a1=sc.next();
        System.out.print("S=");
        S1=sc.next();
        if(v1.equals("?"))
        {
            u=i(u1);
            a=i(a1);
            S=i(S1);
            v=Math.sqrt(((u*u)+2*a*S));
            System.out.println("Final velocity="+v+" m/s");
        }
        else if(u1.equals("?"))
        {
            v=i(v1);
            a=i(a1);
            S=i(S1);
            u=Math.sqrt((v*v)-2*a*S);
            System.out.println("Initial velocity="+u+" m/s");
        }
        else if(a1.equals("?"))
        {
            u=i(u1);
            v=i(v1);
            S=i(S1);
            a=((v*v)-(u*u))/2*S;
            System.out.println("Acceleration="+a+" m/s^2");
        }
        else
        {
            u=i(u1);
            v=i(v1);
            a=i(a1);
            S=((v*v)-(u*u))/2*a;
            System.out.println("Displacement="+S+" m");
        }
    }
}

你可以这样做

import java.util.Scanner;
class motion
{
    public static double i(String str)
    {
     return Double.parseDouble(str);
    }
    public static void main(String args[])
    {
        String v1,u1,a1,S1;
        double v,u,a,S;
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter the following values and \"?\" to find that value");
        System.out.print("v=");
        v1=sc.next();
        System.out.print("u=");
        u1=sc.next();
        System.out.print("a=");
        a1=sc.next();
        System.out.print("S=");
        S1=sc.next();
        if(v1.equals("?"))
        {
            u=i(u1);
            a=i(a1);
            S=i(S1);
            v=Math.sqrt(((u*u)+2*a*S));
            System.out.println("Final velocity="+v+" m/s");
        }
        else if(u1.equals("?"))
        {
            v=i(v1);
            a=i(a1);
            S=i(S1);
            u=Math.sqrt((v*v)-2*a*S);
            System.out.println("Initial velocity="+u+" m/s");
        }
        else if(a1.equals("?"))
        {
            u=i(u1);
            v=i(v1);
            S=i(S1);
            a=((v*v)-(u*u))/2*S;
            System.out.println("Acceleration="+a+" m/s^2");
        }
        else
        {
            u=i(u1);
            v=i(v1);
            a=i(a1);
            S=((v*v)-(u*u))/2*a;
            System.out.println("Displacement="+S+" m");
        }
    }
}

是否使用System.out/in读入用户输入?或者您是否有一个带有文本字段和标签的应用程序/小程序?您能否详细说明您的主要问题是否在于如何与用户交互或计算未知变量?如果您在控制台输入值,也许为其中一个变量输入破折号或问号意味着计算该变量?是否使用System.out/in读取用户输入?或者您是否有一个带有文本字段和标签的应用程序/小程序?您能否详细说明您的主要问题是否在于如何与用户交互或计算未知变量?如果您在控制台输入值,也许为其中一个变量输入破折号或问号意味着计算那个变量?我认为这对于那个特定的应用程序来说有点过分了;不过还是挺有意思的+1没错,如果你不知道他们会给出4个等式中的哪3个,那么这就不是什么样板代码,更容易更改/扩展。我认为这对于特定的应用程序来说有点过分了;不过还是挺有意思的+1确实如此,但如果您不知道他们将给出4个方程式中的哪3个方程式,那么这将大大减少样板代码,并且更容易更改/扩展。