ex-optim
Signal Processing + Control & Dynamics 중심의 Octave 학습 예제
ex-pkg/ex-optim.m
전체 코드
전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.
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 출력
- 콘솔 텍스트 출력
실행 흐름
- 결과 출력
- 그래프 그리기
- 다항식 or not -> 삼각함수 (FFT)
핵심 함수/주제
fmtprintffiguredfminunclinspaceplotplotdrun
실습 과제
- 샘플링 주파수나 입력 주파수를 바꿔 스펙트럼 변화를 비교해보세요.
- 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
- 초기값을 2~3개 바꿔 최적해 수렴 차이를 기록해보세요.
학습 팁
- FFT 결과는 샘플링 주파수(fs)와 길이(nn) 설정에 민감하므로 먼저 축 정의를 확인하세요.
- 그래프 비교 시 축 범위(XLim/YLim)와 단위를 먼저 고정하면 해석 오류를 줄일 수 있습니다.
- 입력 파일 경로가 현재 작업 디렉터리 기준인지 먼저 확인하세요.
같은 카테고리의 다른 코드
- ex-cms
ex-pkg/ex-cms.m - ex-control
ex-pkg/ex-control.m - ex-fmt
ex-pkg/ex-fmt.m - ex-fstring
ex-pkg/ex-fstring.m - ex-image
ex-pkg/ex-image.m - ex-io
ex-pkg/ex-io.m - ex-signal
ex-pkg/ex-signal.m - ex-statistics
ex-pkg/ex-statistics.m - ex-symbolic
ex-pkg/ex-symbolic.m - fmtf
ex-pkg/fmtf.m