학습일 : 2020.01.24
학습목표
linalg 서브모듈 함수 활용여 선형대수 연산하기
**import** numpy **as** np
x = np.random.rand(3, 3) # 정방 행렬일 때만 가능하다. (행과 열이 같음)
print(x)
x @ np.linalg.inv(x) # @는 곱이며 역행렬과 곱하는 것으로 0으로 거의 확인된다.
[[0.30672271 0.12084993 0.56727562]
[0.81317176 0.7653712 0.7425641 ]
[0.50110833 0.35761537 0.8616185 ]]
Out[4]:
array([[ 1.00000000e+00, -1.42304679e-16, -3.37743724e-16], [ 1.37436331e-15, 1.00000000e+00, -1.05616678e-15], [-1.06021924e-15, -1.28445334e-16, 1.00000000e+00]])
np.matmul(x, np.linalg.inv(x))
array([[ 1.00000000e+00, -1.42304679e-16, -3.37743724e-16],
[ 1.37436331e-15, 1.00000000e+00, -1.05616678e-15],
[-1.06021924e-15, -1.28445334e-16, 1.00000000e+00]])
x + y = 25
2x + 4y = 64
A = np.array([[1,1], [2, 4]])
B = np.array([25, 64])
x = np.linalg.solve(A, B)
print(x)
np.allclose(A@x, B)