Octave Atelier

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

Code Detail

Octave_Moon_250319

Visualization 중심의 Octave 학습 예제

ex-recv/01/01-MJY-20250319/Octave_Moon_250319.m

목록으로

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

카테고리

Submission Archive

submission

코드 길이

59

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load

전체 코드

59 lines

clc;clear

% 1. 다항식을 하나 정의하라. (poly)
% f(x) = 3x^3 - 3x^2 + 2x + 2)
p = [3 -3 2 2];
## p_poly = poly([3 -3 2 2]); → 3,-3,2,2의 근을 가지고 있는 다항식

% 2. 정의역과 공역을 정하라. (xlim, ylim)
x = 0:0.5:100;
y = polyval(p, x);

% 3. 다항식의 곡선을 그려라. (polyval)
figure(1)
plot(x, y, '-', 'Color', 'k', 'LineWidth', 2); hold on
legend('기존 다항식');xlabel('x'); ylabel('f(x)');
grid on;
hold off

% 4. 다항식의 미분을 구하고  그 곡선을 그려라. (polyder)
p_polyder = polyder(p); % polyder: 연속적인 미분
y_polyder = polyval(p_polyder, x);

figure(2)
plot(x, y_polyder, '-', 'Color', 'b', 'LineWidth', 2); hold on
legend('미분');xlabel('x'); ylabel('f(x)');
grid on;
hold off

% 5. 차분의 정의에 의해 차분 곡선을 그려라.
dx = x(2) - x(1);
y_diff_definition = diff(y) / dx; % 미분 근사(수치 미분) % diff:비연속성
x_decrease = x(1:length(x)-1); % 차분 시, x의 개수 감소

figure(3)
plot(x_decrease, y_diff_definition, '-', 'Color', 'r', 'LineWidth', 2); hold on
legend('차분 정의');xlabel('x'); ylabel('f(x)');
grid on;
hold off

% 6. 차분을 계산하는 함수를 사용하여 차분 곡선을 그려라. (diff)
y_diff = diff(y); % 단순 차분(단순 변화량)

figure(4)
plot(x_decrease, y_diff, '-', 'Color', 'g', 'LineWidth', 2); hold on
legend('차분');xlabel('x'); ylabel('f(x)');
grid on;
hold off

% 7. 모든 곡선을 하나의 축에 그려라.
figure(5)
plot(x, y, '-', 'Color', 'k', 'LineWidth', 2); hold on
plot(x, y_polyder, '-', 'Color', 'b', 'LineWidth', 2); hold on
plot(x_decrease, y_diff_definition, '-', 'Color', 'r', 'LineWidth', 2); hold on
plot(x_decrease, y_diff, '-', 'Color', 'g', 'LineWidth', 2); hold on
legend('기존 다항식', '미분', '차분 정의', '차분');
xlabel('x'); ylabel('f(x)');
grid on;
hold off;

코드 해설

목적

  • Visualization 중심의 Octave 학습 예제

입력

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

출력

  • 그래프/figure 출력

실행 흐름

  1. 핵심 연산
  2. 시각화

핵심 함수

  • plot
  • figure
  • legend
  • xlabel
  • ylabel
  • diff
  • polyval
  • length

실습 과제

  • 축 범위와 라벨을 바꿔 그래프 해석성이 어떻게 달라지는지 확인해보세요.
  • 핵심 함수 plot의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
  • "핵심 연산 -> 시각화" 흐름을 함수 단위로 분리해 리팩터링해보세요.

학습 팁

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

같은 카테고리 코드

이전 코드 [Octave] HW#1 다음 코드 Octave01_Park,jm_250319