여기에서는 2차원 그래프를 작성하는데 많이 쓰이는 plot()함수의 사용법에 대해서 자세히 알아보도록 하겠다.(이후 예제는 gnu octave로 모두 실행 가능함) 먼저 다음 예제를 실행해 보자.


>> y=(-3:3).^3; 󰎠
>> plot(y); 󰎠

[그림 1] 실행 결과 (gnu octave 에서 캡쳐)

plot()함수는 입력 파라메터(일단은 벡터라고 가정한다)가 하나일 때는 x축에는 인덱스 값을, y축에는 그 입력 파라메터를 도시한다. 즉 위 예제의 경우

y = [ -27 -8 -1 0 1 8 27]
인덱스  1  2  3  4 5 6 7

이므로 이를 (x,y)쌍으로 나타내면 (1,-27), (2,-8), (3,-1), (4,0), (5,1), (6,8), (7,27) 이고 plot()함수는 이 위치에 점을 찍은 후 이들을 선으로 연결한다. [그림 1]을 자세히 관찰해 보면 이해가 갈 것이다. 만약 점들의 간격이 충분히 좁다면 마치 곡선처럼 보일 것이다.


>> y=(-3:0.1:3).^3;
>> plot(y) 󰎠


[그림 2] 실행 결과 (gnu octave 에서 캡쳐)


점과 점의 간격이 작기 때문에 마치 곡선처럼 보이지만 기본적인 원리는 앞에서 설명한 바와 같다.

 또 다른 예로서 한 주기 동안 시간 t와 시간함수인 사인 함수 y=sin(t)를 그래프로 그려보자. 먼저 기준 축인 시간함수의 벡터를 정해야 한다.


>> t = 0:0.1:2*pi ; %t축 데이터 생성
>> y = sin(t); %y축 데이터 생성
>> plot(t,y)

[그림 3] 실행 결과 (gnu octave 에서 캡쳐)


입력 파라메터가 두개인 경우 두 입력은 크기가 같은 벡터여야 하며 첫 번째 파라메터를 x축에 그리고 두 번째 파라메터를 y축에 대응시켜서 그래프를 그리게 된다.


>> x=-2:5;
>> y=exp(x);
>> plot(x,y)


위의 예에서 다음과 같은 행벡터들을 얻을 수 있다.

x=[ -2 -1 0 1 2 3 4 5]

y=[ 0.14 0.36 1 2.72 7.39 20.09 54.60 148.41]

따라서 plot()함수는 (x,y)순서쌍 (-2,0.14),  (-1,0.36), (0,1), (1,2.72), (2,7.39), (3,20.09), (4,54.60), (5,148.41)의 위치에 점을 찍은 후 이들을 서로 실선으로 연결하게 된다. [그림 4]에 결과가 도시되어 있다.


[그림 4] 실행 결과 (gnu octave 에서 캡쳐)

좀 더 부드러운 곡선을 얻기 위해서는 행벡터 x의 간격만 줄여주면 된다.


>> x=-2:0.01:5;
>> y=exp(x);
>> plot(x,y)

[그림 5] 실행 결과 (gnu octave 에서 캡쳐)



Posted by 살레시오
,