Java:联立方程组
我想用java应用程序来解决这个方程 看起来像这样Java:联立方程组,java,equation,simultaneous,Java,Equation,Simultaneous,我想用java应用程序来解决这个方程 看起来像这样 y*n-1 = y*n-2 + 1035 + [(n-1)^2 + (n-3)] * y y*n = y*n-1 + (n^2 * y) 因此,用户应该输入N,然后Java应用程序应该计算Y是多少。 这有可能吗?如果有,怎么做 提前感谢,, 迈克尔 编辑: 多亏了mprabhat,现在看起来是这样,但不知何故我还是做错了 public class equation { private static double solve
y*n-1 = y*n-2 + 1035 + [(n-1)^2 + (n-3)] * y
y*n = y*n-1 + (n^2 * y)
因此,用户应该输入N,然后Java应用程序应该计算Y是多少。
这有可能吗?如果有,怎么做
提前感谢,,
迈克尔
编辑:
多亏了mprabhat,现在看起来是这样,但不知何故我还是做错了
public class equation
{
private static double solveFirstEquation(double n){
double y =0;
if(n > 0) {
y = ((n -1) + Math.pow( n , 2))/ n;
}
return y;
}
private static double solveSecondEquation(double n){
double y = 0;
if(n > 1) {
y = ((n-2)+ (Math.pow(n-1, 2) + n-3) + 1035)/(n-1);
}
return y;
}
public static void main(String args[])
{
System.out.println("How much is n?");
int n = 0;
n = Keyboard.readInt();
}
}
我试图将“void main String args”放在顶部,但这不允许我运行应用程序。类似于这样的内容:
import java.util.Scanner;
public class TestEquation {
private static double solveFirstEquation(double n) {
double y = 0;
if (n > 0) {
y = ((n - 1) + Math.pow(n, 2)) / n;
}
return y;
}
private static double solveSecondEquation(double n) {
double y = 0;
if (n > 1) {
y = ((n - 2) + (Math.pow(n - 1, 2) + n - 3) + 1035) / (n - 1);
}
return y;
}
public static void main(String args[]) {
System.out.println("How much is n?");
double n = 0;
Scanner scanner = new Scanner(System.in);
n = scanner.nextDouble();
System.out.println(solveFirstEquation(n));
System.out.println(solveSecondEquation(n));
}
}如果你想解这个方程 一种方法是将方程转换为
y=
形式
/*
* y*n-1 = y*n-2 + 1035 + [(n-1)^2 + (n-3)] * y
* y = -1034 /(n^2-n-2)
*/
public static double eq1(double n){
double m =n*n-n-2;
return -1034 /m;
}
/*
* y*n = y*n-1 + (n^2 * y)
* y = 1/n^2
*/
public static double eq2(double n){
return 1/(n*n);
}
有趣的方法是使用
main
替换为
public static void main(String args[])
{
System.out.println("How much is n?");
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.print("First equation: ");
System.out.println(solveFirstEquation(n));
System.out.print("Second equation: ");
System.out.println(solveSecondEquation(n));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是可能的,你们应该试着让他们回来问问题这里的键盘是什么?这是你自己的课吗?或者你想从控制台阅读?@MocialovBoris,啊,你不确定
[
和(
)之间的区别。特别提到这一点比说某些东西“看起来模棱两可”要清楚得多,你同意吗?无论如何,你现在可以安全地删除你的评论了因为它对你不再含糊不清了。:)非常感谢你的帮助,但是我在让它正常工作时遇到了一些问题,请看一下我用完整代码编辑的主要帖子。嗯,这个等式肯定是不正确的。我手工得到(n=3)y=460。我无法执行“BufferedReader”和“InputStreamReader”。我是否需要在代码顶部添加一些东西,如一些库?您需要导入BufferedReader和InputStreamReader,如导入java.io.BufferedReader;导入java.io.InputStreamReader;