Tải bản đầy đủ (.pdf) (0 trang)

Một số thuật toán runge kutta với bước lưới thay đổi giải một lớp phương trình vi phân đại số

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (492.68 KB, 0 trang )

Mục lục
1

Giới thiệu

13

1.1

Phương trình vi phân đại số . . . . . . . . . . . . . . . . . . . . . .

13

1.1.1

Khái niệm và phân loại phương trình vi phân đại số . . . .

13

1.1.2

Chỉ số của phương trình vi phân đại số . . . . . . . . . . .

15

Phương pháp Runge-Kutta cho phương trình vi phân thường . .

18

1.2.1


Phương pháp Runge-Kutta tổng quát . . . . . . . . . . . .

19

1.2.2

Sự hội tụ và tính ổn định của phương pháp Runge-Kutta .

20

Đánh giá sai số và lựa chọn bước đi bằng phương pháp nhúng . .

21

1.3.1

Ý tưởng của phương pháp nhúng RK . . . . . . . . . . . .

21

1.3.2

Phương pháp nhúng RK . . . . . . . . . . . . . . . . . . . .

22

1.2

1.3


2

Phương pháp Runge-Kutta nửa hiện giải phương trình vi phân đại số

25

2.1

Trường hợp phương trình vi phân đại số dạng nửa hiện chỉ số 1 .

25

2.2

Trường hợp phương trình vi phân đại số khơng có tính lạ . . . . .

27

2.2.1

Phân tích bài tốn . . . . . . . . . . . . . . . . . . . . . . . .

28

2.2.2

Phương pháp Runge-Kutta nửa hiện . . . . . . . . . . . . .

30


2.3

Trường hợp phương trình vi phân đại số khơng có tính lạ và có
cấu trúc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

2.3.1

Phân tích cấu trúc của bài toán . . . . . . . . . . . . . . . .

35

2.3.2

Sự phụ thuộc của nghiệm vào dữ liệu . . . . . . . . . . . .

37

2.3.3

Rời rạc hóa bằng phương pháp Runge-Kutta nửa hiện . . .

39

2.3.4

Sự hội tụ của phương pháp Runge-Kutta nửa hiện . . . . .

42


4


2.3.5

Tính ổn định tuyệt đối của phương pháp Runge-Kutta nửa
hiện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

44

Phương pháp Runge-Kutta với bước lưới thay đổi giải phương trình vi
phân đại số

48

3.1

Phương pháp nhúng . . . . . . . . . . . . . . . . . . . . . . . . . .

48

3.1.1

Phương trình vi phân đại số khơng có tính lạ . . . . . . . .

50


3.1.2

Phương trình vi phân đại số khơng có tính lạ và có cấu trúc

51

3.2

Thử nghiệm số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

Kết luận

65

Tài liệu tham khảo

66

5


DANH MỤC KÝ HIỆU
N

Tập hợp số tự nhiên

R


Tập số thực

C

Tập số phức

I

Đoạn [0, T ] ⊂ R

Rm , (Cm )

Không gian véc tơ m chiều trên R, (C)

Rm1 ,m2

Không gian ma trận thực cỡ m1 × m2

C p (I, Rm )

Không gian các hàm véc tơ m chiều khả vi liên tục cấp p

C p (I, Rm1 ,m2 )

Không gian các hàm ma trận cỡ m1 × m2 khả vi liên tục cấp p

Ik

Ma trận đơn vị cấp k


rank( A)

Hạng của ma trận A

Const

Hằng số nào đó

O(hk )


Vơ cùng bé cùng bậc với hk
Điều phải chứng minh

6


DANH MỤC VIẾT TẮT

BTGTBĐ

Bài tốn giá trị ban đầu

ƠĐTĐ

Ổn định tuyệt đối

PTVPT

Phương trình vi phân thường


PTVPĐS

Phương trình vi phân đại số

RK

Phương pháp Runge-Kutta

HERK

Phương pháp Runge-Kutta nửa hiện (Half explicit Runge-Kutta)

IRK

Phương pháp Runge-Kutta ẩn (Implicit Runge-Kutta)

HEOL

Phương pháp một chân nửa hiện (Half explicit One - leg )

HELM

Phương pháp đa bước nửa hiện (Half explicit linear multistep)

7


LỜI MỞ ĐẦU
Trong thực tế, chúng ta gặp rất nhiều bài toán trong các lĩnh vực khoa học kĩ

thuật như cơ học, hóa học, hệ mạch điện, lý thuyết điều khiển, động lực học chất
lỏng, v.v. được mơ hình hóa dưới dạng một hệ hỗn hợp các phương trình vi phân
kết hợp với các ràng buộc đại số. Các hệ đó được gọi là phương trình vi phân
đại số (PTVPĐS, DAEs). PTVPĐS có dạng tổng quát
F (t, x, x 0 ) = 0,

(0.0.1)

trong đó t ∈ I = [0, T ], F : I × Rm × Rm → Rn , m, n ∈ N. Nếu ma trận Jacobi
của F theo x 0 không suy biến, theo định lý hàm ẩn, từ phương trình (0.0.1) ta có
thể giải được x 0 = f (t, x ), đây chính là dạng của phương trình vi phân thường
(PTVPT). Trong trường hợp tổng quát, ma trận Jacobi của F theo x 0 có thể suy
biến. Khi đó, chúng ta có một PTVPĐS, hay cịn gọi là phương trình vi phân ẩn.
Ví dụ 0.0.1. [5, Example 1.3 ]Xét một con lắc đơn có khối lượng m và chiều dài l. Đặt
hệ trục tọa độ Đề các Oxy như hình vẽ:

Hình 1: Con lắc đơn


Động năng và thế năng của con lắc là T = 21 m x 02 + y02 , U = mgy, g là gia tốc
trọng trường, với ràng buộc x2 + y2 − l 2 = 0, ta có hàm Lagrange


