16/09/2015
2
Nguyen Quang Hoang
Department of Applied Mechanics
Giải số bằng lệnh ode23
5
Cú pháp lệnh ode23
[t, y] = ode23(
‘funct_name’, [t0:h:t_end], y0)
Giá trị điều kiện đầu
Khoảng thời gian cần giải
t từ t0 đến t_end, với h là
bước thời gian
Tên m-file chứa phương trình vi
phân cần giải
Kết quả tính được ghi vào hai véctơ
t và y chứa các cặp [t(i), y(ti)]
Nguyen Quang Hoang
Department of Applied Mechanics
Ví dụ giải phương trình vi phân thường
6
Ví dụ: sử dụng ode23 giải phương trình vi phân
Trước hết tạo m-file chứa phương trình vi phân cần giải:
cos( )
dy
t
dt
(0) 2
y
với điều kiện đầu
Sử dụng lệnh ode23:
function
ydot = eq1(t,y)
ydot = cos(t);
end
Ghi lại với tên file là tên
hàm eq1.m
Trong khoảng thời gian t = [0 2*pi]
>> [t, y] = ode23(‘eq1’, [0, 2*pi], 2)
Nguyen Quang Hoang
Department of Applied Mechanics
Ví dụ giải phương trình vi phân thường
7
• Vẽ kết quả và so sánh với nghiệm chính xác
>> f = sin(t) + 2;
>> plot(t, f,'k-'), hold on
>> axis([0 2*pi 0 4])
>> plot(t,y,'ko')
>> xlabel('t'),
>> ylabel('y(t)')
0
1
2
3
4
5
6
0
1
2
3
4
t
y(
t)
Nguyen Quang Hoang
Department of Applied Mechanics
Giải số bằng lệnh ode45
8
Cú pháp lệnh ode45
[t, y] = ode45(
‘funct_name’, [t0, t_end], y0)
Giá trị điều kiện đầu
Khoảng thời gian cần giải
t từ t0 đến t_end
Tên m-file chứa phương trình vi
phân cần giải
Kết quả tính được ghi vào hai véctơ
t và y chứa các cặp [t(i), y(ti)]