Java: одновременные уравнения - PullRequest
0 голосов
/ 19 ноября 2011

У меня есть это уравнение, которое я хочу решить с помощью 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. Можно ли это как-то сделать, и если да, то как?

Спасибо заранее, Майкл.

EDIT:

Благодаря 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" вверху, но это не позволило мне запустить приложение.

Ответы [ 3 ]

1 голос
/ 19 ноября 2011

Замените ваш 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();
    }
}
1 голос
/ 19 ноября 2011

Примерно так:

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));
}

}

0 голосов
/ 19 ноября 2011

Если вы хотите решить это конкретное уравнение Одним из способов является преобразование уравнения в 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);
}

Интересным способом является использование wolframalpha !

...