일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 밑바닥부터시작하는딥러닝
- Lamp
- 머신러닝
- 논문리뷰
- Selenium
- 밑바닥부터시작하는딥러닝2
- 소스설치
- 한빛미디어
- 수동설치
- Crawling
- 한빛아카데미
- word2vec
- jupyter
- 셀레니움
- attention
- 딥러닝
- 가비아
- CBOW
- AndroidStudio를활용한안드로이드프로그래밍
- deeplearning
- image
- 컴파일설치
- 크롤링
- 비지도학습
- MySQL
- 예제중심HTML&자바스크립트&CSS
- 생활코딩
- 프로그램새내기를위한자바언어프로그래밍
- Apache
- aws
- Today
- Total
안녕, 세상!
복소평면에 허수함수 그래프 그리기(파이썬) 본문
복소평면의 정의
복소평면은 허수의 값 나름대로 시각적으로 나타내기 위해서 만든 좌표 평면으로 기존의 실수 좌표계와 다르게 x축은 실수 영역을 나타내는 real 축이고 y축은 허수 영역을 나타내는 imaginary 축으로 구성되어 있습니다.
복소평면에 대해서 이해하기 위해서는 허수에 대해 알아야 합니다.
허수를 알기 위해서 실수와 비교하여 설명하겠습니다.
기존의 우리가 알던 일반적이 실수 값 그 자체는 1차원 영역만으로 값을 점찍어서 표현을 했습니다.
실수의 영역을 크게 구분하자면 양수영역, 0, 음수 영역으로 나뉘어 있어 실수 값은 방향성을 가지게 됩니다.
반면 허수의 값 그 자체는 1차원 영역만으로 값을 점찍어 표현할 수 없습니다.
허수의 값 그 자체는 복소평면을 이용해서 그 위에 2차원 영역으로 자체 값을 표현할 수 있습니다.
복소평면 표현 방법
복소평면에 허수의 값을 표현하는 방법은 다음과 같습니다.
a+bi 라는 허수가 있다고 가정합시다.
a와 b는 실수이며 b는 허수 i 값과 곱해진 상태입니다.
이때 a+bi라는 허수의 값은 복소평면에 (a, b)라는 좌표에 위치하며 그 자체가 허수의 값을 의미합니다.
복소평면을 좀 더 이해하기 위해서 기본적인 허수 형태인 a+bi 형태를 띠고 있는 값과 관련된 식인 오일러 공식을 알아야 합니다.
오일러 공식은 다음과 같습니다.
그러므로 위의 식이 의미하는 바는 원점으로 부터 길이가 r이며 각도가 세타인 위치의 점을 의미합니다.
복소평면에서 (-1)**x의 그래프
그렇다면 대표적인 허수인 (-1)**x 는 어떻게 복소평면에 그려지는지 알아보겠습니다.
우선 (-1)**x 를 이해하기 위해서 -1 자체의 의미를 알아야 합니다.
-1 = -1 + 0*i 라고 표현할 수 있습니다.
즉, 복소평면에 점을 표현하게 된다면 (-1, 0)입니다.
(-1, 0)을 오일러 공식의 관점에서 설명하자면 곧, 원점으로부터 길이가 1이며 각도가 pi인 위치의 점을 의미합니다.
그러므로 다음과 같은 식이 성립이 됩니다.
위의 식이 성립하므로 (-1)**x는 다음과 같이 표현할 수 있습니다.
이 식을 오일러 공식의 관점에서 설명하면 원점으로부터 길이가 1이며 각도가 x*pi인 위치의 점을 의미합니다.
복소평면에서 x축은 실수 영역을 의미하므로 x에 정의역인 실수들이 들어가면 치역으로 복소평면에는 다음과 같이 그래프가 그려지게 됩니다.
x의 값에 어떠한 실수가 들어가더라도 한 바 퀴가 2pi 이므로 계속 같은 원의 자취를 형성하게 될 것입니다.
복소평면에서 (-1*a)**x의 그래프
그럼 (-1*a)**x의 그래프는 어떻게 나타날까요? (a는 임의의 실수입니다.)
이를 확인하기 위해서 파이썬으로 다음과 같이 코드로 짰습니다.
다음은 (-1.6)**x의 그래프를 파이썬 코드로 나타냈습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import matplotlib.pyplot as plt
from numpy import * # 지칭 없이 numpy 메소드 사용가능
r = 1
Z = [r*exp(1j*x*pi)*(1.6**x) for x in linspace(0,6,200)]
plt.plot(real(Z), imag(Z)) # numpy에서 real과 imag 메소드 사용
plt.ylabel('Imaginary')
plt.xlabel('Real')
plt.axis([-20,20,-20,20])
plt.axhline(y=0,color='black')
plt.axvline(x=0, color='black')
plt.show()
|
cs |
j : 복소수 'i'를 의미함
linespace(0, 6, 200) : 0부터 6까지의 숫자를 200개 쪼개서 표현함
real( ) : 허수 값을 복소평면의 x축으로 구축시킴
imag( ) : 허수 값을 복소평면의 y축으로 구축시킴
plt.axis([x축 출력 최솟값, 최댓값, y축 출력 최솟값, 최댓값])
기존의 (-1)**x와 다르게 a값이 -1 값에 곱해져서 a의 크기 값만큼 소라 모양이 넓게 형성됩니다.
위의 파이썬 matplotlib.pyplot의 정보를 더 얻고 싶으시면 아래의 글을 참조하셔도 됩니다.^^
https://luminitworld.tistory.com/8?category=924576
'It공부 > Python' 카테고리의 다른 글
5. 클래스 (0) | 2020.03.15 |
---|---|
4. 함수 (0) | 2020.03.14 |
3. 자료형(2)-리스트, 튜플, 딕셔너리 (0) | 2020.03.13 |
2. 변수와 자료형(1) (0) | 2020.03.12 |
1.파이썬 설치 및 특징 (0) | 2020.03.11 |