PYTHON

Numpy 행렬곱, 연립방정식

Numpy 행렬곱, 연립방정식

행렬곱

행렬곱은 두 개의 행렬에서 한 개의 행렬을 만들어내는 이항연산이다. 행렬곱을 할 수 있는 조건은

행렬곱 연산

(1,2)*(2,2) = (1,2)

(3,2)*(2,1) = (3,1)

  • 양 끝의 숫자로 결과 행렬이 만들어지고(1과 23과1)
  • 마주하는 가운데 숫자가 같아야한다.(2=2, 2=2)

행렬곱 함수 dot

arr1 = np.arange(4)
arr2 = np.arange(6)

arr1 = arr1.reshape(2,2)
arr2 = arr2.reshape(2,3)
print(arr1)
print(arr2)
print("="*50)

r1 = np.dot(arr1,arr2)
print(r1)
print("="*50)
실행 결과
행렬곱

연립방정식

5x + 2y = 18
3x + 1y = 10
x = 2, y=4

 

예제1

행렬곱
집과 독서실에서의 얻을 수 있는 효과적인 공부시간 구하기
  • 비타500을 마시면 2시간 집중적으로 공부할 수 있다.
  • 컨디션을 마시면 4시간 집중적으로 공부할 수 있다.
  • 집에서는 비타500을 5개, 컨디션 2개 마실 수 있다.
  • 독서실에서는 비타500을 2개, 컨디션을 1개 마실 수 있다.
  • 비타500의 가격은 1000원이고 컨디션의 가격은 5000원이다.
집에서는 18시간, 독서실에서는 8시간 효과적으로 공부할 수 있다.

 

1.배열 준비
#비타500과 컨디션의 효과적인 공부 지속시간 배열
arr1 = np.array([2,4])

#집과 독서실에서 마실 수 있는 비타500과 컨디션의 개수 배열
arr2 = np.array([[5,3],[2,1]])

#비타500과 컨디션의 가격 배열
arr3 = np.array([1000,5000])
arr4 = np.array([18,8])

 

2.행렬곱
# 집, 독서실에서 마시는 비타500과 컨디션의 개수
r1 = np.dot(arr1,arr2)
print(r1)
print("*"*50)

# 집, 독서실에서 마시는 비타500과 컨디션의 가격
r2 = np.dot(arr2, arr3)
print(r2)
print("*"*50)

 

3.연립방정식
# 연립방정식의 해 구하기
r3 = np.linalg.solve(arr2,arr4)
print(r3)

 

2-3번 실행 결과

행렬곱

예제2

행렬곱

시간대별(오전,오후) 사용된 휘발유와 등유의 개수가 몇 개인지 파악!!

백데이터
<기계 가동 가능 시간>
  • 오전 새기계 4시간, 중고기계 3시간
  • 오후 새기계 5시간, 중고기계 4시간
<시간당 생산 능력>
  • 새기계 휘발류 5개 생산 가능, 등유 4개 생산 가능
  • 중고기계 휘발류 3개 생산 가능, 등유 2개 생산 가능

 

arr1 = np.array([[4,3],[5,4]])
arr2 = np.array([[5,4],[3,2]])

r1 = np.dot(arr1,arr2)
print(r1)
최신글