Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

기호 표현식의 플롯 만들기

기호 플로팅 함수를 사용하여 플로팅하기

MATLAB®은 수치 데이터 플로팅을 위한 여러 가지 기법을 제공합니다. MATLAB의 그래픽 기능에는 플로팅 툴, 표준 플로팅 함수, 그래픽 조작 및 데이터 탐색 툴, 그래픽스를 표준 형식으로 출력하고 내보내는 툴이 포함됩니다. Symbolic Math Toolbox™에서는 이러한 그래픽 기능을 확장하며, 다음을 사용하여 기호 함수를 플로팅할 수 있습니다.

  • fplot은 카테시안 좌표에서 기호 표현식, 기호 방정식 또는 기호 함수의 2차원 플롯을 만듭니다.

  • fplot3은 3차원 파라미터 플롯을 만듭니다.

  • ezpolar는 극좌표의 플롯을 만듭니다.

  • fsurf는 곡면 플롯을 만듭니다.

  • fcontour는 등고선 플롯을 만듭니다.

  • fmesh는 메시 플롯을 만듭니다.

fplot을 사용하여 기호 표현식 sin(6x)를 플로팅합니다. 기본적으로 fplot은 범위 -5<x<5를 사용합니다.

syms x
fplot(sin(6*x))

Figure contains an axes object. The axes object contains an object of type functionline.

ezpolar를 사용하여 기호 표현식 또는 기호 함수를 극좌표 r(반지름) 및 θ(편각)에 플로팅합니다. 기본적으로 ezpolar는 기호 표현식 또는 기호 함수를 0<θ<2π 구간에 대해 플로팅합니다.

기호 표현식 sin(6t)를 극좌표로 플로팅합니다.

syms t
ezpolar(sin(6*t))

함수를 수치적으로 플로팅하기

표현식을 기호적으로 플로팅하는 대신, subs를 사용하면 기호 변수에 숫자형 값을 대입할 수 있습니다. 그런 다음 MATLAB에서 플로팅 함수에 이들 숫자형 값을 사용할 수 있습니다.

다음 표현식 uv에서, 기호 변수 xymeshgrid로 정의된 숫자형 값을 대입합니다.

syms x y
u = sin(x^2 + y^2);
v = cos(x*y);
[X,Y] = meshgrid(-1:.1:1,-1:.1:1);
U = subs(u,[x y],{X,Y});
V = subs(v,[x y],{X,Y});

이제 표준 MATLAB 플로팅 함수를 사용하여 UV를 플로팅할 수 있습니다.

MATLAB quiver 함수를 사용하여, 함수 U(X,Y)V(X,Y)로 정의된 벡터장의 플롯을 만듭니다.

quiver(X,Y,U,V)

Figure contains an axes object. The axes object contains an object of type quiver.

하나의 그래프에 여러 개의 기호 함수 플로팅하기

함수를 순차적으로 추가하여 하나의 그래프에 여러 개의 함수를 플로팅할 수 있습니다. 첫 번째 함수를 플로팅한 후에 hold on 명령을 사용하여 나머지 함수를 이어서 추가하면 됩니다. hold on 명령은 기존 플롯을 유지합니다. hold on 명령을 사용하지 않으면 기존 플롯이 각각의 새 플롯으로 바뀝니다. hold on 명령을 실행한 후에는 새로 그려지는 플롯은 기존 플롯 위에 표시됩니다. 플롯을 교체하는 디폴트 동작으로 다시 돌아가려면 hold off 명령을 사용하십시오.

fplot을 사용하여 f=exsin(20x)를 플로팅합니다. ex-ex의 플롯을 빨간색 파선으로 겹쳐 놓음으로써 f의 범위를 표시합니다. fplot에서 반환된 객체의 DisplayName 속성을 사용하여 제목을 설정합니다.

syms x y
f = exp(x)*sin(20*x)
f = sin(20x)ex
obj = fplot(f,[0 3]);
hold on
fplot(exp(x),[0 3],"--r")
fplot(-exp(x),[0 3],"--r")
title(obj.DisplayName)
hold off

Figure contains an axes object. The axes object with title sin ( 20 blank x ) blank exp ( x ) contains 3 objects of type functionline.

하나의 Figure에 여러 개의 기호 함수 플로팅하기

