Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- network configuration
- 구멍가게코딩단
- 알파회계
- 자바편
- 서버설정
- 처음 만나는 AI수학 with Python
- baeldung
- iterator
- resttemplate
- 스프링부트핵심가이드
- 네트워크 설정
- d
- 이터레이터
- 자료구조와함께배우는알고리즘입문
- 처음 만나는 AI 수학 with Python
- 데비안
- 코드로배우는스프링부트웹프로젝트
- 리눅스
- /etc/network/interfaces
- Kernighan의 C언어 프로그래밍
- 페이징
- 선형대수
- 자료구조와 함께 배우는 알고리즘 입문
- ㅒ
- 티스토리 쿠키 삭제
- GIT
- 스프링 시큐리티
- 목록처리
- 친절한SQL튜닝
- 코드로배우는스프링웹프로젝트
Archives
- Today
- Total
bright jazz music
선형대수 : 7. 행렬의 요소별 곱(아다마르 곱) 본문
행렬의 요소별 곱 (아다마르 곱)
- 행렬의 요소별 곱은 행렬의 각 요소끼리 곱하는 것이다.
- 아다마르 곱(Hadamard product)이라고도 불린다.
- ○ 또는 ⊙로 표기한다.
두 행렬 A와 B가 아래와 같을 때
LaTeX | 수식 |
$ \begin{align} A &=\begin{pmatrix} a_{11}&a_{12}&\cdots & a_{1n}\\ a_{21}&a_{22}&\cdots & a_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}&a_{m2}&\cdots & a_{mn} \end{pmatrix} \end{align}$ | |
$ \begin{align} B &=\begin{pmatrix} b_{11} & b_{12}&\cdots & b_{1n}\\ b_{21}&b_{22}&\cdots & b_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ b_{m1}&b_{m2}&\cdots & b_{mn} \end{pmatrix}\\ \end{align}$ |
두 행렬 A와 B의 아다마르 곱은 아래와 같다.
LaTeX | 수식 |
$ \begin{align} A \circ B &=\begin{pmatrix} a_{11}b_{11} & a_{12}b_{12}&\cdots & a_{1n}b_{1n}\\ a_{21}b_{21}&a_{22}b_{22}&\cdots & a_{2n}b_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}b_{m1} & a_{m2}b_{m2}&\cdots & a_{mn}b_{mn} \end{pmatrix}\\ \end{align}$ |
예시
LaTeX | 수식 |
$ \begin{align} A &=\begin{pmatrix} 0 & 1& 2\\ 3 & 4 & 5 \\ 6 & 7 & 8 \end{pmatrix} \\ B &= \begin{pmatrix} 0 & 1& 2\\ 2 & 0 & 1 \\ 1 & 2 & 0 \end{pmatrix} \end{align}$ |
|
$ \begin{align} A \circ B &=\begin{pmatrix} 0 \times 0 & 1\times1& 2\times2\\ 3\times2 & 4\times0& 5\times1 \\ 6\times1 & 7\times2 & 8\times0 \end{pmatrix}\\ \\ &= \begin{pmatrix} 0 & 1 & 4\\6 & 0 & 5\\ 6 & 14 & 0 \end{pmatrix} \end{align}$ |
파이썬에서 요소별 곱(아다마르 곱) 구현하기
import numpy as np
a = np.array([[0, 1 , 2],
[3, 4, 5],
[6, 7, 8]])
b = np.array([[0, 1 , 2],
[2, 0, 1],
[1, 2, 0]])
print(a*b)
# [[ 0 1 4]
# [ 6 0 5]
# [ 6 14 0]]
실습:
#행렬 a와 b의 행렬곱, 행렬 c와 d의 요소별 곱을 구하라
import numpy as np
a = np.array([[0, 1, 2],
[1, 2, 3]])
b = np.array([[0, 1],
[1, 2],
[2, 3]])
#행렬곱
print(np.dot(a, b))
print()
c = np.array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
d = np.array([[0, 2, 0],
[2, 0, 2],
[0, 2, 0]])
#요소별 곱
print(c*d)
# [[ 5 8]
# [ 8 14]]
#
# [[ 0 2 0]
# [ 6 0 10]
# [ 0 14 0]]
참고:
https://ko.wikipedia.org/wiki/%EC%95%84%EB%8B%A4%EB%A7%88%EB%A5%B4_%EA%B3%B1
'Math > 선형대수' 카테고리의 다른 글
선형대수 : 9. 단위행렬 (0) | 2022.07.28 |
---|---|
선형대수 : 8. 전치(transpose) (0) | 2022.07.27 |
선형대수 : 7. 행렬의 곱 (0) | 2022.07.25 |
선형대수 : 6. 놈 (노름, norm) (0) | 2022.07.24 |
선형대수 : 5. 내적(스칼라 곱,dot product, scarla product) (0) | 2022.07.23 |
Comments