행렬의 부호
1) 행렬의 양-정부호(positive definite) 특성
•
영벡터가 아닌 모든 벡터 에 대해 다음 부등식이 성립하면 행렬 가 양-정부호(positive definite)이라고 함
•
식이 등호를 포함하는 경우 양-준정부호(positive semi-definite)
•
단위 행렬은 양-정부호
행렬의 크기
1) 놈(norm)
•
행렬 에 대해 다음처럼 정의되는 숫자로, 보통 로 표기 (은 1, 2, 또는 무한대를 많이 사용)
•
벡터의 길이
•
인 놈이 많이 쓰이며, 프로베니우스 놈(Frobenius norm)이라고 불리기도 함 ($\Vert A \Vert_F$로 표기)
•
행렬과 벡터의 놈은 항상 0과 같거나 0보다 큰 값을 가짐
•
numpy에서는 linalg 서브패키지의 norm 명령으로 계산
A = (np.arange(9) - 4).reshape((3,3))
A
Python
복사
array([[-4, -3, -2],
[-1, 0, 1],
[ 2, 3, 4]])
np.linalg.norm(A)
Python
복사
7.745966692414834
2) 대각합(trace)
•
정방행렬의 대각 원소들의 합
•
대각합의 성질
◦
스칼라를 곱하면 대각합은 스칼라와 원래의 대각합의 곱이다.
◦
전치연산을 해도 대각합이 달라지지 않는다.
◦
두 행렬의 합의 대각합은 두 행렬의 대각합의 합이다.
◦
두 행렬의 곱의 대각합은 행렬의 순서를 바꾸어도 달라지지 않는다.
◦
세 행렬의 곱의 대각합은 다음과 같이 순서를 순환시켜도 달라지지 않는다.
•
마지막 두 성질은 trace trick이라고 하여 이차 형식(quadratic form)의 미분을 구하는데 유용하게 사용됨
◦
이 두 수식에서는 가 각각 정방행렬일 필요는 없고 대각합을 구하는 행렬이 정방 행렬이면 됨
◦
이차형식의 trace trick 공식 (이차형식은 스칼라 값이기 때문에 대각합을 취해도 원래의 값과 같음)
•
numpy에서는 linalg 서브패키지의 trace 명령으로 계산
np.trace(np.eye(3))
Python
복사
3.0
3) 행렬식(determinant)
•
정방행렬의 행렬식은 로 표기
•
코팩터 전개(cofactor expansion)라고 불리는 재귀적인 방법으로 정의
(이 복잡한 수식과 계산 방법을 외우는 것 보다는 이해하고 넘어가는 것이 좋다고 생각된다.
어차피 손계산으로 행렬식을 구할 일은 거의 없을 것이니)
•
2차, 3차 정방행렬의 행렬식 공식 (특히 2×2의 행렬식 정도는 기억해두어야 한다.)
◦
2×2 행렬의 행렬식
◦
3×3 행렬의 행렬식
•
행렬식의 성질
◦
전치 행렬의 행렬식은 원래의 행렬의 행렬식과 같다.
◦
단위 행렬의 행렬식은 1이다.
◦
두 행렬의 곱의 행렬식은 각 행렬의 행렬식의 곱과 같다.
◦
역행렬의 행렬식은 원래의 행렬의 행렬식의 역수와 같다.
•
numpy에서는 linalg 서브패키지의 det 명령으로 계산
A = np.array([[1,2], [3,4]])
A
Python
복사
array([[1, 2],
[3, 4]])
np.linalg.det(A)
Python
복사
-2.0000000000000004
참고 자료