문제

다음과 같은 세 가지 방정식이 있습니다.

  • x + y + z = 100;
  • x + y -z = 50;
  • x -y -z = 10;

Java에서 x, y 및 z의 값을 어떻게 찾을 수 있습니까?

String equation1="x+y+z=100;";
String equation2="x+y-z=50;";
String equation3="x-y-z=10;";

int[] SolveEquations(equation1,equation2,equation3) {
   // to do
   // how to do?    
} 

가능한 솔루션이나 다른 공통 프레임 워크가 있습니까?

도움이 되었습니까?

해결책

결정 요인을 사용하여 XY 및 Z의 값을 계산할 수 있습니다. 논리는 여기에서 찾을 수 있습니다 http://www.intmath.com/matrices-determinants/1_determinants.php

그런 다음 3 차원 배열을 사용하여 Java로 구현해야합니다.

다른 팁

Java를 작성하기 때문에 사용할 수 있습니다 자마 이것을 해결하기위한 패키지. 좋은 LU 분해 방법을 추천합니다.

간단한 선형 대수 문제입니다. 손으로 또는 Excel과 같은 것을 쉽게 사용할 수 있어야합니다. 일단 있으면 솔루션을 사용하여 프로그램을 테스트 할 수 있습니다.

물론 해결책이 있다는 보장은 없습니다. 매트릭스가 단수 인 경우 3D 공간 에서이 세 줄의 교차점이 없음을 의미합니다.

Java Matrix 패키지를 사용할 수 있습니다 자마. 이 예제의 전체 페이지를 참조하십시오 여기

/*
 *Solving three variable linear equation system
 * 3x + 2y -  z =  1 ---> Eqn(1)
 * 2x - 2y + 4z = -2 ---> Eqn(2)
 * -x + y/2-  z =  0 ---> Eqn(3)
 */
import Jama.Matrix;
import java.lang.Math.*;
public class Main {
    public Main() {
        //Creating  Arrays Representing Equations
        double[][] lhsArray = {{3, 2, -1}, {2, -2, 4}, {-1, 0.5, -1}};
        double[] rhsArray = {1, -2, 0};
        //Creating Matrix Objects with arrays
        Matrix lhs = new Matrix(lhsArray);
        Matrix rhs = new Matrix(rhsArray, 3);
        //Calculate Solved Matrix
        Matrix ans = lhs.solve(rhs);
        //Printing Answers
        System.out.println("x = " + Math.round(ans.get(0, 0)));
        System.out.println("y = " + Math.round(ans.get(1, 0)));
        System.out.println("z = " + Math.round(ans.get(2, 0)));
    }

    public static void main(String[] args) {
        new Main();
    }
}

당신은 또한 사용할 수 있습니다 커먼즈 수학. 그들은 이것의 섹션을 가지고 있습니다 사용자 설명서 (3.4 참조)

사용 사용 파서를 만듭니다 antlr. 그런 다음 평가하십시오 ast 사용 가우스 제거.

사용 Gaussian_elimination 엄청나게 쉽지만 있습니다 일부 값 당신은 힘든 삶을 계산할 수 있습니다.

코드 예제

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top