Octave Atelier

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

Code Detail

ex-optim

Signal Processing + Control & Dynamics 중심의 Octave 학습 예제

ex-pkg/ex-optim.m

목록으로

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

카테고리

Package Drill

package-drill

코드 길이

39

lines

작성자

-

날짜 정보 없음

패키지

optim

pkg load

전체 코드

39 lines

run("../startup.m")
pkg load optim

% 예제 1: 함수 f(x) = (x-3)^2 + 2를 최소화

% f(x) 함수 정의
f = @(x) (x - 3).^2 + 2;

% 초기 추정값
x0 = 0;

% 최적화 함수 사용 (fminunc를 이용한 최소화)
[x_opt, f_opt] = fminunc(f, x0);

% 결과 출력
printf(fmt("  x_opt  = {x_opt}\n"))
printf(fmt("f(x_opt) = {f_opt}\n"))

% 그래프 그리기
x = linspace(-5, 10, 100);
y = f(x);

param_f = {"Size", [1280, 720], "Name", "Optimization"};
param_a = {
    "Xlim", [-5, 10], ...
    "XLabel", "x", "Ylabel", "f(x)", ...
    "Title", "함수 f(x) = (x-3)^2 + 2 최소화", ...
};
figured(param_f);
subplots(param_a);
plotd(x, y);
plot(x_opt, f_opt, 'ro')  % 최적화된 점


# 다항식 or not -> 삼각함수 (FFT)
# 삼각함수 or not -> 다항식 (Taylor)

코드 해설

목적

  • Signal Processing + Control & Dynamics 중심의 Octave 학습 예제

입력

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

출력

  • 그래프/figure 출력
  • 콘솔 텍스트 출력

실행 흐름

  1. 결과 출력
  2. 그래프 그리기
  3. 다항식 or not -> 삼각함수 (FFT)

핵심 함수

  • fmt
  • printf
  • figured
  • fminunc
  • linspace
  • plot
  • plotd
  • run

실습 과제

  • 샘플링 주파수나 입력 주파수를 바꿔 스펙트럼 변화를 비교해보세요.
  • 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
  • 초기값을 2~3개 바꿔 최적해 수렴 차이를 기록해보세요.

학습 팁

  • FFT 결과는 샘플링 주파수(fs)와 길이(nn) 설정에 민감하므로 먼저 축 정의를 확인하세요.
  • 그래프 비교 시 축 범위(XLim/YLim)와 단위를 먼저 고정하면 해석 오류를 줄일 수 있습니다.
  • 입력 파일 경로가 현재 작업 디렉터리 기준인지 먼저 확인하세요.

같은 카테고리 코드

이전 코드 ex-io 다음 코드 ex-signal