2016-06-21 4 views
2

둘 다 m * n 인 두 행렬 A와 B가 있다고 가정하면 식 A * C = B '를 만족하는 * n 행렬 C를 얻는 데 사용할 수있는 방법이나 알고리즘이 있습니까? (B'를 얻을 수 있습니다. B)에 대해 행 스왑의 몇 단계를 수행하여 C가 최소 제곱합 합계를 만족하는지 확인하십시오. 또는 A * C = D * B, 여기서 D (m * m)은 행 스왑 변환 행렬입니다.두 매트릭스 사이의 변환 매트릭스를 찾는 알고리즘.

감사합니다. 내가 질문을 읽으면

+2

'제곱의 최소 합계'오류에 대해 자세히 설명하십시오. 예를 들어 주시겠습니까? 행 교환은 너무 어렵지 않아야합니다. 'B'는 차원 'n * n'이어야합니다. – Codor

+0

예를 들어, A, B는 10 * 2 행렬이고, 차원 10이 2보다 크기 때문에 선형 대수학을 사용하여 C 행렬 (2 * 2)을 구할 수 있습니다 (http : //commons.apache. org/proper/commons-math/userguide/linear.html). 문제는 최적의 C를 얻기 위해 B의 적절한 순서를 찾는 방법입니다. –

답변

1

올바르게, 두 개의 매트릭스 AB을 가지고, 당신은 사각형의 epsilon의 합을 최소화하려는 당신은 C 같은 A * C = B + epsilon이 찾고 있습니다.

귀하의 질문은 당신이 C에 대한 몇 가지 제약 조건을 제안하는 것으로 보이지만 그게 무엇인지는 확실하지 않습니다. 그러나 답을 표시 할 때 선형 해석자는 epsilon의 제곱의 합을 최소화하는 C을 찾을 수 있습니다. 솔버는 B 행의 순서가 무엇인지 신경 쓰지 않습니다. 행 교환 연산자 (예 : D)를 찾은 C에 결합합니다.

solve과 같이 다양한 선형 해법이 있으며 간단한 함수가 있습니다. 사용하려는 함수를 선택해야합니다. 원하는 경우 특정 솔버를 항상 명시 적으로 선택할 수 있습니다. 비싸지 만 매우 유용한 해법은 Moore-Penrose pseudoinverse입니다. C = pinv(A) * B, Cepsilon의 제곱의 합을 최소화하지만 의 최소 제곱합을 보장합니다. C의 제곱합을 최소화합니다. Wikipediasolve이 pseudoinverse를 통해이 min-norm 솔루션과 다른 것을 반환 할 수 있다고 설명합니다.