[英]a java program to solve equations of motion? (nothing scientific just a java query)
這根本不是科學,我只需要一些 java 方面的幫助。 所以如果你知道,有 3 個運動方程。
我們只關注 1,即 v=u+ 現在忘記所有技術術語。 你可以看到有 4 個變量。
但是如果我嘗試在 Java 中計算它,我將總是需要用戶提供 u、a 和 t 的值並提供輸出 v。但在現實生活中,我們可以計算任何變量的值這個等式如果我們有其他的。
那么,有沒有一種方法可以詢問所有輸入,並且用戶可以選擇在 4 個輸入之一中不輸入任何輸入,這將被計算。
示例:如果我輸入 2=v,1=u 和 3=a,當我被問到 t 的值時,我只需按回車鍵。 我可以做些什么來找到空白區域嗎?
現在我知道有一種方法可以執行 if 循環,但這會很長,而且我也有點懶惰。 所以我只是問有沒有快速的方法來做到這一點?
現在我是一個對 Java 知識有限的初學者,所以請不要諷刺並告訴我我是否錯了,更可能是我錯在哪里。
謝謝!
直接求解其他變量:
v=u+at
u=v-at
a=(v-u)/t
t=(v-u)/a
你想要的是一個方程組求解器(有或沒有 Java)。
請參閱https://discursive.atlassian.net/wiki/display/CJCOOK/Solving+a+System+of+Linear+Equations ,其中文章使用 Java 設置表示方程組的矩陣並使用 org.apache 對其求解.commons.math.linear.RealMatrix 包。
您可以在谷歌上搜索“線性方程組”以查看有關此過程/如何實現您自己的過程的更多信息。
當您讓用戶選擇 4 個方程式中的 3 個時——采用某種形式,他們可以輸入 3 個或更多值,然后插入矩陣求解器並返回第 4 個答案。 否則,您可以按關鍵字區分輸入(谷歌 argparse 以了解如何使用命令行執行此操作或查看如何在 Java 中解析命令行參數? )
你可以這樣做......
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");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.