[GNU Octave - 무료 매트랩] 3차원 곡면과 등고선 그리기

곡면(Surface) 그리기

3차원 곡면을 그리기 위해 다음 수식과 같은 형태의 3차원 객체를 먼저 정의해야 합니다.

\(z=f(x,y)\)


우선 x, y 2차원 객체부터 정의해 보겠습니다. 아래 인터벌(interval)을 기준으로 0.25 단위로 객체를 생성합니다.

\(0 \le x \le 14\ and\ 0 \le y \le 4\)


GNU Octave에서 아래와 같이 입력합니다.

>> x = 1:0.25:14;
>> y = 0:0.25:4;


위 객체들을 이용하여 가로, 세로 0.25 단위의 평면 그리드 좌표를 생성합니다.

>> [X,Y] = meshgrid(x,y);


이제 아래와 같은 함수를 이용하여 z축 좌표를 생성하고 곡면을 그려줍니다.

\(f(x,y)=sin(x-1)+cos(3y-1)\)

>> Z = sin(X-1)+cos(3*Y-1)
>> surfl(X,Y,Z)
>> colormap(gray)
>> title('A surface')
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> grid on


결과는 아래와 같습니다. colormap() 함수의 전달인자로 다양한 색상 옵션을 설정할 수도 있습니다.

등고선(Contour) 그리기

위 곡면 데이터를 가지고 등고선을 그려 보겠습니다.

>> contour(X,Y,Z)
>> title('Contour of sin(x-1)+cos(3y-1')
>> xlabel('x')
>> ylabel('y')


결과는 아래와 같습니다.


끝.

댓글

이 블로그의 인기 게시물

공압 속도 제어: 미터인 vs 미터아웃

[PLC] PLC 아날로그 입출력 기본

[주식] 한국거래소(KRX) 데이터 API 입문 가이드

[PLC] 절연 변압기 (Isolation Transformer)

[수학] 정규 분포란? 왜 종 모양을 띠고 있을까?

[농사] 식물의 광합성과 호흡

제너 다이오드에 저항을 연결하는 이유

[자동화] 안쓰는 안드로이드폰을 활용한 식물 성장 타임랩스 촬영

[트레이딩] 현재 주가 기준으로 기대수익률은 어떻게 계산할까?

[PLC] 래더 다이어그램과 PLC