Intuition Concept
์ปดํจํฐ๋ ์ด์ฐ์ ์ธ ๊ฐ์์ ์๋ํ๋ ๊ธฐ๊ณ์ ๋๋ค.ย
์ฐ๋ฆฌ์ ์ ์ ์ธ๊ณ์์ ์ด์์ ์ธ ์ ์ ์กด์ฌํ ์ ์์ง๋ง ํ์ค์์๋ ๊ฐ์ฐ์ ์ธ ์ ์ ์งํฉ์ด ๊ฒฐ๊ตญ ์ ์ด๊ฒ ์ฃ .ย
์ฐ์์ ์ธ ์ธ๊ณ์์ ์ ์๋ ํด์์ ๋ฏธ๋ถ๋ฐฉ์ ์์ ํ์ด ๋ฐฉ๋ฒ์ ์ปดํจํฐ์์ ์ ์ฉํ ์ ์์ต๋๋ค.ย
๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ด์ฐ์ ์ธ ์ธ๊ณ์์ ๋ฏธ๋ถ๋ฐฉ์ ์์ ํด๋ฅผ ๊ฒ์ถํ ์ ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
ODE์ ํ์ด๋ ์๋ตํ๊ณ ๋ฏธ๋ถ๋ฐฉ์ ์์ ๊ผด์์ ๋ถํฐ ์๊ฐํด๋ณด์์.
(c = ํญ๋ ฅ๊ณ์)
๋จ์ด์ง๋ ๋ฌผ์ฒด๊ฐ ์์ ๋, ์ข
๋จ์๋์ ๊ดํ ๋ฏธ๋ถ ๋ฐฉ์ ์์
๋๋ค.
์ง๊ด์ ์ผ๋ก ๋ณด๋ฉด LHS = ๊ฐ์๋(์๋์ ๋ณํ)๋,
RHS = ๋จ์ด์ง๋ ์ค๋ ฅ์ ๊ฐ์๋ - ํญ๋ ฅ๊ณ์ * ์๋ ๋ก ์ดํดํ ์ ์์ต๋๋ค.
์ด ๋, LHS๋ ์๋์ ํจ์๋ผ๊ณ ๋ณผ ์ ์๊ฒ ๋ค์.
์ฌ๊ธฐ์ Slope๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ฆฌํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Function
์ ๋ถ์ ๊ทผ์ฌ๋ฐฉ๋ฒ์ด ๊ต์ฅํ ๋ง์๋ฏ์ด ODE๋ ๊ทผ๋ณธ์ ์ผ๋ก ๊ทผ์ฌํ๋ ๋ฐฉ๋ฒ์ด๊ธฐ์ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ODE ๊ทผ์ฌํจ์๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ฐ์ดํธ ๋ฐฉ์์ผ๋ก ๊ฐ์ ์ป์ด๋ด๊ธฐ ๋๋ฌธ์ ๊ฒฝ๊ณ์กฐ๊ฑด์ด ํ์ํฉ๋๋ค.ย
์ด ๋ถ๋ถ์ ํด์์ ์ผ๋ก ํ๋๋ผ๋ ํด์ ์ ์ผ์ฑ์ ํ๋จํ๊ธฐ ์ํด ํ์ํ ๋ถ๋ถ์ ๋๋ค.
Solve the ODE [t y] = solver_name(ODEfunc,๊ตฌํ t์๋ฒ์,y0) (where y0 at t0)
Example1
1 < t < 3
์ ๋ฒ์๋ด์์ ๋ค์์ ํ์ด๋ผ. (B.C y = 4.2 at t = 1
)
์์ ์๋ฆฌ๋ฅผ ๋ง์กฑํ๋ ํจ์๋ฅผ ๋ง๋ค์ด๋ณด์.
๊ทธ๋ฆฌ๊ณ ์คํํด๋ณด์.
ODE45๋ก๋ ํ์ด๋ณด์.
๊ฐ๊ฒ ๊ทธ๋ ค์ง๋ ๊ฒ์ ์ ์ ์๋ค.
Example2
x์ v์์ ๊ด๊ณ๋ฅผ ์ํ๋ฏ๋ก ์ฝ๊ฐ์ ์กฐ์์ ๊ฐํ๋ค.
K = 30
m = 1500
v0 = 90*1000/3600
% ๋จ์ ๋ณํ
dvdx = @(x,v)(-1)*(K/m)*(v^2)*(x+1)^3
range_x = [0:0.001:3]
[x, v] = ode45(dvdx,range_x,v0)
plot(x,v)
xlabel('x')
ylabel('v')