[Week2-Day1] 인공지능수학-선형대수-실습[Week2-Day1] 인공지능수학-선형대수-실습

오준석·2021년 4월 27일
0

DevCourse

목록 보기
2/2

인공지능 수학 - 선형대수 (NumPy 실습)

행렬과 벡터의 코딩 및 연산## 인공지능 수학 - 선형대수 (NumPy 실습)

# 행렬 코딩
import numpy as np

A = np.array([[1,2,3],[4,5,6],[7,8,9]])

print(A)
print(A.shape)

>>>[[ 3  1  1]
 [ 1 -2 -1]
 [ 1  1  1]]
>>>(3, 3)

# 벡터 코딩
b = np.array([4, 1, 2])
print(b)
print(b.shape)

>>>[4 1 2]
>>>(3,)

# 역행렬 구하기
A_inv = np.linalg.inv(A)

print(A_inv)
print(A_inv.shape)

>>>[[ 5.00000000e-01 -7.40148683e-17 -5.00000000e-01]
 [ 1.00000000e+00 -1.00000000e+00 -2.00000000e+00]
 [-1.50000000e+00  1.00000000e+00  3.50000000e+00]]
>>>(3, 3)


# 역행렬을 이용한 선형시스템 Ax = b의 해 구하기
# x = np.matmul(A_inv, b)

x = A_inv @ b

print(x)
print(x.shape)
>>>[ 1. -1.  2.]
>>>(3,)

## 결과 검증
# bb = np.matmul(A, x)
bb = A @ x

print(bb.shape)
print(bb)

if np.linalg.norm(b - bb) < 1e-3:
    print("ok")
else:
    print("something wrong")
    
>>>(3,)
>>>[4. 1. 2.]
>>>
ok
profile
오늘만 사는 개발자

0개의 댓글