직교 행렬 열과 행 직교하는 단위 벡터 (즉, 직교 벡터) 리얼 항목 가진 정방 행렬이다.
이것은 M ^ TM = I이며, 여기서 I는 항등 행렬이고 ^ T는 행렬 전치를 나타냅니다.
이것은 "특수 직교"가 아닌 직교이므로 M의 결정자는 1 또는 -1 일 수 있습니다.
이 과제의 목표는 기계 정밀도가 아니므로 M ^ TM = I 인 경우 소수점 이하 4 자리 이내이면 괜찮습니다.
이 작업은 양의 정수를 취하고 임의의 직교 n x n 행렬을n > 1
출력하는 코드를 작성하는 것입니다 . 행렬은 모든 n x n 개의 직교 행렬 에서 무작위로 균일하게 선택해야합니다 . 이러한 맥락에서, "균일 한"은 Haar 측정에 의해 정의되며, 이는 자유롭게 선택된 직교 행렬을 곱한 경우 분포가 변하지 않도록 본질적으로 요구한다. 이것은 행렬의 값이 -1에서 1 사이의 부동 소수점 값이됨을 의미합니다.
입력 및 출력은 편리한 형태 일 수 있습니다.
코드 실행에 대한 명확한 예를 보여주십시오.
직교 행렬을 생성하는 기존 라이브러리 함수를 사용할 수 없습니다. 이 규칙은 약간 미묘하므로 더 자세히 설명하겠습니다. 이 규칙은 일부 (또는 비) 입력을 받아 직교 할 수있는 n x n 크기의 행렬을 출력하는 기존 함수의 사용을 금지합니다. 극단적 인 예로서, n x n 단위 행렬을 원한다면 직접 만들어야합니다.
선택한 난수를 선택하기 위해 표준 난수 생성기 라이브러리를 사용할 수 있습니다.
에 대한 코드는 최대 몇 초 내에 완료되어야합니다 n < 50
.
diag
? 실제로 직교하지만 항상 직교하는 것은 아닌 대각선 행렬을 만듭니다.
diag
로 괜찮습니다.