2015년 6월 27일 토요일

MATLAB의 ezplot()함수

 여기에서는 MATLAB에서 그래픽을 그려주는 함수들중 ezplot() 함수에 대해서 설명하겠다. MATLAB에서 자주 사용되는  그래픽 함수는 다음과 같다. (아래 함수들은 gnu octave 4.x 이상 버전에서 모두 지원한다.)

[표 1] 그래프 함수들
함수명
비고
ezplot(), fplot()
plot()
ezpolar(), polar()
loglog(), semilogx(), semilogy()
2차원 그래프
ezplot3(), ezmesh(), ezsurf()
plot3(), mesh(), surf()
3차원 그래프

 이것들 중 ezplot()함수는 사용자가 쉽게 (easy) 수학 함수의 그래프를 그릴 수 있도록 해주는 함수이고 fplot()함수는 함수(function)의 그래프를 그려주는 함수이다. 두 함수 모두 어떤 함수의 2차원 그래프를 그려주는 함수로서 명시적 함수( y=f(x) 의 형식) 과 암시적 함수 ( f(x,y)=0 의 형식)을 도시하는데 있어서 plot()함수보다는 보다 편하게 사용할 수 있다.
 가장 간단한 사용법은 도시하고자 하는 함수를 문자열로 입력하면 된다. 예를 들어 y=cos(x) 함수를 그리고 싶다면

>> ezplot('cos(x)')

[그림 1] gnu octave 4.x에서의 실행 결과

명시적 함수 y=f(x) 에서 f(x) 부분만 문자열로 입력하면 된다. y=sqrt(1-x2) 을 그리고 싶다면 다음과 같이 입력한다.

>> ezplot('sqrt(1-x^2)')
[그림 2] gnu octave 4.x 에서의 실행 결과

 만약 x축의 범위를 명시하고 싶다면 두 번째 파라메터로 x축의 최소값, 최대값을 가지는 행벡터를 입력하면 된다.

>> ezplot('sin(x)*cos(x)', [0 pi])
[그림 3] gnu octave 4.x 에서의 실행 결과

위의 명령은  sin(x)cos(x) 그래프를 그리되 x축의 범위를 0과 π사이로 하라는 것이다.

 암시적 함수도 그대로 문자열로 입력하면 된다. 예를 들어서 원의 방정식 x2+y2=16 을 그리고 싶다면 우변을 0으로 만든 다음 x2+y2-16=0 그 좌변을 입력하면 된다.

>> ezplot('x^2+y^2-16')

[그림 4] gnu octave 4.x 에서의 실행 결과

 이 경우도 두 번째 파라메터로 x축의 범위를 입력할 수 있다. 예를 들어 x3+y3-5xy+0.2=0 의 그래프를 그리되 x축의 범위를 [-3 3]로 하고 싶다면 다음과 같이 하면 된다.

>> ezplot('x^3 + y^3 - 5*x*y + 0.2',[-3,3])
[그림 5] gnu octave 4.x 에서의 실행 결과

 ezplot()함수는 x와 y의 관계식이 직접적으로 나타내지지 않고 매개변수에 의해서 관계 지어지는 경우도 도시할 수 있다. 예를 들어서 매개변수 t 에 대해서 x=sin(t) , y=cos(t)의 관계식이 주어진 경우 이들을 순서대로 입력하면 된다.

>> ezplot('sin(t)','cos(t)')
[그림 6] gnu octave 4.x 에서의 실행 결과

또한 다음과 같은 관계식을 가지는 x-y그래프를 t가 [0 π]의 범위를 가질 경우에 대해서 도시하려면
다음과 같이 하면 된다.

>> ezplot('sin(3*t)*cos(t)', 'sin(3*t)*sin(t)', [0,pi])
[그림 7] gnu octave 4.x 에서의 실행 결과

즉, 매개변수를 가지는 xy그래프를 그릴 때 세 번째 입력벡터는 매개변수의 범위가 된다.


댓글 없음:

댓글 쓰기