Octave Atelier

코드와 해설을 함께 읽는 학습 문서

Code Detail

hw_1_kim

Visualization 중심의 Octave 학습 예제

ex-recv/01/01-KSG-20250318/hw_1_kim.m

목록으로

코드를 복사해 Octave에서 바로 실행할 수 있습니다.

카테고리

Submission Archive

submission

코드 길이

75

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load

전체 코드

75 lines

##Octave를 사용하여 데이터를 읽고 쓰고 가공하고 그림으로 그리는 연습을 할 것입니다.
##
##- 이번 주에는 다항식을 대상으로 미분과 차분을 구하고 플로팅합니다.
##- 아래 지시에 따라 적당한 입력값과 입력 범위를 결정하세요.
##- 연구원들은 Octave .m 파일을 작성하여 이메일 <sunggyu.won@ecoe.kr>로 전송하세요.
##- 제목에 [Octave] 포함해주세요.
##- 제출 기간: 2025-03-18 ~ 2025-03-24

##   1. 다항식을 하나 정의하라. (poly)
##   2. 정의역과 공역을 정하라. (xlim, ylim)
##   3. 다항식의 곡선을 그려라. (polyval)
##   4. 다항식의 미분을 구하고  그 곡선을 그려라. (polyder)
##   5. 차분의 정의에 의해 차분 곡선을 그려라.
##   6. 차분을 계산하는 함수를 사용하여 차분 곡선을 그려라. (diff)
##   7. 모든 곡선을 하나의 축에 그려라.

clc; clear; clf

r = [-1 1]; % 다항식 근 정의

% 1
p = poly(r);

% 2
dx = dy = 0.1;
x_range = -2:dx:2;
y_range = -2:dy:2;

figure(1)

% 3
y = polyval(p,x_range);
subplot(2,4,1)
plot(x_range,y,'color',lines(7)(1,:))
grid on
xlabel('x'); ylabel('y')
title('Ex. 3')

% 4
q = polyder(p);
y_p = polyval(q,x_range);
subplot(2,4,2)
plot(x_range,y_p,'color',lines(7)(2,:))
grid on
xlabel('x'); ylabel('y')
title('Ex. 4')

% 5
for ii = 1:length(y) - 1
    dy_dx(ii) = (y(ii+1) - y(ii)) / dx;
end
subplot(2,4,3)
plot(x_range(1:end-1),dy_dx,'color',lines(7)(3,:))
grid on
xlabel('x'); ylabel('y')
title('Ex. 5')

% 6
diff_y = diff(y)/dx;
subplot(2,4,4)
plot(x_range(1:end-1),diff_y,'color',lines(7)(4,:))
grid on
xlabel('x'); ylabel('y')
title('Ex. 6')

% 7
subplot(2,4,5:8)
plot(x_range,y);hold on
plot(x_range,y_p)
plot(x_range(1:end-1),dy_dx)
plot(x_range(1:end-1),diff_y)
grid on
xlabel('x'); ylabel('y')
title('Ex. 7')

코드 해설

목적

  • Visualization 중심의 Octave 학습 예제

입력

  • 스크립트 상단에서 정의한 파라미터/입력 데이터를 사용합니다.

출력

  • 그래프/figure 출력

실행 흐름

  1. #Octave를 사용하여 데이터를 읽고 쓰고 가공하고 그림으로 그리는 연습을 할 것입니다
  2. #- 아래 지시에 따라 적당한 입력값과 입력 범위를 결정하세요

핵심 함수

  • plot
  • subplot
  • title
  • xlabel
  • ylabel
  • lines
  • x_range
  • polyval

실습 과제

  • 축 범위와 라벨을 바꿔 그래프 해석성이 어떻게 달라지는지 확인해보세요.
  • 핵심 함수 plot의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
  • "#Octave를 사용하여 데이터를 읽고 쓰고 가공하고 그림으로 그리는 연습을 할 것입니다 -> #- 아래 지시에 따라 적당한 입력값과 입력 범위를 결정하세요" 흐름을 함수 단위로 분리해 리팩터링해보세요.

학습 팁

  • 그래프 비교 시 축 범위(XLim/YLim)와 단위를 먼저 고정하면 해석 오류를 줄일 수 있습니다.

같은 카테고리 코드

이전 코드 hw_1_kim-gpt 다음 코드 [Octave] HW#1