인공지능수학 2주차

wi_label·2021년 11월 28일
1

Graduate school

목록 보기
4/17

과제 목표

파이썬 numpy 패키지를 이용해 주어진 행렬의 랭크(rank)를 구하는 코드를 작성합니다.

참고자료: 링크

행렬 AA 정의

다음의 3x3 행렬 AA를 정의하는 numpy 코드를 작성하시오.

A=[121123231]A = \left[ \begin{array}{rrr} 1 & 2 & 1 \\ 1 & 2 & 3 \\ 2 & 3 & -1 \end{array} \right]
import numpy as np

# 행렬 코딩

## TODO
A = np.array([[1, 2, 1], [1, 2, 3], [2, 3, -1]])

print(A)
print(np.shape(A))

행렬 AA의 랭크 계산

앞서 정의한 행렬 AA의 랭크(rank)를 계산하는 numpy 코드를 작성하시오.

# 랭크 계산

## TODO
rank_A = np.linalg.matrix_rank(A)

print("rank(A): ", rank_A)

행렬 BB 정의

다음의 3x3 행렬 BB를 정의하는 numpy 코드를 작성하시오.

B=[121123244]B = \left[ \begin{array}{rrr} 1 & 2 & 1 \\ 1 & 2 & 3 \\ 2 & 4 & 4 \end{array} \right]
# 행렬 코딩

## TODO
B = np.array([[1, 2, 1], [1, 2, 3], [2, 4, 4]])

print(B)
print(np.shape(B))

행렬 BB의 랭크 계산

앞서 정의한 행렬 BB의 랭크(rank)를 계산하는 numpy 코드를 작성하시오.

# 랭크 계산

## TODO
rank_B = np.linalg.matrix_rank(B)

print("rank(B): ", rank_B)

랭크의 의미 이해하기

거의 유사한 행렬 AABB가 서로 다른 랭크가 나오는 것을 확인하였다. 특히, 행렬 BB는 랭크가 3보다 적은 수로 나온다.

행렬 BB의 랭크가 3이 나오지 않는 그 이유를 설명하시오.

  • 첫 번째와 두 번째 열은 서로 선형 독립 관계에 있다고 볼 수 있다. 하지만, 세 번째 열의 경우에는 첫 번째 열에서 두 번째 열을 빼주게 되면 세 번째 열이 된다. 즉, 선형적으로 의존적인 관계가 성립한다. 따라서, 이 행렬의 Rank는 2
profile
옥은 부서질 지언정 흰 빛을 잃지 않고, 대나무는 불에 탈 지언정 그 곧음을 잃으려 하지 않는다.

0개의 댓글