L = 12 m x 02 + y02 − mgy − λ x2 + y2 − l 2 ,
8


với tham số Lagrange λ. Phương trình chuyển động của con lắc có dạng
 
∂L

d ∂L

,
0
dt ∂q
∂q
với biến q = x, y, λ, nghĩa là ta có:
mx 00 + 2λx = 0,
my00 + mg + 2λy = 0,

(0.0.2)

x2 + y2 − l 2 = 0.
Bằng cách đặt biến mới u = x 0 ,

v = y0 , phương trình (0.0.2) trở thành
x 0 − u = 0,
y0 − v = 0,
mu0 + 2λx = 0,

(0.0.3)

mv0 + mg + 2λy = 0,
x2 + y2 − l 2 = 0.
Đây chính là một PTVPĐS có chỉ số 3 với các biến là x, y, u, v, λ.
Giả sử, ta đi giải bài toán giá trị ban đầu (BTGTBĐ) (0.0.1) với điều kiện đầu
x (0) = x0 , x0 ∈ Rm . Sự tồn tại và duy nhất nghiệm của BTGTBĐ (0.0.1) phụ
thuộc vào điều kiện ban đầu x0 .
Trong ví dụ (0.0.1) để hệ (0.0.3) có nghiệm thì điều kiện ít nhất ta cần có là
x02 + y20 = l02 . Khơng những vậy, điều kiện ban đầu của PTVPĐS cịn có thể liên

quan đến đạo hàm của các ràng buộc tại thời điểm ban đầu, xem [3].
Các PTVPĐS xuất hiện từ các bài toán thực tế thường là các hệ rất phức tạp,
khơng có hy vọng giải đúng, trong khi nhiều trường hợp chúng ta chỉ cần biết
thông tin về nghiệm số hoặc nghiệm gần đúng với mức độ chính xác nhất định
nào đó.
Việc nghiên cứu giải số cho PTVPT đã phát triển từ lâu, trong khi việc nghiên
cứu lý thuyết và các phương pháp số của PTVPĐS mới phát triển mạnh trong
khoảng hơn 30 năm trở lại đây. Các phương pháp số cho PTVPĐS đều được mở
9


rộng từ các phương pháp số cho PTVPT. Tuy nhiên, có nhiều ví dụ cho thấy các
phương pháp quen thuộc giải PTVPT khi áp dụng cho PTVPĐS gặp những khó
khăn như: lời giải số khơng ổn định hoặc thậm chí khơng tồn tại, xảy ra hiện
tượng giảm cấp chính xác, v.v. Trong những năm cuối thế kỉ 20 đầu thế kỉ 21,
các nghiên cứu tập trung vào PTVPĐS dạng ẩn. Nhóm tác giả P. Kunkel và V.
Mehrmann đã có những nghiên cứu một cách có hệ thống các PTVPĐS dạng

(0.0.1) có chỉ số tùy ý. Các tác giả đã nghiên cứu chỉ số lạ của bài toán và đề xuất
các thuật toán đưa bài toán PTVPĐS dạng (0.0.1) về dạng chính tắc khơng có
tính lạ, sau đó áp dụng các cơng thức rời rạc hóa để thu được nghiệm số của bài
toán (0.0.1).
Gần đây, lớp các PTVPĐS đang thu hút sự quan tâm của các nhà toán học là
các PTVPĐS ẩn khơng có tính lạ có dạng
f (t, x, x 0 ) = 0,
g(t, x ) = 0, ∀t ∈ [t0 , T ].

(0.0.4)

Khơng mất tính tổng qt, ta có thể giả sử t0 = 0 và f : I × Rm × Rm → Rm1 ,

g : I × Rm → Rm2 , (m = m1 + m2 ) là các hàm đủ trơn và có các đạo hàm riêng
bị chặn và thỏa mãn


f x0 (t, x, x 0 )
gx (t, x )

không suy biến dọc theo nghiệm x(t).

(0.0.5)

Tác giả V.H. Linh và V. Mehrmann [7] đã nghiên cứu tính chất của bài tốn

(0.0.4) và đề xuất các phương pháp một chân nửa hiện (HEOL), phương pháp
đa bước nửa hiện (HELM), phương pháp Runge-Kutta nửa hiện (HERK) để giải
hiệu quả các PTVPĐS (0.0.4) khơng có tính cương.
Khi nghiên cứu một lớp PTVPĐS có cấu trúc dạng
f (t, x, E(t) x 0 ) = 0,

(0.0.6)

g(t, x ) = 0,
trên đoạn [0, T ], trong đó E ∈ C1 (I, Rm1 ,m ) và các hàm f = f (t, u, v) : I × Rm ×
Rm1 → Rm1 , g = g(t, u) : I × Rm → Rm2 , (m, m1 , m2 ∈ N, m = m1 + m2 ) đủ trơn
10


và có các đạo hàm riêng bị chặn. Giả sử BTGTBĐ có nghiệm duy nhất x (t) và
h
i

fv E
khơng suy biến dọc theo nghiệm x(t).
(0.0.7)
g
u