subplot을 사용하면 Figure 창을 여러 개의 서브플롯으로 나누어서 하나의 Figure에 여러 개의 함수를 나란히 표시할 수 있습니다. 명령 subplot(m,n,p)는 Figure를 서브플롯으로 구성된 m×n 행렬로 나누고 서브플롯 p를 선택합니다. 서브플롯을 선택하고 플로팅 명령을 사용하여 여러 개의 플롯을 개별 서브플롯에 표시합니다. 여러 개의 서브플롯에 플로팅하면 플롯을 나란히 비교할 때 유용합니다.

subplot을 사용하여 서브플롯을 나란히 만들어서 a=10,20,50,100에 대해 sin((x2+y2)/a)의 플롯을 비교합니다.

syms x y a
f = sin((x^2 + y^2)/a);

subplot(2,2,1)
fsurf(subs(f,a,10))
title("a = 10")

subplot(2,2,2)
fsurf(subs(f,a,20))
title("a = 20")

subplot(2,2,3)
fsurf(subs(f,a,50))
title("a = 50")

subplot(2,2,4)
fsurf(subs(f,a,100))
title("a = 100")

Figure contains 4 axes objects. Axes object 1 with title a = 10 contains an object of type functionsurface. Axes object 2 with title a = 20 contains an object of type functionsurface. Axes object 3 with title a = 50 contains an object of type functionsurface. Axes object 4 with title a = 100 contains an object of type functionsurface.

기호 함수 플롯과 숫자형 데이터 플롯 결합하기

MATLAB 함수와 Symbolic Math Toolbox 함수를 함께 사용하여 동일한 그래프에 숫자형 데이터와 기호 데이터를 플로팅합니다.

[-5,5] 범위 내의 숫자형 x 값의 경우, y=sin(x)를 구하고 y에 난수 값을 추가하여 잡음이 있는 사인 곡선을 반환합니다. scatter를 사용해 점 (x1,y1),(x2,y2) 등을 플로팅하여 잡음이 있는 사인 곡선을 표시합니다.

figure
rng("default")
x = linspace(-5,5);
y = sin(x) + (-1).^randi(10,1,100).*rand(1,100)./2;
scatter(x,y)

사인 함수의 플롯을 겹쳐 놓아서 점들의 기본 구조를 표시해 보겠습니다. 먼저 hold on을 사용하여 산점도 플롯을 유지합니다. 그런 다음 fplot을 사용하여 사인 함수를 플로팅합니다.

hold on
syms t
fplot(sin(t))
hold off

Figure contains an axes object. The axes object contains 2 objects of type scatter, functionline.

3차원에서 수치 플롯과 기호 플롯 결합하기

MATLAB 플로팅 함수와 Symbolic Math Toolbox 플로팅 함수를 함께 사용하여 3차원에서 기호 플롯과 수치 플롯을 결합할 수 있습니다. Symbolic Math Toolbox에는 다음과 같은 3차원 플로팅 함수가 있습니다.

  • fplot3은 파라미터화된 3차원 선 플롯을 만듭니다.

  • fsurf는 3차원 곡면 플롯을 만듭니다.

  • fmesh는 3차원 메시 플롯을 만듭니다.

fplot3을 사용해 파라미터 선을 플로팅하여 나선형 플롯을 만듭니다.

x=(1-t)sin(100t)y=(1-t)cos(100t)z=1-x2-y2.

syms t
x = (1-t)*sin(100*t);
y = (1-t)*cos(100*t);
z = sqrt(1 - x^2 - y^2);
fplot3(x,y,z,[0 1])
title("Symbolic 3-D Parametric Line")

Figure contains an axes object. The axes object with title Symbolic 3-D Parametric Line contains an object of type parameterizedfunctionline.

반지름이 1이고 중심이 (0,0,0)인 구의 플롯을 겹쳐 놓습니다. sphere를 사용하여 구 위의 점을 수치적으로 찾습니다. mesh를 사용하여 구를 플로팅합니다. 결과로 생성되는 플롯은 상단 반구를 감싸고 있는 기호 파라미터 선을 보여줍니다.

hold on
[X,Y,Z] = sphere;
mesh(X,Y,Z)
colormap(gray)
title("Symbolic Parametric Plot and a Sphere")
hold off

Figure contains an axes object. The axes object with title Symbolic Parametric Plot and a Sphere contains 2 objects of type parameterizedfunctionline, surface.