2012-04-28 3 views
1

프로그램에서 행렬의 순위를 찾는 방법을 찾는 데 어려움이 있습니다. 특히, 프로그램이 종속성을 초래하는 선형 조합의 모든 경우를 포착 할 수 있는지 확인하는 방법을 완전히 이해하지 못합니다.C++ - 행렬의 순위를 찾는 방법

이 문제를 해결하는 방법에 대한 일반적인 아이디어는 제가 관심있는 부분입니다. 그러나 답을 한 단계 더 나아가고 싶다면 특별히 사각형 매트릭스에 대한 해결책을 찾고 있습니다. 또한 코드는 C++로 작성됩니다.

시간 내 주셔서 감사합니다.

+2

'rank' 함수는 수치 적으로 불안정합니다. 일반적으로 행렬이 부적절한 행렬인지 아닌지를 알고 싶습니다. 즉, 행렬이 낮은 행렬에 매우 가깝습니다. 그러나 반올림 오류에 대해 걱정할 필요가없는 경우 Gauss-Jordan 제거를 사용하여 같은 순위의 삼각형 행렬을 만들 수 있습니다. –

답변

1

일반 과정 :

매트릭스 =

m2 = RREF (매트릭스)

순위 = number_non_zero_rows (m2)

RREF ('당신의 순위를 찾을하려는 행렬' 행렬)은 평범한 가우스 제거를 수행하는 함수입니다.

number_non_zero_rows (m2)는 행의 수를 합한 함수입니다. i = 0이 아닌 항목

종속성을 초래하는 모든 선형 조합의 경우 rref (Gaussian elimination) 단계가 필요합니다. 덧붙여서, 이것은 행렬의 차원이 무엇이든 관계없이 작동합니다.

관련 문제