16/09/2015
6
Nguyen Quang Hoang
Department of Applied Mechanics
Giải hệ phương trình vi phân cấp 1
21
16
sin(4.3 )
y
y
t
(0)
0, (0)
0
y
y
1
2
,
x
y x
y
1
2
2
1
sin(4.3 ) 16
x
x
x
t
x
Ví dụ dưới đây trình bày việc giải phương trình vi phân bậc hai. Hãy tìm
nghiệm của phương trình vi phân sau
điều kiện đầu
Bằng cách đặt
ta nhận được hệ hai ptvp cấp một
Vế phải của hệ trên được thể hiện trong một m-file như sau:
( , )
t
x
f
x
function
xdot = eqx2(t,x);
xdot = zeros(2,1);
xdot(1) = x(2);
xdot(2) = sin(4.3*t)–16*x(1);
end
% save with file name eqx2.m
Nguyen Quang Hoang
Department of Applied Mechanics
Giải hệ phương trình vi phân cấp 1
22
>> [t,x] = ode45('eqx2',[0 2*pi],[0,0]);
>> plot(t,x(:,1),t,x(:,2),'--'), xlabel('t'),
>> axis([0 2*pi
–3 3])
0
1
2
3
4
5
6
-3
-2
-1
0
1
2
3
t
x
1
x
2
- 0.6
- 0.4
- 0.2
0
0.2
0.4
0.6
- 3
- 2
- 1
0
1
2
3
x
1
x
2
>> plot(x(:,1), x(:,2),'k-'),
>> xlabel('x_1'), ylabel('x_2‘)
Nguyen Quang Hoang
Department of Applied Mechanics
Giải hệ phương trình vi phân cấp 1
23
>> [t,x] = ode45('eqx2',[4*pi 20*pi],[0,0]);
>> plot(t,x(:,1)),xlabel('t')
10
20
30
40
50
60
70
- 1
- 0.5
0
0.5
1
t
Nguyen Quang Hoang
Department of Applied Mechanics
Giải hệ phương trình vi phân cấp 1
24
TT
Lệnh
solver
Dạng bài
toán
Độ chính
xác
Trường hợp áp dụng
1
ode45
không cứng
(nonstiff)
trung bình Hay được sử dụng, là sự lựa chọn
đầu tiên (sử dụng công thức R-K45)
2
ode23
không cứng
(nonstiff)
thấp
Sử dụng khi không cần độ chính xác
cao, hoặc khi giải bài toán cứng vừa
phải. (sdụng công thức R-K23)
3
ode113
không cứng
(nonstiff)
thấp
đến
cao
(sử dụng công thức Adams-
Bashforth-Moulton)
4
ode15
s
cứng
(stiff)
thấp
đến
trung bình
sử dụng khi ode45 cho độ chính xác
không cao do bài toán cứng