Đây là một lớp các PTVPĐS nằm trong dạng PTVPĐS khơng có tính lạ (0.0.4).
Hai tác giả V.H. Linh và N.D. Trường [8] đã nghiên cứu và đưa ra các phương
pháp Runge-Kutta nửa hiện (HERK) và phương pháp Runge-Kutta ẩn (IRK) để
tìm nghiệm số và đánh giá sai số, cấp chính xác.
Phương pháp Runge-Kutta nửa hiện đã được kế thừa từ phương pháp RungeKutta cho PTVPT được áp dụng cho lớp bài toán (0.0.4) và (0.0.6). Phương pháp
HERK được các tác giả V.H. Linh và V. Mehrmann [7], V.H. Linh và N.D. Trường
[8] áp dụng cho bước đi đều h. Trong luận văn này, tôi tiếp tục nghiên cứu
phương pháp HERK áp dụng cho bài toán (0.0.4) và (0.0.6) dựa vào hai kết
quả trong [7], [8], kết hợp với phương pháp nhúng với bước lưới thay đổi h để
tìm nghiệm số, đánh giá sai số và bước lưới h.
Ngoài Lời mở đầu, Kết luận và Tài liệu tham khảo, luận văn của tôi được chia
ra gồm 3 chương.
Chương 1. Giới thiệu
Trong chương thứ nhất, tôi sẽ trình bày lại các kiến thức cơ bản về: Phương trình
vi phân đại số, phương pháp Runge-Kutta cho PTVPT, đánh giá sai số và lựa
chọn bước đi bằng phương pháp nhúng.
Chương 2. Phương pháp Runge-Kutta nửa hiện giải PTVPĐS
Trong chương thứ hai, tơi sẽ trình bày phương pháp Runge-Kutta nửa hiện để
giải PTVPĐS cho 3 trường hợp: PTVPĐS dạng nửa hiện chỉ số 1, PTVPĐS khơng
có tính lạ, PTVPĐS khơng có tính lạ và có cấu trúc.
Chương 3. Phương pháp Runge-Kutta với bước lưới thay đổi giải PTVPĐS
Trong chương này, tơi sẽ trình bày phương pháp nhúng với bước đi h thay đổi
kết hợp với phương pháp Runge-Kutta nửa hiện trình bày trong chương 2. Sau
đó thực hiện một số thử nghiệm số để so sánh và có sự đánh giá với trường hợp

áp dụng phương pháp Runge-Kutta với bước lưới đều h.
11


Hà Nội, ngày 28 tháng 11 năm 2019
Học viên

Phan Quang Tuyển

12


Chương 1
Giới thiệu
Trong chương này, chúng ta sẽ nhắc lại một số khái niệm cơ bản và các kiến
thức bổ trợ sẽ được sử dụng trong luận văn. Phần đầu tiên, chúng ta sẽ giới
thiệu về PTVPĐS. Phần thứ hai, tơi sẽ trình bày tóm tắt về phương pháp RK cho
PTVPT. Phần cuối cùng của chương 1, tơi sẽ trình bày việc đánh giá sai số và lựa
chọn bước đi bằng phương pháp nhúng áp dụng cho PTVPT.

1.1. Phương trình vi phân đại số
1.1.1. Khái niệm và phân loại phương trình vi phân đại số

Phương trình vi phân đại số dạng tổng quát là phương trình
F (t, x, x 0 ) = 0,

(1.1.1)

trong đó t ∈ I = [0, T ], F : I × Rm × Rm → Rn , m, n ∈ N, nếu ma trận Jacobi


∂F
∂x 0

suy biến.
Ví dụ 1.1.1. Xét hệ
x1 − x10 + 1 = 0,

(1.1.2)

x10 x2 + 2 = 0,
Ta có
0

F (t, x, x ) =



x1 − x10 + 1
x10 x2 + 2

13


,


với

x0




=

0

x1
0
x2


, ma trận Jacobi

∂F
∂x 0





∂F
−1 0
=
x2 0 .
∂x 0


Ta thấy rằng, ma trận Jacobi là ma trận suy biến với bất cứ giá trị nào của x =

x1

x2 . Do đó, hệ (1.1.2) là một PTVPĐS.

Nhận xét 1.1.1. Trong ví dụ trên ta thấy đạo hàm x20 không xuất hiện. Giải phương
trình đầu tiên của (1.1.2), ta được x10 = x1 + 1. Thay x10 vào phương trình thứ hai, thì
phương trình (1.1.2) sẽ được viết lại là
x10 = x1 + 1,

(1.1.3)

( x1 + 1) x2 + 2 = 0.
Ta thấy phương trình đầu tiên của (1.1.3) là một phương trình vi phân, trong khi đó
phương trình thứ hai là một phương trình đại số. Như vậy, nói một cách dễ hiểu, thì một
PTVPĐS sẽ bao gồm các phương trình vi phân kết hợp với các ràng buộc đại số.
Để thảo luận về câu hỏi sự tồn tại và duy nhất nghiệm của PTVPĐS, chúng ta
xét BTGTBĐ (1.1.1) với điều kiện x (t0 ) = x0 , t0 ∈ I, x0 ∈ Rm .
Định nghĩa 1.1.1. ([5]).
Cho C k (I, Cn ) là một không gian véc tơ tất cả các hàm khả vi, liên tục k lần từ một
đoạn I vào không gian véc tơ phức Cn .
1. Một hàm x ∈ C1 (I, Cn ) được gọi là một nghiệm của (1.1.1) nếu nó thỏa mãn
(1.1.1) tại từng điểm.
2. Một nghiệm x của PTVPĐS(1.1.1) thỏa mãn điều kiện ban đầu được gọi là nghiệm
của BTGTBĐ.
3. Một điều kiện ban đầu x (t0 ) = x0 được gọi là tương thích với PTVPĐS (1.1.1)
nếu bài tốn (1.1.1) kết hợp với điều kiện ban đầu có ít nhất một nghiệm. Khi đó,
bài tốn (1.1.1) với điều kiện x (t0 ) = x0 gọi là giải được.
14


Thơng thường các PTVPĐS có cấu trúc tốn học tùy thuộc vào phạm vi ứng
dụng nhất định. Do đó, chúng ta có các hệ PTVPĐS phi tuyến, PTVPĐS tuyến

tính, PTVPĐS nửa hiện, PTVPĐS ẩn hồn tồn.
1. Phương trình vi phân đại số phi tuyến.
Trong PTVPĐS (1.1.1), nếu hàm F là phi tuyến đối với bất kì các biến t, x,
hoặc x 0 thì nó được gọi là PTVPĐS phi tuyến.
2. Phương trình vi phân đại số tuyến tính.
PTVPĐS có dạng A(t) x 0 + B(t) x (t) = q(t). Ở đây, A(t) và B(t) là ma trận
n × n, tuyến tính. Nếu A(t) ≡ A và B(t) ≡ B thì ta sẽ có PTVPĐS tuyến
tính với hệ số hằng.
3. Phương trình vi phân đại số ẩn hồn tồn.
PTVPĐS dạng (1.1.1) thuộc dạng ẩn hồn tồn.
1.1.2. Chỉ số của phương trình vi phân đại số

