2012-07-03 3 views
2

선형 대수학 문제를 해결하기 위해 Jama API를 사용하고 있습니다. 하지만 그것은 내게 오류를주고있다 : java.lang.RuntimeException: Matrix is singular.단일 행렬 및 자마

나는 행렬이 유일한 경우 여러 가지 해결책이 있다고 가정한다. Jama API에서 이러한 솔루션 중 하나를 얻는 방법이 있을까요, 아니면 여기에서 도움이 될 수있는 다른 API가 있습니까? 제로의 경우는 (독립적이지 행이 행렬을 구성하는) 행렬이 역이없는 것을 의미한다 -

Matrix A = new Matrix(input); 
Matrix B = new Matrix(startState); 
Matrix X = A.solve(B); 
answer = X.getArray(); 
return answer; 
+3

[이 질문에] (http://stackoverflow.com/questions/6290459/exception-in-thread-main-java-lang-runtimeexception-matrix-is-singular) 도움이 될 수도 있습니다. – purtip31

+0

단수는 솔루션이 아니라 많은 것을 의미합니다. –

+0

@SeanOwen : 방정식이 _ 일관성이없는 경우 계수의 행렬이 singular (역변환 할 수 없음) 일 수 있습니다. _no_ 교차점을 갖는 두 개의 평행선, 또는 일부 방정식이 _dependent_ 인 경우. 두 개의 일치하는 라인은 _infinite_ 교차점을가집니다. – trashgod

답변

1

검사 행렬의 행렬식 : 아래

은 내가 사용하고 코드 조각입니다 . 이 경우 SVD, Gauss-Siedel, Jacobi iteration 등을 조사 할 수 있습니다. 또한 대체 라이브러리로 도움이된다면 apache commons 수학을 조사 할 수 있습니다.

+0

아파치 커먼즈를 들여다 보았습니다. 그들은 Linear Algebra에 대한 훌륭한 API를 가지고 있습니다 : [Commons Math] (http://commons.apache.org/math/). 나는 SVD를 사용했다. @ali haider –