Main Content

복소수 플로팅하기

이 예제에서는 MATLAB®에서 복소수를 플로팅하는 방법을 보여줍니다. 복소수 z는 다음 형식으로 작성할 수 있는 숫자입니다.

z=x+y i,

여기서 xy는 실수이고, i는 허수 단위로서 i2=-1로 정의됩니다. 숫자 x는 복소수의 실수부(x=Re(z)로 나타냄)이고, 숫자 y는 복소수의 허수부(y=Im(z)로 나타냄)입니다. 아르강 다이어그램이라고도 하는 복소 평면에서 좌표 쌍 (x,y)로 복소수를 플로팅할 수 있습니다. 이 다이어그램은 카테시안 좌표를 사용하여 x축에 실수부를 나타내고 y축에 허수부를 나타냅니다.

극좌표 표현을 사용하여 복소수를 나타낼 수도 있습니다. 복소수는 다음 형식으로 작성됩니다.

z=r eiθ=r(cos θ+i sin θ),

여기서 r은 복소수의 절댓값 또는 크기이고 θ는 복소수의 위상각입니다. 이 표현에서는 반지름 r(원점으로부터의 거리)과 편각 θ(양의 실수축과 점을 원점에 연결하는 직선 사이의 시계 반대 방향 각도)를 사용하여 복소수를 극좌표에서 하나의 점으로 플로팅할 수 있습니다.

복소수로 구성된 배열 플로팅하기

복소수 3 + 4i, -4 - 3i, 1 - 2i, -1 - 1i가 포함된 벡터를 생성합니다.

z = [3 + 4i; -4 - 3i; 1 - 2i; -1 - 1i]
z = 4×1 complex

   3.0000 + 4.0000i
  -4.0000 - 3.0000i
   1.0000 - 2.0000i
  -1.0000 - 1.0000i

plot을 사용하여 복소수 벡터 z의 실수부에 대하여 허수부를 플로팅합니다. real 함수와 imag 함수를 사용하여 각각 복소수 벡터의 실수부와 허수부를 반환합니다.

plot(real(z),imag(z),"o")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains a line object which displays its values using only markers.

plot(real(z),imag(z),LineSpec) 대신 plot(z,LineSpec)를 사용하여 복소수로 구성된 배열을 플로팅할 수도 있습니다. 이 함수는 자동으로 x축에 실수부를 플로팅하고 y축에 허수부를 플로팅합니다.

복소수 단위근을 카테시안 좌표에 플로팅하기

n차 단위근은 다음과 같은 다항 방정식을 충족하는 복소수입니다.

zn=1,

여기서 n은 양의 정수입니다.

n차 단위근은 다음과 같습니다.

exp(2kπin)=cos2kπn+i sin2kπn(이때 k=0,1,,n-1임)

roots를 사용해 다항 방정식을 풀어서 복소수 단위근을 구할 수 있습니다. roots 함수는 p1xn++pnx+pn+1=0 형식의 다항 방정식을 풉니다. 예를 들어 z5=1, 즉 z5-1=0의 5차 단위근을 구합니다.

p = [1 0 0 0 0 -1];
z = roots(p)
z = 5×1 complex

  -0.8090 + 0.5878i
  -0.8090 - 0.5878i
   0.3090 + 0.9511i
   0.3090 - 0.9511i
   1.0000 + 0.0000i

복소수 단위근을 카테시안 좌표에 플로팅합니다.

plot(z,"o")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains a line object which displays its values using only markers.

복소수를 극좌표에 플로팅하기

polarplot을 사용하여 5차 단위근을 극좌표에 플로팅합니다. angle 함수를 사용하여 복소수 근의 위상각을 반환하고, abs 함수를 사용하여 복소수 근의 절댓값 또는 반지름을 반환합니다.

polarplot(angle(z),abs(z),"o")

Figure contains an axes object with type polaraxes. The polaraxes contains a line object which displays its values using only markers.

polarplot(angle(z),abs(z),LineSpec) 대신 polarplot(z,LineSpec)을 사용하여 복소수로 구성된 배열을 극좌표에 플로팅할 수도 있습니다. 이 함수는 복소수의 반지름과 위상각을 자동으로 플로팅합니다.

복소 평면에 파라미터 곡선 플로팅하기

다음 형식을 갖는 파라미터 곡선을 정의합니다.

z=f(t)=texp(it)

여기서 파라미터 t는 구간 [0,4π] 내에 있습니다.

이 구간 내에 균일한 간격의 점 200개로 구성된 벡터 t를 만들어 t를 파라미터화합니다. 복소수 곡선 위에 있는 점을 복소수 벡터 z로 정의합니다.

t = linspace(0,4*pi,200);
z = t.*exp(1i*t);

복소수 곡선을 카테시안 좌표에 플로팅합니다.

plot(z,"-")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains an object of type line.

복소수 곡선을 극좌표에 플로팅합니다.

polarplot(z,"-")

Figure contains an axes object with type polaraxes. The polaraxes object contains an object of type line.

정사각 행렬의 고유값 플로팅하기

실수 n×n 정사각 행렬에는 실수이거나 켤레 복소수 쌍으로 생기는 n개 고유값(대수 중복도로 셈)이 있습니다.

예를 들어, 표준 정규분포에서 추출한 임의의 요소를 포함하는 20×20 실수 행렬이 있다고 가정해 보겠습니다. eig를 사용하여 고유값을 계산합니다.

rng("default")
z = eig(randn(20));

20개의 모든 고유값의 실수부에 대해 허수부를 플로팅합니다. 실수축에 놓여 있지 않은 고유값 zk=xk+yki마다 이와 쌍을 이루는 고유값인 또 다른 켤레 복소수 zk*=xk-yki가 있음을 알 수 있습니다.

plot(z,"o")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains a line object which displays its values using only markers.

여러 복소수 데이터 세트 플로팅하기

두 개의 복소수 데이터 세트의 실수부에 대해 허수부를 플로팅합니다. 다수의 복소수 입력 인수를 plot에 전달하면(예: plot(z1,z2)) plot 함수는 입력값의 허수부를 무시하고 실수부만 플로팅합니다. 다수의 복소수 입력값의 실수부에 대해 허수부를 플로팅하려면 실수부와 허수부를 plot에 명시적으로 전달해야 합니다.

예를 들어, 두 개의 복소수 벡터 z1z2를 만듭니다.

x = -2:0.25:2;
z1 = x.^exp(-x.^2);
z2 = 2*x.^exp(-x.^2);

real 함수와 imag 함수를 사용하여 각 벡터의 실수부와 허수부를 구합니다.

re_z1 = real(z1);
im_z1 = imag(z1);
re_z2 = real(z2);
im_z2 = imag(z2);

복소수 데이터를 플로팅합니다.

plot(re_z1,im_z1,"*",re_z2,im_z2,"o")
axis equal
grid on
legend("z1","z2")
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent z1, z2.

참고 항목

| | | | |