16/09/2015
3
Nguyen Quang Hoang
Department of Applied Mechanics
Giải số bằng lệnh ode45
9
Ví dụ: sử dụng ode45 giải phương trình vi phân
với điều kiện đầu
Trong khoảng thời gian t = [0 30]
5
5 ( )
dy
y
F t
dt
/
( )
cos( )
t tc
F t
te
t
(0)
0
y
0.1,
10
tc
function
ydot = eq2(t,y)
tc = 0.1; w = 10;
Ft = t*exp(-t/
tc
)*cos(
w
*t);
ydot = -5*y + 5*Ft;
end
Ghi lại với tên
file là tên
hàm eq2.m
>> [t, y] = ode45(‘eq2’, [0, 30], 0);
>> % [t, y] = ode45(‘eq2’, [0:0.01:30], 0);
>> plot(t,y)
Nguyen Quang Hoang
Department of Applied Mechanics
Giải số bằng lệnh ode23
10
>> [t, y2] = ode45(‘eq1’, [0:0.01:30], 0);
>> plot(t,y2)
y2(t)
y(t)
Nguyen Quang Hoang
Department of Applied Mechanics
Giải số bằng lệnh ode45
11
Ví dụ: sử dụng ode45 giải phương trình vi phân
với điều kiện đầu
Trong khoảng thời gian t = [0 30]
5
5 ( )
dy
y
F t
dt
/
( )
cos( )
t tc
F t
te
t
(0)
0
y
0.1,
10
tc
function
ydot = odevidu3(t,y,
tc, w
)
Ft = t*exp(-t/
tc
)*cos(
w
*t);
ydot = -5*y + 5*Ft;
end
Ghi lại với tên
file là tên hàm
odevidu3.m
>> [t,y] = ode45
(@(t,y)
odevidu3(t,y,
0.1, 10
), [0:
0.01
:30], 0);
>> plot(t,y)
Nguyen Quang Hoang
Department of Applied Mechanics
Hệ phương trình vi phân cấp 1
12
1
1
1
1
2
2
2
1
1
( , ,..., )
( , ,..., )
...
( , ,..., )
n
n
n
n
n
n
dy
y
f t y
y
dt
dy
y
f t y
y
dt
dy
y
f t y
y
dt
1
10
2
20
0
(0)
(0)
...
(0)
n
n
y
y
y
y
y
y
Hệ n phương trình vi phân cấp 1.
Các điều kiện đầu
Hay viết ở dạng véc tơ
0
1
2
1
2
( , ),
(0)
[ , ,...,
] ,
[ , ,..., ]
T
T
n
n
d
t
dt
y y
y
f f
f
y
y
f
y
y
y
y
f