복소수 플로팅하기
이 예제에서는 MATLAB®에서 복소수를 플로팅하는 방법을 보여줍니다. 복소수 는 다음 형식으로 작성할 수 있는 숫자입니다.
,
여기서 와 는 실수이고, 는 허수 단위로서 로 정의됩니다. 숫자 는 복소수의 실수부(로 나타냄)이고, 숫자 는 복소수의 허수부(로 나타냄)입니다. 아르강 다이어그램이라고도 하는 복소 평면에서 좌표 쌍 로 복소수를 플로팅할 수 있습니다. 이 다이어그램은 카테시안 좌표를 사용하여 축에 실수부를 나타내고 축에 허수부를 나타냅니다.
극좌표 표현을 사용하여 복소수를 나타낼 수도 있습니다. 복소수는 다음 형식으로 작성됩니다.
,
여기서 은 복소수의 절댓값 또는 크기이고 는 복소수의 위상각입니다. 이 표현에서는 반지름 (원점으로부터의 거리)과 편각 (양의 실수축과 점을 원점에 연결하는 직선 사이의 시계 반대 방향 각도)를 사용하여 복소수를 극좌표에서 하나의 점으로 플로팅할 수 있습니다.
복소수로 구성된 배열 플로팅하기
복소수 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)")
plot(real(z),imag(z),LineSpec)
대신 plot(z,LineSpec)
를 사용하여 복소수로 구성된 배열을 플로팅할 수도 있습니다. 이 함수는 자동으로 축에 실수부를 플로팅하고 축에 허수부를 플로팅합니다.
복소수 단위근을 카테시안 좌표에 플로팅하기
차 단위근은 다음과 같은 다항 방정식을 충족하는 복소수입니다.
,
여기서 은 양의 정수입니다.
차 단위근은 다음과 같습니다.
(이때 임)
roots
를 사용해 다항 방정식을 풀어서 복소수 단위근을 구할 수 있습니다. roots
함수는 형식의 다항 방정식을 풉니다. 예를 들어 , 즉 의 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)")
복소수를 극좌표에 플로팅하기
polarplot
을 사용하여 5차 단위근을 극좌표에 플로팅합니다. angle
함수를 사용하여 복소수 근의 위상각을 반환하고, abs
함수를 사용하여 복소수 근의 절댓값 또는 반지름을 반환합니다.
polarplot(angle(z),abs(z),"o")
polarplot(angle(z),abs(z),LineSpec)
대신 polarplot(z,LineSpec)
을 사용하여 복소수로 구성된 배열을 극좌표에 플로팅할 수도 있습니다. 이 함수는 복소수의 반지름과 위상각을 자동으로 플로팅합니다.
복소 평면에 파라미터 곡선 플로팅하기
다음 형식을 갖는 파라미터 곡선을 정의합니다.
여기서 파라미터 는 구간 내에 있습니다.
이 구간 내에 균일한 간격의 점 200개로 구성된 벡터 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)")
복소수 곡선을 극좌표에 플로팅합니다.
polarplot(z,"-")
정사각 행렬의 고유값 플로팅하기
실수 × 정사각 행렬에는 실수이거나 켤레 복소수 쌍으로 생기는 개 고유값(대수 중복도로 셈)이 있습니다.
예를 들어, 표준 정규분포에서 추출한 임의의 요소를 포함하는 20×20 실수 행렬이 있다고 가정해 보겠습니다. eig
를 사용하여 고유값을 계산합니다.
rng("default")
z = eig(randn(20));
20개의 모든 고유값의 실수부에 대해 허수부를 플로팅합니다. 실수축에 놓여 있지 않은 고유값 마다 이와 쌍을 이루는 고유값인 또 다른 켤레 복소수 가 있음을 알 수 있습니다.
plot(z,"o") axis equal grid on xlabel("Re(z)") ylabel("Im(z)")
여러 복소수 데이터 세트 플로팅하기
두 개의 복소수 데이터 세트의 실수부에 대해 허수부를 플로팅합니다. 다수의 복소수 입력 인수를 plot
에 전달하면(예: plot(z1,z2)
) plot
함수는 입력값의 허수부를 무시하고 실수부만 플로팅합니다. 다수의 복소수 입력값의 실수부에 대해 허수부를 플로팅하려면 실수부와 허수부를 plot
에 명시적으로 전달해야 합니다.
예를 들어, 두 개의 복소수 벡터 z1
과 z2
를 만듭니다.
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)")