ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
-------------------------------
TRẦN VĂN CẨN
MỘT SỐ PHƯƠNG PHÁP SYMPLECTIC
CHO HỆ HAMILTON
Chuyên ngành: Toán ứng dụng
Mã số: 8 46 01 12
LUẬN VĂN THẠC SĨ TOÁN HỌC
Người hướng dẫn khoa học:
TS. NGUYỄN THANH SƠN
THÁI NGUYÊN - 2021
i
Mục lục
Bảng ký hiệu iii
Mở đầu 1
1 Phương pháp số cho phương trình vi phân tổng quát 3
1.1 Khái niệm và phương pháp cơ bản . . . . . . . . . . . . . . . . 3
1.2 Sự hội tụ, tính chính xác, và tính ổn định của lược đồ sai phân . 6
1.3 Ổn định tuyệt đối . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Các phương pháp Runge-Kutta . . . . . . . . . . . . . . . . . 14
2 Hệ Hamilton 17
2.1 Hệ Hamilton . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Tính bảo tồn năng lượng dọc theo nghiệm . . . . . . . . . . . 18
2.3 Tính chất symplectic của dịng Hamilton . . . . . . . . . . . . 19
2.3.1 Phép biến đổi symplectic . . . . . . . . . . . . . . . . 19
2.3.2 Tính symplectic của dịng Hamilton . . . . . . . . . . . 20
2.4 Một số mô hình . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.1 Con lắc đơn . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.2 Phương trình sóng . . . . . . . . . . . . . . . . . . . . 25
2.4.3 Phương trình sine-Gordon . . . . . . . . . . . . . . . . 26
2.4.4 Phng trỡnh Schroădinger . . . . . . . . . . . . . . . . 26
2.5 Mô phỏng hệ Hamilton . . . . . . . . . . . . . . . . . . . . . 27
ii
3 Một số phương pháp symplectic cho hệ Hamilton 30
3.1 Phương pháp symplectic . . . . . . . . . . . . . . . . . . . . . 30
3.2 Phương pháp Euler symplectic . . . . . . . . . . . . . . . . . 31
3.3 Quy tắc điểm giữa . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4 Phng phỏp Stoărmer-Verlet . . . . . . . . . . . . . . . . . . . 34
3.5 Sự bảo toàn năng lượng toàn phần của các phương pháp sym-
plectic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.6 Ví dụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.1 Con lắc đơn . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.2 Các mô hỡnh Súng, sine-Gordon v Schroădinger . . . . 40
3.7 Kết luận Chương 3 . . . . . . . . . . . . . . . . . . . . . . . . 44
Kết luận 48
Tài liệu tham khảo 49
iii
Bảng ký hiệu
y, f Ký hiệu in đậm chỉ đại lượng véc tơ
y˙ , yă o hm cp 1, cp 2 theo thi gian t
y Đạo hàm theo biến khác, Jacobian nếu là hàm nhiều biến
O(hm) Vô cùng bé tương đương bậc m của h
φh Ánh xạ bước cỡ h
Nh Toán tử xấp xỉ sai phân của một lược đồ
dk Sai số làm gọn địa phương
|·| Chuẩn của véc tơ hoặc giá trị tuyệt đối của số
cond(M ) Số điều kiện của ma trận M
J Ma trận Poisson
ϕt Dòng Hamilton
det Định thức của ma trận
oa Diện tích có hướng
ω Dạng symplectic chính tắc
AT Chuyển vị của ma trận A
∇ Toán tử nabla
exp Hàm mũ với cơ số e
cosh Hàm cos hyperbolic
1
Mở đầu
Hệ Hamilton là một mơ hình tốn học khái qt cho nhiều phương trình
mơ tả các hiện tượng Cơ học và Vật lý, chẳng hạn như phương trình sóng hay
phương trình Cauchy cho cơ học cấu trúc. Điểm đặc biệt của hệ Hamilton là nó
có liên kết trực tiếp với một hàm số, gọi là hàm Hamilton, vốn mô tả một năng
lượng nào đó của hệ. Năng lượng này là bảo toàn theo thời gian. Do vậy, nghiệm
của hệ Hamilton cũng thỏa mãn điều kiện này theo định nghĩa: Giá trị của hàm
Hamilton dọc theo nghiệm này là một hằng số. Thêm vào đó, hệ Hamilton cịn
một tính chất đặc trưng rất quan trọng liên quan đến tính symplectic của dịng
Hamilton. Tính symplectic của dịng có thể mơ tả một cách khái qt là tính
bảo tồn tổng diện tích của các hình chiếu của một tập compact bất kỳ có biên
đủ trơn lên các mặt phẳng tọa độ trong không gian pha mở rộng.
Trong hầu hết trường hợp, nghiệm của hệ khơng thể tìm được một cách
tường minh. Vì thế, ta chỉ có thể thu được nghiệm nhờ các phương pháp số.
Các phương pháp số giải phương trình vi phân tổng qt, do khơng tính đến
những yếu tố đặc trưng của phương trình, thường khơng đảm bảo việc bảo tồn
năng lượng cũng như tính symplectic. Mục tiêu của luận văn là trình bày một
số phương pháp giải số cho hệ Hamilton mà bảo toàn hoặc bảo toàn xấp xỉ các
đặc trưng này, được biết đến với tên gọi phương pháp symplectic.
Để đạt được mục tiêu trên, trong luận văn này, chúng tôi trình bày các nội
dung sau. Ở Chương 1, chúng tơi nhắc lại một số kiến thức cơ bản của phương
pháp số giải phương trình vi phân. Chương 2 trình bày khái niệm, và các đặc
2
trưng quan trọng của hệ Hamilton: tính bất biến của năng lượng tồn phần dọc
theo nghiệm và tính symplectic của dịng Hamilton. Trong chương này, chúng
tơi cũng giới thiệu chi tiết bốn ví dụ về hệ Hamilton. Cuối cùng, trong Chương 3,
chúng tơi trình bày phương pháp dùng để giải hệ Hamilton: Euler symplectic,
phương pháp im gia, v phng phỏp Stoărmer-Verlet. Cỏc phng phỏp
c chng minh là bảo tồn chính xác tính symplectic của dịng Hamilton và
bảo tồn xấp xỉ năng lượng toàn phần. Cuối cùng, chúng tơi trình bày các ví dụ
tính tốn với những mơ hình cụ thể. Cuối cùng là phần Kết luận và Tài liệu tham
khảo.
Luận văn được hoàn thành tại Trường Đại học Khoa học - Đại học Thái
Nguyên dưới sự hướng dẫn của TS. Nguyễn Thanh Sơn. Tơi xin bày tỏ lịng biết
ơn chân thành và sâu sắc tới thầy vì đã giúp đỡ, hướng dẫn tận tình và đầy trách
nhiệm để tơi hồn thành luận văn này.
Tôi cũng xin được gửi lời cảm ơn chân thành tới Ban giám hiệu trường Đại
học Khoa học - Đại học Thái Nguyên, Ban chủ nhiệm khoa Toán – Tin và các
giảng viên đã tham gia giảng dạy, tạo mọi điều kiện tốt nhất để tôi học tập và
nghiên cứu. Đồng thời tôi xin gửi lời cảm ơn tới gia đình tơi, cảm ơn những
người bạn thân thiết và các bạn lớp cao học tốn K13A đã tạo điều kiện thuận
lợi cho tơi trong quá trình học cao học và thực hiện bản luận văn này.
Quá trình viết luận văn khó tránh khỏi sai sót, rất mong nhận được sự góp ý
của độc giả. Xin chân thành cảm ơn.
Thái Nguyên, tháng 12 năm 2021
Tác giả
Trần Văn Cẩn
3
Chương 1
Phương pháp số cho phương trình vi phân
tổng quát
Chương này trình bày một số phương pháp thơng dụng cho phương trình vi
phân thường tổng quát. Các phương pháp được nhắc đến chủ yếu là Euler hiện,
Euler ẩn, Điểm giữa, phương pháp hình thang và họ phương pháp Runge-Kutta.
Thêm vào đó, chúng tơi cũng trình bày chi tiết khái niệm về bậc chính xác, tính
ổn định và sự hội tụ của một lược đồ sai phân. Tài liệu tham khảo chính cho
chương này là cuốn sách chuyên khảo [3].
1.1 Khái niệm và phương pháp cơ bản
Ta xét bài toán giá trị ban đầu cho phương trình vi phân thường dạng tổng
quát
y˙ = f (t, y), t ∈ [0, T ], y(0) = y0, (1.1)
trong đó ẩn hàm y và hàm vế phải f (t, y) là các đại lượng véc tơ trong Rn. Ta
giả sử rằng f (t, y) là hàm đủ trơn và bị chặn để đảm bảo rằng bài tốn (1.1)
ln tồn tại nghiệm, và nghiệm đó khả vi tới mức cần thiết để phục vụ cho các
lập luận lý thuyết.
Để giải bài tốn trên máy tính, người ta phải rời rạc hóa miền xác định của
ẩn hàm. Xét lưới chia
0 = t0 < t1 < . . . tK = T, (1.2)
4
và đặt các cỡ bước thứ k là hk := tk − tk−1. Ta sẽ lần lượt xây dựng các xấp xỉ
y0, y1, . . . , yK−1, yK
của các giá trị ẩn hàm cần tìm y(tk), k = 0, . . . , K.
Do đã biết ẩn hàm tại t0, dựa vào ràng buộc phương trình, ta có thể tìm xấp
xỉ tại t1. Điều này cứ tiếp tục cho đến khi toàn bộ xấp xỉ được tìm. Người ta cịn
gọi các bước tìm này là các bước cập nhật do nó cho ta biết trạng mới dựa trên
thông tin của trạng thái cũ. Những phương pháp này được xếp vào loại phương
pháp một bước. Một phương pháp đa bước là phương pháp mà khi tính yk, nó
địi hỏi thơng tin về giá trị của hàm tại ít nhất hai bước trước đó yk−1, yk−2, . . . .
Luận văn này chỉ xét các phương pháp một bước.
Người ta cũng gọi tương ứng từ trạng thái cũ với trạng thái mới là ánh xạ
bước và ký hiệu là φhk(y). Để thực hiện điều này, ta xét khai triển Taylor của
ẩn hàm tại điểm lưới tk bất kỳ với giả thiết rằng ta đã biết giá trị của ẩn hàm tại
điểm trước đó tk−1
y(tk) = y(tk−1) + hky (tk1) + 1hk2yă(tk1) + Ã Ã Ã . (1.3)
2
Ta sẽ thường xuyên sử dụng khái niệm vô cùng bé cùng bậc, ký hiệu là O(hm).
Ta nói đại lượng y là một vơ cùng bé bậc m của h, hay y tương đương với hm,
nếu tồn tại hằng số C > 0 sao cho
|y| ≤ Chm,
với h > 0 đủ nhỏ. Sử dụng ký hiệu này, ta có thể viết lại phương trình trên ở
dạng
y(tk) = y(tk−1) + hky˙ (tk−1) + O(h2k). (1.4)
Phương pháp Euler hiện (explicit Euler) hay phương pháp Euler tiến (for-
ward Euler) chính là hệ quả của việc bỏ đi đại lượng vô cùng bé bậc hai trong
5
(1.4) và thay y˙ bởi f để thu được
yk = yk−1 + hkf (tk−1, yk−1). (1.5)
Đây là phương pháp số đơn giản nhất để giải bài toán giá trị ban đầu cho phương
trình vi phân. Nó là một phương pháp hiện vì để tìm nghiệm xấp xỉ tại k, ta chỉ
cần sử dụng một công thức hiện và thơng tin nghiệm tại bước trước đó k − 1.
Phương pháp Euler ẩn (implicit Euler) hay phương pháp Euler lùi (back-
ward Euler) được xây dựng tương tự như phương pháp Euler hiện nhưng thay vì
dựa vào thơng tin tại tk−1 để tính tốn tại tk, ta lại thực hiện ngược lại, tức là
y(tk−1) = y(tk) − hky˙ (tk) + O(h2k). (1.6)
Từ đây, ta có lược đồ ẩn
yk = yk−1 + hkf (tk, yk). (1.7)
Có thể quan sát thấy, (1.7) khơng đơn giản như (1.5) vì giá trị cần tìm lại nằm
trong hàm f , Để tìm yk từ yk−1, ta phải giải phương trình đại số (1.7). Nếu
f (t, y) là một hàm tuyến tính thì (1.7) là một hệ phương trình tuyến tính. Ngược
lại, ta đối mặt với một hệ phi tuyến mà muốn giải được, ta phải dùng một phương
pháp riêng, chẳng hạn Newton. Điều này lý giải thuật ngữ “ẩn" trong tên gọi
của nó. Câu hỏi đặt ra ở đây là tại sao Euler ẩn khó và phức tạp hơn Euler
hiện nhưng người ta vẫn sử dụng. Lí do của việc này là trong một số lớp bài
toán cương, việc giải bằng phương pháp hiện thường khơng chính xác do tính
dao động rất mạnh quanh nghiệm giải tích trừ khi bước thời gian cực kỳ nhỏ.
Nhưng việc giải với bước thời gian nhỏ sẽ gặp bất lợi nếu ta cần xét phương
trình vi phân trên một khoảng thời gian dài. Khi đó, người ta thường sử dụng
các phương pháp ẩn.
Cả hai phương pháp Euler đều sử dụng các xấp xỉ bậc một nên đôi khi gặp
bất lợi cho việc áp dụng cho những mơ hình tính tốn địi hỏi tính chính xác cao.
6
Điều này có thể được cải thiện khi sử dụng phương pháp hình thang. Ý tưởng
của phương pháp này là “mượn" thơng tin của ẩn hàm ở điểm giữa tk−1/2, trung
điểm của tk−1 và tk, để xây dựng một lược đồ xấp xỉ bậc hai. Cụ thể, ta viết
hk h2k h3k ...
y(tk) = y(tk1/2) + y (tk1/2) + yă(tk1/2) + y(tk1/2) + Ã · · ,
2 8 48
h3k ...
hk h2k
y(tk1) = y(tk1/2) y (tk1/2) + yă(tk1/2) − y(tk−1/2) + · · ·
2 8 48
(1.8)
Trừ hai phương trình trên vế theo vế rồi chia cho hk, ta thu được
y(tk) − y(tk−1) h2k ... 4 (1.9)
= y˙ (tk−1/2) + y(tk−1/2) + O(hk).
hk 24
Tiếp đến, áp dụng các khai triển giống như ở (1.8) nhưng cho y˙ rồi cộng hai
phương trình lại với nhau, ta thu được
h 2 ... 4 (1.10)
y˙ (tk) + y˙ (tk−1) = 2y˙ (tk−1/2) + y(tk−1/2) + O(hk).k
4
Kết hợp (1.9) và (1.10), ta thu được
y(tk) − y(tk−1) y˙ (tk) + y˙ (tk−1) h2k ... 4 (1.11)
= − y(tk−1/2) + O(hk).
hk 2 12
Mối quan hệ (1.11) gợi ý cho ta công thức xấp xỉ
yk = yk−1 + hk (f (tk, yk) + f (tk−1, yk−1)). (1.12)
2
Lược đồ (1.12) còn được gọi là phương pháp hình thang. Có thể thấy đây cũng
là một lược đồ ẩn.
1.2 Sự hội tụ, tính chính xác, và tính ổn định của lược đồ
sai phân
Ta có thể nhận thấy có nhiều sai số trong việc giải xấp xỉ một phương trình
vi phân. Trước tiên, tại mỗi bước, người ta xấp xỉ đạo hàm bởi sai phân nên sinh
7
ra sai số. Tiếp đến, người ta lại sử dụng kết quả tính được, vốn chứa sai số, để
tính ở bước tiếp theo. Như vậy, nhìn chung, các sai số sẽ tích lũy trong q trình
giải và có xu hướng càng về sau càng lớn. Hầu hết các phương pháp số đều phải
quan tâm đến hai vấn đề này. Để thuận tiện cho phân tích, ta sẽ trình bày những
phân tích này cho phương pháp Euler hiện. Ý tưởng và phương pháp luận của
nó được áp dụng tương tự cho các lược đồ khác.
Ký hiệu toán tử sai phân tương ứng với lược đồ Euler hiện và cỡ bước h áp
dụng cho phương trình (1.1) với hàm u bất kỳ định nghĩa trên lưới chia (1.2) và
u(t0) cho trước
Nhu(tk) := u(tk) − u(tk−1) − f (tk−1, u(tk−1)). (1.13)
hk
Giả sử yh là một hàm lưới có giá trị yk tại mỗi điểm lưới tk, k = 0, . . . , K. Khi
đó, lược đồ cập nhật tương ứng có thể được viết ngắn gọn ở dạng
Nhyh(tk) = 0, y0 cho trước.
Khi đó, ta định nghĩa sai số làm gọn địa phương, do việc cắt bỏ các đại lượng
vô cùng bé, là phần dư khi áp dụng tốn tử sai phân vào nghiệm chính xác, tức
là
dk = Nhy(tk). (1.14)
Có thể thấy, sai số làm gọn địa phương cho ta biết sai khác giữa toán tử sai phân
và toán tử vi phân.
Một phương pháp sai phân được gọi là chính xác bậc p nếu
dk = O(hkp), (1.15)
với p là một số dương cho trước. Chẳng hạn, từ khai triển Taylor (1.3), đối với
phương pháp Euler hiện, ta có
dk = hk yă(tk) + O(hk2). (1.16)
2
8
Do đó, Euler hiện có độ chính xác bậc một. Phương pháp Euler ẩn cũng có độ
chính xác bậc một.
Bằng phân tích tương tự, ta có thể chỉ ra được rằng phương pháp hình thang
có độ chính xác bậc hai.
Tuy nhiên, phân tích sai số sẽ khơng có ý nghĩa nếu ta chỉ ước lượng được
sai số làm gọn địa phương mà khơng nói được sai số của nghiệm thu được trên
tồn lưới sai phân. Để đạt được điều này, trước tiên ta ký hiệu cỡ bước lớn nhất
h = max{hk, k = 1, . . . , K}
và giả sử đại lượng Kh là bị chặn mà không phụ thuộc vào số điểm của lưới sai
phân K. Ta ký hiệu ek = yk − y(tk), k = 0, . . . , K và gọi nó là sai số tồn
cục. Phương pháp sai phân được gọi là hội tụ bậc p nếu sai số toàn cục thỏa
mãn
ek = O(hp), k = 0, . . . , K.
Nhìn chung, bậc của hội tụ thường thấp hơn bậc của sai số làm gọn địa phương.
Điều kiện sau đây đảm bảo bậc hội tụ bằng bậc của sai số làm gọn địa phương.
Phương pháp sai phân được nói là 0-ổn định (đọc là “ổn định bậc không") nếu
tồn tại các hằng số h0 và C sao cho với mọi hàm lưới xh và zh, h ≤ h0, bất
đẳng thức sau được thỏa mãn
|xk −zk| ≤ C(|x0−z0|+ max |Nhxh(tj)−Nhzh(tj))|, 1 ≤ k ≤ K. (1.17)
1≤j≤K
Thảo luận ở trên được chính xác hóa trong khẳng định sau đây.
Định lí 1.1. Nếu một phương pháp sai phân có độ chính xác bậc p và 0-ổn định
thì nó hội tụ bậc p. Cụ thể, ta có
|e| ≤ C max |dj| = O(hp). (1.18)
j
Chứng minh chi tiết định lý này có thể được tìm thấy ở [3, Định lý 3.1].
9
Ta đã biết phương pháp Euler hiện có độ chính xác bậc 1, áp dụng Định lý
1.1, ta sẽ chỉ ra rằng phương pháp này hội tụ bậc 1 bằng cách chứng minh nó
0-ổn định. Thật vậy, Ký hiệu
sk = xk − zk, θ = max |Nhxh(tj) − Nhzh(tj))|.
1≤j≤K
Với mỗi k, ta có
θ ≥ sk − sk−1 − (f (tk−1, xk−1) − f (tk−1, zk−1))
hk
≥ |sk| − sk−1 + (f (tk−1, xk−1) − f (tk−1, zk−1)) .
hk hk
Sử dụng điều kiện liên tục Lipschitz của f , ta thu được
sk−1 + (f (tk−1, xk−1) − f (tk−1, zk−1)) ≤ |sk−1| + L|sk−1|
hk hk
1
≤ hk + L |sk−1|.
Tiếp đó, từ khai triển MacLaurin của hàm mũ, ta có ngay
1 + hL < ehL
với mọi hL > 0 và đẳng thức xảy ra nếu hL = 0. Điều này dẫn đến
(1 + hj+1L) · · · (1 + hkL)(1 + h1L) ≤ eL(tk−tj), j = 1, . . . , k.
Thêm vào đó, ta cũng có
k k tj tk e−Ltkdt = 1 (eLtk − 1).
hj eL(tk−tj) ≤ eL(tk−t)dt = eLtk L
j=1 j=1 tj−1 0
Từ đó, ta có đánh giá sau
|sk| ≤ (1 + hkL)|sk−1| + hkθ
≤ (1 + hkL)((1 + hk−1L)|sk−2| + hk−1θ) + hkθ
10
≤ ...
≤ (1 + hkL)(1 + hk−1L) . . . (1 + h1L)|s0|
k (1.19)
+ θ hj(1 + hj+1L)
j=1
≤ eLtk|s0| + 1 (eLtk − 1)θ.
L
Cuối cùng, chọn C = max{eLT , 1 (eLT − 1)},
ta thu được L
|sk| ≤ C(s0 + max |Nhxh(tj) − Nhzh(tj))|)
1≤j≤K
hay phương pháp Euler hiện ổn định bậc không.
Nếu trong phân tích ở trên, thay cho xk và zk, ta sử dụng yk và y(tk) thì ta
sẽ thu được đánh giá
|ek| ≤ 1 (eLtk − 1)|dk|
L
do s0 = e0 = 0 và Nhyk = 0. Thêm vào đó, nếu ta giả sử giả sử yă b chn trờn
on [0, T ] bi mt hng số M thì kết hợp (1.16), chặn trên sai số (1.18) cho
phương pháp Euler hiện trở thành
|ek| ≤ h M (eLtk − 1), k = 1, . . . , K. (1.20)
2L
Một đại lượng khác để đo sai số của một phương pháp là sai số địa phương.
Đây là đại lượng thường được sử dụng trong phân tích sai số ngược (backward
error analysis). Nó được định nghĩa là chênh lệch giữa nghiệm số yk tại mỗi
bước và nghiệm y¯(tk) của bài toán giá trị ban đầu
y¯˙ (t) = f (t, y¯), y¯(tk−1) = yk−1. (1.21)
Theo đó, sai số địa phương là
lk = y¯(tk) − yk.
11
Người ta đã chỉ ra
|dk| = |Nhy¯(tk)| + O(hp+1)
và đối với hầu hết các phương pháp phổ biến
hk|Nhy¯(tk)| = |lk|(1 + O(hk)).
Từ hai đẳng thức trên, ta suy ra hai đại lượng hkdk và lk thường là gần nhau.
1.3 Ổn định tuyệt đối
Trong nhiều trường hợp, các đánh giá sai số của phương pháp được sử dụng
để xác định cỡ bước sao cho một sai số toàn cục cho trước được thỏa mãn.
Ví dụ 1.1. Ta hãy xem xét (1.20) có ích hay không thông qua
y˙ = −5ty2 + 5y − t21 =: f (t, y), y(1) = 1 (1.22)
trên đoạn [1, 25]. Có thể kiểm tra bài tốn này có nghiệm duy nhất y(t) = 1/t.
Từ nghiệm chính xác, ta có thể ước lượng chặn trên cho đạo hàm cấp hai M =
2 |yă| = 2/t3 vi t [1, 25]. Do fy = −10ty nên ta có thể chọn hằng số
Lipschitz 10. Khi đó, chặn trên của sai số (1.20) áp dụng cho ví dụ này là
|ek| ≤ h (e10tk − 1) ≤ h e240,
10 10
và hầu như không liên quan gì đến nghiệm thực tế y = 1/t. Vấn đề này địi hịi
ta tìm một cách tiếp cận khác mà ta sẽ trình bày trong mục này.
Xét phương trình thử nghiệm
y˙ = λy, (1.23)
với λ nhìn chung là một số phức. Nếu λ là một số thực, ta có thể coi nó như tốc
độ tăng của nghiệm. Chẳng hạn nếu ta có thể lấy λ là một ước lượng của fy.
12
Giả sử y(0) = c > 0. Khi đó, nghiệm tường minh của (1.23) là
y(tk) = ceλtk.
Trong khi đó, để đơn giản ta sử dụng lưới sai phân đều h = hk, k = 1, . . . , K,
nghiệm xấp xỉ thu được từ phương pháp Euler hiện có dạng
yk = yk−1 + hλyk−1 = (1 + hλ)yk−1 = · · · = c(1 + hλ)k. (1.24)
Ta hãy xét ba khả năng sau đây:
(i) Nếu (λ) > 0 thì |y(t)| = ce (λ)t tốc độ mũ và bài tốn này khơng ổn
định. Khi đó, khoảng cách giữa các đường cong nghiệm sẽ tăng theo thời
gian.
(ii) Nếu (λ) = 0 thì khoảng cách giữa các đường cong nghiệm không đổi
theo thời gian.
(iii) Nếu (λ) < 0 thì |y(t)| sẽ giảm tốc độ mũ; khoảng cách giữa các đường
cong nghiệm cũng giảm theo thời gian. Theo đó, bài tốn ổn định ngồi ra,
nghiệm xấp xỉ của phương trình cịn thỏa mãn
|yk| ≤ |yk−1|, k = 2, 3, . . . . (1.25)
Điều kiện ở trên được gọi là ổn định tuyệt đối. Đối với một phương pháp số,
vùng ổn định tuyệt đối là vùng nằm trong mặt phẳng phức với biến z sao cho
nếu áp dụng nó cho phương trình thử nghiệm (1.23) với z = λh thì nó cho
nghiệm xấp xỉ thỏa mãn điều kiện hội tụ tuyệt đối (1.25).
Ta hãy xác lập vùng ổn định tuyệt đối của phương pháp Euler hiện. Từ
(1.24), ta thu được điều kiện
|1 + hλ| < 1. (1.26)
13
Hình 1.1: Ví dụ 1.1: Nghiệm chính xác (exact sol.) và nghiệm số với cỡ bước
thỏa mãn và không thỏa mãn điều kiện ổn định tuyệt đối
Trên mặt phẳng phức, đây là hình trịn tâm (−1, 0) bán kính 1.
Để thấy ý nghĩa của khái niệm vùng ổn định tuyệt đối, ta xét Ví dụ 1.1. Ở
đây, λ = −10 nên điều kiện ổn định tuyệt đối trở thành
0 < h < 0.2.
Ta sẽ giải xấp xỉ bài toán (1.22) với lần lượt các bước đều h = 0.19 và h = 0.21
và thu được đường cong nghiệm như trong Hình 1.1. Có thể thấy ngay khi đó
đường cong ứng với h = 0.21 không thỏa mãn điều kiện ổn định tuyệt đối
(1.25) và dao động rất mạnh trong khi, mặc dù với sai khác rất nhỏ, đường cong
nghiệm ứng với h = 0.19 hầu như trùng với nghiệm chính xác y = 1/t.
Ý tưởng này cũng mở rộng được lên cho hệ phương trình phi tuyến. Thật
vậy, giả sử ta đã thiết lập được phương trình thử nghiệm cho một hệ phi tuyến
14
m ẩn hàm dưới dạng một hệ phương trình vi phân thuần nhất hệ số hằng
y˙ = Ay (1.27)
với A là một ma trận vng cỡ m × m và chéo hóa được. Ta ký hiệu λ1, . . . , λm
lần lượt là các giá trị riêng thực của A và T là ma trận chéo hóa tương ứng. Khi
đó, điều kiện ổn định tuyệt đối cho phương pháp sai phân bất kỳ là hλ1, . . . , hλm
nằm trong vùng ổn định tuyệt đối. Khi đó, ta có ước lượng cho tính ổn định
|yk| ≤ cond(T )|y(0)|,
với cond là số điều kiện của ma trận và | · | là một chuẩn véc tơ nào đó.
1.4 Các phương pháp Runge-Kutta
Có thể thấy, các phương pháp ở Mục 1.1 được xây dựng dựa trên xấp xỉ đạo
hàm bằng sai phân. Ở mục này, chúng ta tìm hiểu những phương pháp dựa trên
xấp xỉ tích phân xác định. Chúng ta sẽ thấy bằng cách thêm nhiều bước phụ, ta
có thể thu được những lược đồ có độ chính xác cao hơn. Để đơn giản, ta chỉ xét
trường hợp ẩn hàm vơ hướng. Hầu như tất cả các lập luận có thể diễn giải mở
rộng cho trường hợp véc tơ. Ngoài ra, do việc lập luận chỉ tập trung tính giá trị
tại tk từ tk−1 với cỡ bước cố định là hk, ta sẽ ký hiệu nó là h.
Trước tiên ta hãy bắt đầu bằng việc xét lại các phương pháp ở Mục 1.1 nhưng
bằng một cách tiếp cận khác. Từ cơng thức Newton-Leibnitz cho tích phân xác
định, ta có tk
y(tk) − y(tk−1) = y˙(t)dt. (1.28)
tk−1
Nếu ta xấp xỉ tích phân ở vế phải của (1.28) bằng cách cho giá trị của y˙(t) bằng
y˙(tk−1), ta sẽ thu được công thức Euler hiện. Ngược lại, nếu ta chọn giá trị y˙(tk)
ta sẽ có cơng thức Euler ẩn.
15
Để có xấp xỉ tốt hơn, ta có thể sử dụng giá trị tại điểm giữa của hàm dưới dấu
tích phân y˙(tk−1/2). Việc này gợi ý lược đồ xấp xỉ mà người ta gọi là phương
pháp điểm giữa
yk = yk−1 + hf (tk−1/2, yk + yk−1 ). (1.29)
2
Trong phương pháp trên, thực ra ta đã xấp xỉ y˙(tk−1/2) bởi (yk + yk−1)/2. Có
thể thấy đây là một lược đồ ẩn thuộc lớp các phương pháp Runge-Kutta.
Ta cũng có thể xây dựng một lược đồ Runge-Kutta hiện như sau. Thay vì sử
dụng (yk + yk−1)/2, ta sử dụng một bước Euler hiện để tính xấp xỉ y˙(tk−1/2)
h (1.30)
yˆk − 1/2 = yk−1 + 2 f (tk−1, yk−1).
rồi sử dụng nó để thu được lược đồ hiện
yk = yk−1 + hf (tk−1/2, yˆk − 1/2) (1.31)
h
= yk−1 + hf (tk−1/2, yk−1 + 2 f (tk−1, yk−1))
Lược đồ Runge-Kutta hiện (1.31) cũng được gọi là phương pháp điểm giữa
hiện, để phân biệt với phương pháp điểm giữa vốn là một lược đồ ẩn. Ngoài
ra, đây cũng là lược đồ minh họa rõ nét nhất điểm cốt lõi của phương pháp
Runge-Kutta: nếu ta tính giá trị hàm f nhiều lần hơn trong một bước thì có thể
thu được xấp xỉ tốt hơn. Người ta đã chỉ ra rằng đây là một phương pháp có độ
chính xác bậc hai.
Phương pháp hình thang trình bày ở Mục 1.1 cũng có thể được diễn giải
theo ngôn ngữ của phương pháp Runge-Kutta. Thật vậy, áp dụng xấp xỉ hình
thang cho tích phân (1.28), ta có
h h
yk = yk−1 + 2 f (tk, yk) + 2 f (tk−1, yk−1).
Phương pháp này khác với phương pháp điểm giữa ở trên. Ta có thể xây dựng
một “phiên bản hiện" cho nó bằng cách xấp xỉ yk ở trên bằng một bước Euler
16
hiện để thu được
yˆk = yk−1 + hf (tk−1, yk−1) (1.32)
(1.33)
h h
yk = yk−1 + 2 f (tk, yˆk) + 2 f (tk−1, yk−1)
Người ta đã chỉ ra đây là một phương pháp có độ chính xác bậc hai.
Có lẽ phương pháp nổi tiếng nhất trong họ các phương pháp Runge-Kutta là
phương pháp Runge-Kutta bậc bốn. Ở phương pháp này, người ta sử dụng xấp
xỉ tích phân
h (1.34)
y(tk) − y(tk−1) ≈ 6 (y˙(tk−1) + 4y˙(tk−1/2) + y˙(tk)).
Ở đây, ta khơng lí giải việc xây dựng các xấp xỉ như thế nào mà trình bày ln
quy tắc tính của phương pháp để đạt được độ chính xác bậc bốn.
Y1 = yk−1,
h
Y2 = yk−1 + 2 f (tk−1, Y1),
h
Y3 = yk−1 + 2 f (tk−1/2, Y2),
Y4 = yk−1 + hf (tk−1/2, Y3),
h
yk = yk−1 + 6 (f (tk−1, Y1) + 2f (tk−1/2, Y2) + 2f (tk−1/2, Y3) + f (tk, Y4)