Một cách phân loại khác của PTVPĐS dựa vào độ phức tạp của bài toán là
phân loại theo chỉ số (index). Trong lý thuyết PTVPĐS có rất nhiều loại chỉ số,
trong luận văn ta chỉ quan tâm tới chỉ số vi phân (differentiation index) và chỉ số
lạ (strangeness index).
Định nghĩa 1.1.2. Phương trình vi phân đại số f (t, x (t), x 0 (t)) = 0 có chỉ số là µ nếu
µ là số lần lấy vi phân tối thiểu
f (t, x (t), x 0 (t)) = 0,

d f (t, x (t), x 0 (t))
= 0, . . . ,
dt

dµ f (t, x (t), x 0 (t))
= 0,
dtµ

sao cho các phương trình trên có thể rút ra một PTVPT x 0 (t) = g(t, x (t)).
Chỉ số vi phân như là một thước đo về khoảng cách giữa PTVPĐS với PTVPT

qua các phép lấy đạo hàm. Thước đo này dường như khơng phản ánh được chính
xác bản chất của PTVPĐS bởi trong đó chúng ta hầu như chỉ quan tâm tới tính
chất vi phân mà khơng để ý đến đặc trưng của các ràng buộc đại số. Thực tế, các
15


ràng buộc đại số đơi khi làm cho bài tốn trở nên phức tạp hoặc đơi khi làm cho
bài tốn trở nên đơn giản. Tiếp theo, chúng ta đề cập tới khái niệm chỉ số lạ đã
được P. Kunkel và V. Mehrmann đưa ra phản ánh được cả bản chất vi phân và
các đặc trưng của phần đại số của PTVPĐS. Để định nghĩa chỉ số lạ, chúng ta xét
hệ sau
F` (t, x, x 0 , . . . , x (`+1) ) = 0,

(1.1.4)

