2차원 함수 플로팅

2차원 함수 플로팅 (Two-dimensional Function Plotting)

플로팅할 데이터를 손수 만들지 않아도, 함수 핸들이나 함수를 정의하는 문자열에서 바로 그래프를 그릴 수 있어요. fplot 함수는 x 데이터와 y 데이터 대신 함수 이름과 x 좌표 범위를 받아 선형 축으로 2차원 플롯을 만들어 내죠. 예를 들어:

fplot (@sin, [-10, 10], 201);

는 위와 동등한 플롯을 만들지만, 추가로 플롯된 함수의 이름을 표시하는 범례(legend)도 포함합니다.

출처: Two-dimensional Function Plotting

본문

fplot

fplot (fcn)
fplot (fcn, limits)
fplot (…, tol)
fplot (…, n)
fplot (…, fmt)
fplot (…, property, value, …)
fplot (hax, …)
[x, y] = fplot (…)

limits로 정의된 범위 안에서 함수 fcn을 플롯합니다. fcn은 함수 핸들, 인라인 함수, 또는 평가할 함수의 이름을 담은 문자열이에요.

플롯의 범위는 [xlo, xhi] 또는 [xlo, xhi, ylo, yhi] 형태예요. 범위를 지정하지 않으면 기본값은 [-5, 5]입니다.

다음 세 인자는 모두 선택 사항이고, 어떤 순서로든 몇 개든 줄 수 있어요.

  • tol — 플롯에 사용할 상대 허용오차로, 기본값은 2e-3(.2%)입니다.
  • n — 사용할 최소 점 수예요. n을 지정하면 최대 스텝 크기는 (xhi - xlo) / n입니다. 상대 허용오차 요구 조건을 맞추기 위해 n보다 많은 점이 사용될 수도 있어요.
  • fmtplot 명령이 사용할 선 스타일을 지정합니다.

여러 property-value 쌍도 지정할 수 있는데, 반드시 쌍으로 나타나야 해요. 이 인자들은 plot이 그린 선 객체에 적용됩니다. 선 속성 전체 목록은 Line Properties에 문서화되어 있어요.

첫 인자 hax가 축 핸들이면, gca가 돌려주는 현재 축이 아니라 그 축에 플롯합니다.

출력 인자가 없으면 결과가 즉시 플롯돼요. 출력 인자가 두 개면 2차원 플롯 데이터가 돌아오고, 그 데이터는 나중에 plot (x, y)로 직접 플롯할 수 있습니다.

예시:

fplot (@cos, [0, 2*pi])
fplot ("[cos(x), sin(x)]", [0, 2*pi])

Programming Notes:

  • fplot은 연속 함수에 가장 잘 맞아요. 불연속점이 있는 함수는 잘 플롯되지 않을 가능성이 높습니다. 이 제한은 미래에 제거될 수도 있어요.
  • 함수가 벡터 인자를 받고 반환할 때 fplot 성능이 더 좋아집니다. 사용자 정의 함수를 쓸 때 이 점을 고려하고 .*, ./ 같은 요소별 연산자를 사용하세요.

See also: ezplot, plot.

함수에서 직접 2차원 플롯을 만들 수 있는 다른 함수로는 ezplot, ezcontour, ezcontourf, ezpolar가 있어요.

ezplot

ezplot (f)
ezplot (f2v)
ezplot (fx, fy)
ezplot (…, dom)
ezplot (…, n)
ezplot (hax, …)
h = ezplot (…)

함수 f가 정의하는 2차원 곡선을 플롯합니다. 함수 f는 문자열, 인라인 함수, 또는 함수 핸들이고 변수가 하나 또는 둘일 수 있어요. f가 변수 하나면 그 함수는 영역 -2*pi < x < 2*pi에서 500개 점으로 플롯됩니다.

f2v가 두 변수의 함수면 암시적 함수 f(x, y) = 0을 메시(mesh) 영역 -2*pi <= x | y <= 2*pi에서 각 차원당 60개 점으로 계산합니다. 예를 들어:

