hw_1_kim
Visualization 중심의 Octave 학습 예제
ex-recv/01/01-KSG-20250318/hw_1_kim.m
전체 코드
전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.
##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 출력
실행 흐름
- #Octave를 사용하여 데이터를 읽고 쓰고 가공하고 그림으로 그리는 연습을 할 것입니다
- #- 아래 지시에 따라 적당한 입력값과 입력 범위를 결정하세요
핵심 함수/주제
plotsubplottitlexlabelylabellinesx_rangepolyval
실습 과제
- 축 범위와 라벨을 바꿔 그래프 해석성이 어떻게 달라지는지 확인해보세요.
- 핵심 함수 plot의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
- "#Octave를 사용하여 데이터를 읽고 쓰고 가공하고 그림으로 그리는 연습을 할 것입니다 -> #- 아래 지시에 따라 적당한 입력값과 입력 범위를 결정하세요" 흐름을 함수 단위로 분리해 리팩터링해보세요.
학습 팁
- 그래프 비교 시 축 범위(XLim/YLim)와 단위를 먼저 고정하면 해석 오류를 줄일 수 있습니다.
같은 카테고리의 다른 코드
- 수치미분
ex-recv/01/01-CJW-20250321/수치미분.m - main_cjw
ex-recv/01/01-CJW-20250321/main_cjw.m - main-my_diff
ex-recv/01/01-JKH-20250319/main-my_diff.m - hw_1_kim-gpt
ex-recv/01/01-KSG-20250318/hw_1_kim-gpt.m - [Octave] HW#1
ex-recv/01/01-LSH-20250319/[Octave] HW#1.m - Octave_Moon_250319
ex-recv/01/01-MJY-20250319/Octave_Moon_250319.m - Octave01_Park,jm_250319
ex-recv/01/01-PJM-20250319/Octave01_Park,jm_250319.m - [Octave]250318_RYU_poly,dff
ex-recv/01/01-RJW-20250321/[Octave]250318_RYU_poly,dff.m - 과제1_신찬영연구원
ex-recv/01/01-SCY-20250319/과제1_신찬영연구원.m - main_chan_01
ex-recv/01/01-SCY-20250319/main_chan_01.m