trong đó F` có dạng



F` (t, x, x 0 , . . . , x (`+1) ) = 




= 


F (t, x, x 0 )
d
0

dt F ( t, x, x )
..
.

( dtd )` F (t, x, x 0 )







F (t, x, x 0 )
Ft (t, x, x 0 ) + Fx (t, x, x 0 ) x 0 + Fx0 (t, x, x 0 ) x 00
..
.
..
.




,


và định nghĩa các ma trận Jacobi
M` (t, x, x 0 , . . . , x (`+1) ) = F`;x0 ,...,x(`+1) (t, x, x 0 , . . . , x (`+1) ),


N` (t, x, x 0 , . . . , x (`+1) ) = − F`;x (t, x, x 0 , . . . , x (`+1) ), 0, . . . , 0


(1.1.5)

Giả thiết 1.1.1. ([5]). Tồn tại các số nguyên µ, a, d sao cho tập nghiệm
Lµ = {(t, x, x 0 , . . . , x (µ+1) ) ∈ R(µ+2)n+1 | Fµ (t, x, x 0 , . . . , x (µ+1) ) = 0}
( µ +1)

khác rỗng và mỗi (t0 , x0 , x00 , . . . , x0

(1.1.6)

) ∈ Lµ đều tồn tại một lân cận đủ nhỏ sao cho

trong lân cận đó các tính chất sau được thỏa mãn
1. Chúng ta có rank Mµ (t, x, x 0 , . . . , x (µ+1) ) = (µ + 1)n − a trên Lµ sao cho tồn tại
một hàm ma trận trơn Z2 có cỡ (µ + 1)n × a có hạng lớn nhất theo từng điểm thỏa
mãn Z2T Mµ = 0.
2. Chúng ta có rank Aˆ 2 (t, x, x 0 , . . . , x (µ+1) ) = a, trong đó Aˆ 2 = Z2T Nµ [ In 0 . . . 0]
sao cho tồn tại một hàm ma trận trơn T2 có cỡ n × d, d = n − a, có hạng lớn nhất
theo từng điểm thỏa mãn Aˆ 2 T2 = 0.
16


3. Chúng ta có rank Fx0 (t, x, x 0 ) T2 (t, x, x 0 , . . . , x (µ+1) ) = d sao cho tồn tại một hàm
ma trận trơn Z1 có cỡ n × d và có hạng lớn nhất theo từng điểm, thỏa mãn
rank Eˆ 1 T2 = d, trong đó Eˆ 1 = Z1T Fx0 .
Định nghĩa 1.1.3. Xét PTVPĐS dạng (1.1.1), giá trị nhỏ nhất µ ∈ N sao cho F thỏa
mãn giả thiết (1.1.1) được gọi là chỉ số lạ của (1.1.1). Nếu µ = 0 thì PTVPĐS (1.1.1)
được gọi là khơng có tính lạ (strangeness-free).
Nhận xét 1.1.2.


1. Mục đích chính của chỉ số vi phân là đưa ra khoảng cách để biến

đổi PTVPĐS trở thành một PTVPT. Tuy nhiên, nghiệm của bài tốn sau khi biến
đổi thường khơng trùng với nghiệm của bài tốn ban đầu.
2. Mục đích chính của chỉ số lạ là đưa ra khoảng cách biến đổi bài tốn PTVPĐS trở
thành một PTVPĐS có cùng nghiệm nhưng có tính chất giải tích tốt hơn. Tính
chất đó có thể tách biệt được phần ràng buộc vi phân và phần ràng buộc đại số cho
các biến. Từ đó ta có thể thu được PTVPT bằng việc giải biến đại số từ các ràng
buộc và thế vào các phương trình còn lại.
Lý thuyết về chỉ số lạ cho PTVPĐS phi tuyến tổng quát (1.1.1) đã được nghiên
cứu. Trong bài báo ([5]) có thuật tốn biến đổi dạng (1.1.1) về một PTVPĐS dạng
khơng có tính lạ (0.0.4). Chúng ta quy ước rằng khi nhắc đến chỉ số của PTVPĐS
mà khơng nói gì thêm thì đó là chỉ số vi phân của bài tốn. Dựa vào đó, chúng
ta giới thiệu lớp PTVPĐS thường gặp có dạng:
1. PTVPĐS dạng nửa hiện chỉ số 1 (Hessenberg chỉ số 1), xem ([3])
x 0 = f (t, x, z)

(1.1.7)

0 = g(t, x, z).
Trong đó, ma trận hàm Jacobi gz được giả thiết là không suy biến với mọi
t. Từ phương trình thứ hai của (1.1.7), theo định lý hàm ẩn ta có thể giải
ra z = φ(t, x ), thế vào phương trình thứ nhất ta thu được phương trình vi
phân đối với x là x 0 = f (t, x, φ(t, x )).
17


Như vậy, chúng ta có thể thấy PTVPĐS (1.1.7) có chỉ số vi phân bằng 1
nhưng có chỉ số lạ bằng 0 hay dạng khơng có tính lạ.

2. PTVPĐS dạng nửa hiện chỉ số 2 (Hessenberg chỉ số 2), xem ([3])
x 0 = f (t, x, z)

(1.1.8)

0 = g(t, x ).
Giả thiết rằng, ma trận Jacobi gx f z không suy biến với mọi t. Biến đại số z
không xuất hiện trong phương trình thứ 2 của (1.1.8). Từ phương trình thứ
hai của (1.1.8), lấy đạo hàm theo t ta được:
0 = gt (t, x ) + gx (t, x ) f (t, x, z),
tiếp tục lấy đạo hàm theo t, ta được:
0 = gtt (t, x ) + gtx (t, x ) f (t, x, z) + f (t, x, z)( gxt (t, x ) + gxx (t, x ) f (t, x, z))

+ gx (t, x )( f t (t, x, z) + f x (t, x, z) f (t, x, z) + f z (t, x, z)z0 ).
Từ giả thiết, ma trận Jacobi gx f z không suy biến với mọi t. Suy ra,
z0 = −( gx (t, x ) f z (t, x, z))−1 ( gtt (t, x ) + gtx (t, x ) f (t, x, z) + f (t, x, z)( gxt (t, x )

+ gxx (t, x ) f (t, x, z)) + gx (t, x )( f t (t, x, z) + f x (t, x, z) f (t, x, z))).
Ta cần 2 bước lấy đạo hàm để mô tả z0 nên PTVPĐS (1.1.8) có chỉ số 2.

1.2. Phương pháp Runge-Kutta cho phương trình vi phân thường

Các phương pháp một bước, tiêu biểu là các phương pháp Runge-Kutta (RK)
có ưu điểm là đơn giản, dễ lập trình, dễ dàng thay đổi và điều chỉnh bước lưới
khi tính tốn. Phương pháp RK được hai nhà toán học người Đức là Runge và
Kutta xây dựng từ 1895-1901. Trong phần này, tơi sẽ trình bày sơ đồ rời rạc, sự
ổn định và tính hội tụ, cấp chính xác, miền ƠĐTĐ của phương pháp RK hiện.

18



1.2.1. Phương pháp Runge-Kutta tổng quát

Tổng quát, phương pháp RK s nấc cho PTVPT y0 = f (t, y) có thể được viết
dưới dạng
s

Yi = yn−1 + hn

∑ aij f (tn−1 + c j hn , Yj )

(1.2.1)

∑ bi f (tn−1 + ci hn , Yi ),

(1.2.2)

j =1
s

y n = y n −1 + h n

i =1

trong đó, hn = tn+1 − tn , Yi ≈ y(tn−1 + ci hn ) là nghiệm xấp xỉ tại điểm nấc
Ti = tn−1 + ci hn , i = 1, 2, . . . , s. Các hệ số của phương pháp RK thường được cho
dưới bảng Butcher
c

A

,
bT

(1.2.3)

với A = [ aij ]s×s , b = (b1 , b2 , . . . bs ) T , c = (c1 , c2 , . . . cs ) T , chúng ta sẽ luôn chọn
s

ci =

∑ aij ,

(1.2.4)

i = 1, 2, . . . s.

j =1

Phương pháp RK là hiện nếu aij = 0 với j ≥ i, các trường hợp còn lại là phương
pháp RK ẩn. Một số ví dụ về phương pháp RK hiện:
• Phương pháp Euler hiện:

0 0
1
0
α

0 0
α
0

• Phương pháp có cấp chính xác 2:
, nếu α = 1 ta có cơng
1
1
1 − 2α 2α
thức hình thang hiện, nếu α = 21 ta có cơng thức trung điểm hiện.
0

0

1

0
0

0 0 0
0 0 0
1
2 0 0
0 1 0

1
6

1
3

1
2
1

2

• Cơng thức RK 4 nấc cổ điển:

1
2

1
3

1
6

Phương pháp RK s nấc còn có thể viết lại dưới dạng:
s

Ki = f

t n −1 + c i h n , y n −1 + h n

∑ aij K j

!
,

(1.2.5)

j =1
s


y n = y n −1 + h n

∑ bi K i .

i =1

19

(1.2.6)


1.2.2. Sự hội tụ và tính ổn định của phương pháp Runge-Kutta

Phương pháp RK có thể được viết lại theo phương pháp một bước dưới dạng
y n = y n −1 + h n Ψ ( t n −1 , y n −1 , h n ),

(1.2.7)

trong đó Ψ thỏa mãn điều kiện Lipschitz theo y, từ đó suy ra phương pháp RK
0- ổn định, xem ([3]).
Việc xác định cấp chính xác cho các phương pháp RK s nấc với s > 2 khơng
đơn giản. Chúng ta có một kết quả về cấp chính xác và sự hội của phương pháp
RK.
Định lý 1.2.1 ([5], Theorem 5.9). Nếu các hệ số aij , bi , ci của phương pháp RK thỏa
mãn các điều kiện:
s

B( p) :

1


∑ bi cik−1 = k ,

i =1
s

C (q) :

1

∑ aij ckj −1 = k cik ,

j =1
s

D (r ) :

k = 1, 2, . . . p.
i = 1, 2, . . . s, k = 1, 2, . . . q,

1

∑ bi cik−1 aij = k bj (1 − ckj ),

(1.2.8)

j = 1, 2, . . . s, k = 1, 2, . . . r,

i =1


với p ≤ q + r + 1 và p ≤ 2q + 2, thì phương pháp RK tương thích và có cấp hội tụ là p.
Để tìm hiểu về miền ÔĐTĐ của các phương pháp RK hiện, ta nhớ lại rằng
miền ÔĐTĐ của một phương pháp được xác định bởi giá trị của z = hn λ, chúng
ta cho |yn | ≤ |yn−1 | khi áp dụng phương pháp cho phương trình thử y0 = λy. Ta
thu được công thức
h

T

yn = R(z)yn−1 = 1 + zb ( I − zA)

−1

i

1 y n −1 ,

(1.2.9)

trong đó 1 = (1, 1, . . . 1) T . Như vậy, hàm ổn định của phương pháp RK tổng
quát trên là R(z) = 1 + zb T ( I − zA)−1 1 và miền ÔĐTĐ của phương pháp RK là
S = {z = hn λ ∈ C : | R(z)| ≤ 1}.
20


1.3. Đánh giá sai số và lựa chọn bước đi bằng phương pháp nhúng

Một số PTVPT có thể có các nghiệm mà nó thay đổi một cách nhanh chóng
trong một khoảng thời gian và lại thay đổi một cách chậm chạp trong một khoảng
thời gian khác. Do đó, chúng ta không thể sử dụng bước đi h trong phương pháp

RK như một hằng số, thay vào đó chúng ta nên sử dụng h nhỏ khi mà nghiệm
thay đổi nhanh chóng theo thời gian. Một phương pháp số mà tự động lựa chọn
bước lưới trong mỗi bước là một phương pháp thích nghi. Một lớp các phương
pháp thích nghi cho việc giải PTVPT là các phương pháp nhúng RK.
1.3.1. Ý tưởng của phương pháp nhúng RK

Trong phần này, chúng ta sẽ tìm hiểu một số cách để ước lượng sai số và điều
chỉnh bước lưới h = hn = tn − tn−1 . Cho mỗi thành phần j của y, (1 ≤ j ≤ m), ta
sử dụng sai số tương đối (RTOL) hoặc sai số tuyệt đối (ATOL j ). Chúng ta muốn
chọn h cho mỗi j, (1 ≤ j ≤ m),

|(l j )n | ≤ f rac[ ATOL j + |(y j )n | RTOL],
ở đây frac là hệ số an toàn (frac=0.8 hoặc 0.9). Để cho thuận tiện và tránh rắc rối
cho các phương pháp RK người ta sử dụng sai số địa phương l j , 1 ≤ j ≤ m.
Ý tưởng của phương pháp nhúng là chúng ta đi tính hai nghiệm xấp xỉ yn và
yˆ n tại tn , sao cho yˆ n − yn là ước lượng sai số địa phương của hai nghiệm xấp xỉ.
Chúng ta kiểm tra bất đẳng thức |yˆ n − yn | ≤ TOL. Nếu bất đẳng thức này không
thỏa mãn thì bước lưới h sẽ bị loại và bước lưới khác h˜ sẽ được lựa chọn thay thế.
Nếu phương pháp cho việc tìm yn có cấp chính xác p thì ln (h˜ ) ≈ ch˜ p+1 . Vì vậy,
chúng ta có thể chọn h˜ thỏa mãn
 ˜  p +1
h
|yˆn − yn | ≈ f racTOL,
h

(1.3.1)

và lặp lại quá trình này cho đến khi một bước lưới chấp nhận được tìm thấy. Nếu
bước lưới được chấp nhận thì từ cùng cơng thức có thể được sử dụng để đốn
một bước lưới lớn hơn hn+1 = h˜ cho bước tiếp theo.

21


1.3.2. Phương pháp nhúng RK

Từ ý tưởng của phương pháp chúng ta cần hai nghiệm xấp xỉ yn và yˆ n tại tn
cho bài toán y0 = f (t, y). Một cặp phương pháp RK có cấp p và p + 1 sẽ làm tốt
việc này. Chìa khóa của các phương pháp nhúng là với một cặp phương pháp RK
như vậy sẽ chung tính tốn trên cùng một nấc. Như vậy, chúng ta sẽ xuất phát
từ công thức s nấc có cấp p + 1 sao cho có cơng thức khác với cấp p được nhúng
trong đó.
Chúng ta sẽ sử dụng kí hiệu kết hợp cho một phương pháp nhúng:
c

A
bT
bˆ T

• Ví dụ đơn giản nhất là phương pháp Euler hiện được nhúng trong phương

pháp hình thang:
0 0
1 1
1

0
0
0

1

2

1
2

• Phương pháp nhúng Fehlberg 4(5) có 6 nấc sử dụng phương pháp RK cấp

4 được nhúng trong phương pháp RK cấp 5. Phương pháp nhúng Fehlberg
4(5) có hệ số sai số của nghiệm yn có cấp chính xác 4 là nhỏ nhất.
• Phương pháp nhúng Dormand-Prince có 7 nấc sử dụng phương pháp RK

cấp 4 được nhúng trong phương pháp RK cấp 5. Phương pháp nhúng
Dormand-Prince 4(5) có hệ số sai số của nghiệm yˆn có cấp chính xác 5 là
nhỏ nhất. Trong khi thực hiện bước tính tiếp theo ta thường chọn nghiệm
có giá trị chính xác cao hơn thay thế cho yn−1 . Hơn nữa, ta thấy bộ hệ số
của b T trùng với hệ số tại nấc thứ 7, do đó phương pháp nhúng DormandPrince thực chất ta thực hiện có giá như phương pháp RK có 6 nấc. Vì vậy,
phương pháp nhúng Dormand-Prince sẽ có độ chính xác tốt hơn phương
pháp nhúng Fehlberg.
22


Hình 1.1: Cặp Fehlberg 4(5)

Hình 1.2: Cặp Dormand-Prince 4(5)

Dựa vào ý tưởng và bảng kết hợp của phương pháp nhúng RK ta có thuật tốn:
Thuật tốn 1.3.1. Chúng ta giải phương trình y0 = f (t, y) trên đoạn [t0 , t f ], với sai
số cho trước là TOL và điều kiện ban đầu y(t0 ) = y0 .
1. Với yn−1 đã biết, bước lưới h = h0 đã cho, biến đếm k = 1, ta tính yn và yˆ n .
2. Ta so sánh, nếu |yˆ n − yn | ≤ TOL,

• Ta chấp nhận bước đi h,
23


• Ta tính lại yn và yˆ n với yn−1 trong bước thứ nhất đã biết được thay thế bằng

nghiệm của phương pháp RK có cấp chính xác cao hơn yˆ n ,
• Tăng giá trị của k, (k → k + 1) và t = t + h,
• Nếu t + h > t f thì h = t f − t.

3. Nếu bất đẳng thức |yˆ n − yn | ≤ TOL khơng thỏa mãn thì bước đi h bị thay thế bởi
bước đi mới
h˜ = h



f racTOL
|yˆn − yn |



1
p +1

.

Tiếp tục quá trình giống như bước tính đầu tiên cho tới khi dừng lại. Khi đó, chúng
ta có thể in ra kết quả nghiệm chính xác, sai số của hai nghiệm xấp xỉ, sai số thực tế của
nghiệm số và nghiệm chính xác, vẽ đồ thị nghiệm chính xác so với đồ thị nghiệm số, v.v.


24


Chương 2
Phương pháp Runge-Kutta nửa hiện
giải phương trình vi phân đại số
Trong chương này, tơi sẽ trình bày chi tiết các phương pháp Runge-Kutta
nửa hiện cho 3 trường hợp: PTVPĐS dạng nửa hiện, PTVPĐS khơng có tính
lạ, PTVPĐS khơng có tính lạ và có cấu trúc. Các kết quả chính của chương này
dựa vào [7], [8].

2.1. Trường hợp phương trình vi phân đại số dạng nửa hiện chỉ số 1

Các phương pháp số cho PTVPĐS dạng nửa hiện chỉ số 1 đã được nghiên cứu
và phát triển trong những năm cuối của thể kỉ 20. Hướng nghiên cứu hết sức tự
nhiên bằng cách mở rộng các phương pháp số của PTVPT cho PTVPĐS. Trong
phần này, tơi sẽ trình bày việc rời rạc hóa bài tốn PTVPĐS dạng nửa hiện chỉ số
1 bằng phương pháp RK.
Các PTVPĐS dạng nửa hiện chỉ số 1 là PTVPĐS đơn giản nhất có dạng
y0 (t) = F (t, y(t), z(t)),

(2.1.1)

0 = G (t, y(t), z(t)),
trong đoạn I = [t0 , T ]. Giá trị ban đầu G (t0 , y0 , z0 ) là tương thích. Giả sử, các
hàm F : I × Rm1 × Rm2 → Rm1 và G : I × Rm1 × Rm2 → Rm2 là các hàm đủ trơn.
Hơn nữa, ta giả sử ma trận Jacobi
Gz (t, y(t), z(t)),
25


(2.1.2)


là khơng suy biến trong lân cận của nghiệm chính xác.
Để xây dựng nghiệm số, ta lấy lưới t0 < t1 < . . . t N . Để cho đơn giản, ta xét
lưới đều với bước lưới là h. Tất cả các kết quả áp dụng cho bước lưới đều vẫn
đúng khi mà ta áp dụng cho bước đi thay đổi h. Giả sử, các hệ số của phương
pháp RK s nấc có cấp p được cho trong bảng Butcher
c

A
bT

với

b = [b1 b1 . . . bs ] T ,

A = [ aij ]s×s ,

c = [ c1 c1 . . . c s ] T .

Chúng ta sẽ sử dụng phương pháp RK ban đầu là phương pháp hiện thì rời rạc
hóa của chúng ta sẽ là phương pháp nửa hiện. Trên đoạn [tn , tn+1 ], giả sử chúng
ta đã có xấp xỉ yn ≈ y(tn ), zn ≈ z(tn ). Đặt Yi ≈ y(tn + ci h), Zi ≈ z(tn + ci h) là
các xấp xỉ tại các điểm nấc. Lược đồ RK s nấc cho PTVPĐS (2.1.1) được viết dưới
dạng
s

Yi = yn + h ∑ aij F ( Tj , Yj , Zj ),
j =1


0 = G ( Ti , Yi , Zi )

i = 1, 2, . . . s,

s

(2.1.3)

yn+1 = yn + h ∑ bi F ( Ti , Yi , Zi ),
i =1

0 = G ( t n +1 , y n +1 , z n +1 ),
trong đó Ti = tn + ci h, h = tn+1 − tn .
Điều kiện (2.1.2) , theo định lý hàm ẩn, từ phương trình thứ hai của (2.1.1) ta
có thể giải ra được z = φ(t, y) trong một lân cận của nghiệm. Như vậy, (2.1.1) trở
thành
y0 (t) = H (t, y),

(2.1.4)

trong đó H (t, y) = F (t, y, φ(t, y)).
Giải Zi từ phương trình thứ 2 của (2.1.3) và thế vào phương trình thứ nhất và
thứ ba của (2.1.3) ta thu được sơ đồ RK cho (2.1.3) sẽ có dạng
s

Yi = yn + h ∑ aij F ( Tj , Yj , φ( Tj , Yj )),
j =1

(2.1.5)


s

yn+1 = yn + h ∑ bi F ( Ti , Yi , φ( Ti , Yi )),
i =1

26


ngồi ra ta cịn xác định được zn+1 = φ(tn+1 , yn+1 ) từ phương trình thứ 4 của
(2.1.3) . Chúng ta chỉ ra rằng các thành phần của nghiệm số y của (2.1.3) giống
như nghiệm số của phương pháp RK áp dụng cho PTVPT (2.1.4) . Do đó, chúng
ta có kết quả về sự hội tụ sau cho sơ đồ RK (2.1.3) .
Định lý 2.1.1. Giả sử rằng (2.1.2) thỏa mãn trong một lân cận của nghiệm (y(t), z(t))
của (2.1.1) và các giá trị ban đầu là tương thích. Cho một phương pháp RK cấp p, sơ đồ
RK (2.1.3) áp dụng cho PTVPĐS (2.1.1) hội tụ cấp p, nghĩa là,

kyn − y(tn )k = O(h p ),

kzn − z(tn )k = O(h p ), với tn − t0 = nh ≤ const.

Nhận xét 2.1.1. Ta sử dụng phương pháp RK ban đầu ở dạng hiện thì ta có phương
pháp RK dạng nửa hiện, việc thực hiện cài đặt cho (2.1.3) khá đơn giản. Chúng ta xác
định giá trị nấc Yi hiện và giải phương trình đại số cho Zi với i = 1, 2, . . . s. Sau đó,
chúng ta tính yn+1 và giải phương trình đại số cho zn+1 . Các phương trình đại số có thể
được giải một cách hiệu quả bằng phương pháp lặp Newton.

2.2. Trường hợp phương trình vi phân đại số khơng có tính lạ

Trong phần này, chúng ta sẽ đưa ra dạng của PTVPĐS khơng có tính lạ và sau

đó sẽ giới thiệu phương pháp RK nửa hiện cho việc giải số. Để tiện theo dõi, ta
nhắc lại công thức của PTVPĐS dạng:
f (t, x (t), x 0 (t)) = 0

(2.2.1)

g(t, x (t)) = 0,
trong đoạn I = [t0 , t f ], với điều kiện ban đầu x (t0 ) = x0 . Giả sử rằng f =
f (t, x, x 0 ) : I × Rn × Rn → Rd và g = g(t, x ) : I × Rn → Ra , trong đó n = d + a,
là các hàm đủ trơn và có các đạo hàm riêng bị chặn. Hơn nữa, ta giả sử rằng (2.2.1)
là PTVPĐS khơng có tính lạ, nghĩa là ma trận Jacobi


f x0 (t, x (t), x 0 (t))
gx (t, x (t))
là không suy biến dọc theo nghiệm x (t).
27

(2.2.2)


2.2.1. Phân tích bài tốn

Trong phần này, để nghiên cứu giải tích của phương pháp số, chúng ta có thể
giả sử BTGTBĐ (2.2.1) có nghiệm duy nhất x ∗ (t) đủ trơn và có các đạo hàm riêng
bị chặn trên I. Hơn nữa, f và g được giả sử là đủ trơn với các đạo hàm riêng bị
chặn trong lân cận của nghiệm x ∗ (t), t ∈ I. Theo mục đích về giải tích, giả sử
các thành phần của x trong (2.2.1) có thể được sắp xếp lại và phân hoạch thành
x = [ x1T , x2T ] T , trong đó x1 : I → Rd , x2 : I → Ra , để mà ma trận Jacobi gx2
của g ứng với biến x2 (hoặc f x0 của g ứng với biến x10 ) là khả nghịch trong lân

1

cận của nghiệm. Nếu gx2 là khơng suy biến thì (2.2.1) có thể biến đổi thành dạng,
xem ([5])
x10 = L(t, x1 ),

x2 = R(t, x1 ).

(2.2.3)

Xét PTVPĐS tổng quát dạng ẩn, phi tuyến có chỉ số 1
G (t, x, x 0 ) = 0,

t ∈ I.

(2.2.4)

Theo quá trình biến đổi được chỉ ra trong [mục 4.1, [5]], phương trình (2.2.4)
sẽ được thu gọn thành PTVPĐS có chỉ số lạ dạng


G1 (t, x, x 0 )
0
G (t, x, x ) =
= 0.
G2 (t, x )
Như vậy, PTVPĐS khơng có tính lạ dạng (2.2.1) sẽ có chỉ số vi phân là 1.
Tuyến tính hóa (2.2.1) theo nghiệm chính xác x ∗ ta thu được PTVPĐS tuyến
tính với các hệ số là hàm số, xem (Mục 5.1, [5])


 


 

∗ , x∗ 0 )

∗0
A1 ( t )
f
(
t,
x
E
(
t
)
f
0 ( t, x , x )
x
1
x
E(t) =
=
, A(t) =
=
.
0
0
A2 ( t )

gx (t, x ∗ )
(2.2.5)
Ta sẽ sử dụng tính tuyến tính này trong việc nghiên cứu tính giải tích của phương
pháp RK nửa hiện: tính tương thích, ổn định và hội tụ.
PTVPĐS dạng (2.2.1) tổng quát hơn PTVPĐS dạng nửa hiện chỉ số 1, đó là
trường hợp đặc biệt khi f x0 = Id và f x0 = 0, x20 chỉ liên quan đến ràng buộc
1

2

đại số. Tuy nhiên, ràng buộc đại số được cho dưới dạng hiện và nó có thể được
28


×