BÀI GIẢNG MATLAB - Trang 137

133

6.2

Giải các phương trình vi phân bậc hai

Trong phần này sẽ trình bày việc sử dụng các lệnh ode23 và ode45 của Matlab ñể
giải các phương trình vi phân bậc cao hay hệ phương trình vi phân bậc một. ðối
với một phương trình vi phân bậc cao, chẳng hạn cấp hai

2

2

( , ,

)

d y

dy

f t y

dt

dt

=

ta luôn có thể được biến đổi thành hệ hai phương trình vi phân cấp 1. Bằng cách
đặt

1

1

2

,

dy

dy

y

y

y

dt

dt

=

=

ta nhận được các phương trình vi phân bậc nhất tương đương là

1

2

2

1

2

,

( , , )

dy

dy

y

f t y y

dt

dt

=

=

Nghiệm của phương trình này cần hai điều kiện đầu

1

1

2

2

( )

,

( )

o

o

o

o

y t

y

y t

y

=

=

.

Trước hết xét việc giải hệ hai phương trình vi phân cấp một sau

2

,

dx

dy

x

y

x

xy

dt

dt

= −

+

= − −

với các điều kiện đầu

(0)

0, (0)

1

x

y

=

=

. Vẽ đồ thị các kết quả nhận được

( ), ( )

x t y t

và đồ thị quỹ đạo pha

( , )

x y

.

Để giải hệ trên bằng ode45, ta viết một m-file thể hiện vế phải của hệ trên, ở đây ñể
thuận tiện cho việc biểu diễn véctơ, ta đặt

2

1

2

1

2

1

2

1

1 2

,

,

dx

dx

x

x x

y

x

x

x

x x

dt

dt

=

=

= −

+

= −

và m-file được viết như sau:

function xdot = eqx(t,x);
xdot = zeros(2,1);
xdot(1) = -x(1)^2 + x(2);
xdot(2) = -x(1) - x(1)* x(2);
% save with file name eqx.m

Dòng lệnh Matlab sau sẽ giải hệ trong khoảng thời gian từ 0 ñến 10 s:

>> [t,x] = ode45('eqx',[0 10],[0,1]);

Nghiệm cần tìm x được ghi lại bằng hai véctơ cột, cột thứ nhất x1 = x(:,1) và cột
thứ hai x2 = x(:,2). Với lệnh vẽ

>> plot(t,x(:,1),t,x(:,2),'--'),xlabel('t'),

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.