ezplot (@(x, y) x.^2 - y.^2 - 1)

두 개의 함수를 입력으로 주면 매개변수 함수

x = fx (t)
y = fy (t)

를 영역 -2*pi <= t <= 2*pi에서 500개 점으로 플롯해요.

dom이 두 요소짜리 벡터면 x·y(또는 매개변수 플롯의 t)의 최솟값과 최댓값을 나타내요. dom이 네 요소짜리 벡터면 최솟값·최댓값은 [xmin xmax ymin ymax]입니다. n은 함수를 플롯하는 데 사용할 점 수를 정의하는 스칼라예요.

첫 인자 hax가 축 핸들이면 gca가 돌려주는 현재 축이 아니라 그 축에 플롯합니다. 선택적 반환값 h는 만들어진 선 객체들의 그래픽 핸들 벡터예요.

See also: plot, ezplot3, ezpolar, ezcontour, ezcontourf, ezmesh, ezmeshc, ezsurf, ezsurfc.

ezcontour

ezcontour (f)
ezcontour (…, dom)
ezcontour (…, n)
ezcontour (hax, …)
h = ezcontour (…)

함수의 등고선(contour)을 플롯합니다. f는 두 인자를 가진 문자열, 인라인 함수, 또는 함수 핸들로 함수를 정의해요. 기본적으로 플롯은 메시 영역 -2*pi <= x | y <= 2*pi에서 각 차원당 60개 점으로 그려집니다.

dom이 두 요소 벡터면 x·y의 최솟값·최댓값을, 네 요소 벡터면 최솟값·최댓값이 [xmin xmax ymin ymax]입니다. n은 각 차원에서 사용할 점 수를 정의하는 스칼라예요.

첫 인자 hax가 축 핸들이면 그 축에 플롯합니다. 선택적 반환값 h는 만들어진 플롯의 그래픽 핸들이에요.

예시:

f = @(x,y) sqrt (abs (x .* y)) ./ (1 + x.^2 + y.^2);
ezcontour (f, [-3, 3]);

See also: contour, ezcontourf, ezplot, ezmeshc, ezsurfc.

ezcontourf

ezcontourf (f)
ezcontourf (…, dom)
ezcontourf (…, n)
ezcontourf (hax, …)
h = ezcontourf (…)

함수의 채워진 등고선(filled contour)을 플롯합니다. f는 두 인자를 가진 문자열, 인라인 함수, 또는 함수 핸들로 함수를 정의해요. 기본적으로 메시 영역 -2*pi <= x | y <= 2*pi에서 각 차원당 60개 점으로 그려집니다.

dom·n·hax·hezcontour와 같은 규칙을 따라요.

예시:

f = @(x,y) sqrt (abs (x .* y)) ./ (1 + x.^2 + y.^2);
ezcontourf (f, [-3, 3]);

See also: contourf, ezcontour, ezplot, ezmeshc, ezsurfc.

ezpolar

ezpolar (f)
ezpolar (…, dom)
ezpolar (…, n)
ezpolar (hax, …)
h = ezpolar (…)

극좌표로 2차원 함수를 플롯합니다. 함수 f는 단일 인자를 가진 문자열, 인라인 함수, 또는 함수 핸들이에요. 예상되는 함수 형태는 rho = f (theta)입니다. 기본적으로 플롯은 영역 0 <= theta <= 2*pi에서 500개 점으로 그려집니다.

dom이 두 요소 벡터면 theta의 최솟값·최댓값을 나타내요. n은 함수를 플롯할 점 수를 정의하는 스칼라예요.

첫 인자 hax가 축 핸들이면 그 축에 플롯합니다. 선택적 반환값 h는 만들어진 플롯의 그래픽 핸들이에요.

예시:

ezpolar (@(t) sin (5/4 * t), [0, 8*pi]);

See also: polar, ezplot.

더 알아보기

  • octave-plotting — 플로팅 개요
  • octave-two-dimensional-plots — 2차원 플롯
  • octave-three-dimensional-function-plotting — 3차원 함수 플로팅