728x90
Laplace 변환은 공학자들에게 기본적으로 중요하다. 상미분방정식의 풀이 과정을 대수적 문제의 풀이 과정으로 단순화 한다는 장점이 있다. Laplace 변환의 공식은
Laplace 변환의 장점은 첫째, 상미분방정식을 풀 때 일차적인 일반해를 구할 필요 없이 초기값 문제를 풀이할 수 있다. 두번째, 시스템에 가해지는 구동력이 불연속적이거나, 순간적인 충격량, 복잡한 주기함수를 가질 때 유용하다.
2계 비제차 상미분방정식을 Laplace 변환을 통해 풀어보자!
초기값 조건은 y(0) = 1, y'(0) = 1 이다.
1. 함수 설정 및 수식 세우기
% Laplace transform and Solving ODE
% Declare Variable
syms y(t) s
% Declare Equations
ode = diff(y,t,2) - y == t;
Dy = diff(y); % 초기값을 위해 정의
2. 상미분방정식 전체(양변)에 라플라스 변환
% Compute the Laplace transform of eqn
eqn = laplace(ode, t, s); % t의 함수에서 s의 함수로 변환
이때, eqn 안에는
s^2*laplace(y(t), t, s) - s*y(0) - subs(diff(y(t), t), t, 0) - laplace(y(t), t, s) == 1/s^2 이 들어 있다.
matlab 안에 'solve' 함수는 symbolic (sym) 변수에만 작동하므로 laplace(y(t), t, s) 을 Y_LT 로 대체하자!
'subs' 함수는 어떠한 식 안에 값을 치환 시켜주는 함수이다.
% Since 'solve' function only works for symbolic variables
% substitute laplace with variables
syms Y_LT
eqnLT = subs(eqnLT, [laplace(y(t),t,s)], Y_LT);
3. 라플라스 변환이 이루어진 함수 구하기 위해서 eqnLT 를 Y_LT ( y(t)를 라플라스 변환시킨 함수 ) 에 대해서 푼다.
Y_LT를 구한 후에는 다시 역변환을 통해 주어진 2계 상미분방정식의 일반해를 구한다.
vars = Y_LT; % 상미분방정식을 vars, 즉 Y_LT 에 대해 풀어주기 위해 설정
% Solve
Y_LT = solve(eqnLT, vars);
Ysol = ilaplace(Y_LT, s, t);
% 식이 길 수 있으니, 간략화 시키기 위해 'simplify'를 쓰자
Ysol = simplify(Ysol);
4. 초기값 조건을 사용해준다.
현재 Ysol 에는
exp(t)*(y(0)/2 + subs(diff(y(t), t), t, 0)/2 + 1/2) - t - exp(-t)*(subs(diff(y(t), t), t, 0)/2 - y(0)/2 + 1/2) 가 들어 있다.
아까 subs 를 통해 치환했던 것처럼 이번에는 초기값 조건을 이용하여 y(0) 과 diff(y(t),t) ( = Dy ) 을 1 과 1 로 각각 바꾼다.
% Initial Conditions
vars = [y(0) Dy(0)];
values = [1 1];
Ysol = subs(Ysol, vars, values);
Ysol 은
5. 그래프 그리기
% Plot Results
fplot(Ysol, [0 3])
title('Plot')
6. 결과 분석. 구한 해의 항들을 따로따로 그래프를 그려서 각 항들의 영향력을 분석해보자!
% Analyze Results
Yterms = children(Y1sol);
Yterms = [Yterms{:}]; % put all of them together
fplot(Yterms, [0 3])
title('Analyze')
가장 높이 올라가는 노란색 곡선이
임을 직관적으로 알 수 있다. 이상으로 풀이를 마친다!
'Computer Science > Matlab(수학)' 카테고리의 다른 글
매트랩 [2계 상미분방정식] 라플라스 변환과 합성곱 (Laplace Transform and Convolution) (0) | 2023.03.05 |
---|---|
매트랩 [2계 상미분방정식] 라플라스 변환-단위계단함수 (Laplace Transform-Heaviside Function) (0) | 2023.02.27 |
매트랩 [2계 상미분방정식]의 연립 방정식으로의 변환 (수치적, 해석적 풀이) (0) | 2023.02.16 |
매트랩 [2계 상미분방정식] 초기값 문제. 용수철 운동 그래프 그리기. (0) | 2023.02.08 |
매트랩 [1계 상미분방정식] 초기값 문제. 기울기 벡터장 그리기. (0) | 2023.02.05 |