문제
다음과 같은 세 가지 방정식이 있습니다.
- 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();
}
}
사용 Gaussian_elimination 엄청나게 쉽지만 있습니다 일부 값 당신은 힘든 삶을 계산할 수 있습니다.
제휴하지 않습니다 StackOverflow