안녕, 세상!

복소평면에 허수함수 그래프 그리기(파이썬) 본문

It공부/Python

복소평면에 허수함수 그래프 그리기(파이썬)

dev_Lumin 2020. 8. 8. 15:29

복소평면의 정의

복소평면은 허수의 값 나름대로 시각적으로 나타내기 위해서 만든 좌표 평면으로 기존의 실수 좌표계와 다르게 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 메소드 사용가능
 
= 1
= [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

 

1. Python 심화( Numpy, Matplotlib)

넘파이와 matplotlib 등 의 유용한 라이브러리를 사용하기 위해서 아나콘다 배포판을 설치한 후 윈도우 검색기에 anaconda prmopt로 코딩을 하면 됩니다. 아나콘다 배포판 설치는 python 설치부분에 설명

luminitworld.tistory.com

 

'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
Comments