Xây dựng trình thực thi cho phương pháp sai phân lùi dạng khối liên tục

Phương pháp đa bước sai phân lùi dạng khối là một cải tiến nổi trội để tìm xấp xỉ nghiệm của

phương trình vi với điều kiện ban đầu. Phương pháp này với miền ổn định tuyệt đối lớn nên đặc

biệt thích hợp cho lớp các bài toán stiff. Bài báo này trình bày cách xây dựng trình thực thi cho

phương pháp này bằng cách sử dụng phương pháp lặp Newton cho khối. Một chương trình bằng

Ngôn ngữ Matlab được đưa ra để mô tả thuật toán và trình thực thi với số bước k cụ thể. Các ví dụ

trình bày đưa ra sự so sánh về tính hiệu quả và chính xác của phương pháp.

pdf 8 trang dienloan 9140
Bạn đang xem tài liệu "Xây dựng trình thực thi cho phương pháp sai phân lùi dạng khối liên tục", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Xây dựng trình thực thi cho phương pháp sai phân lùi dạng khối liên tục

Xây dựng trình thực thi cho phương pháp sai phân lùi dạng khối liên tục
 ISSN: 1859-2171 
e-ISSN: 2615-9562 
TNU Journal of Science and Technology 225(06): 424 - 431 
424  Email: jst@tnu.edu.vn 
XÂY DỰNG TRÌNH THỰC THI CHO PHƯƠNG PHÁP 
SAI PHÂN LÙI DẠNG KHỐI LIÊN TỤC 
Đinh Văn Tiệp*, Phạm Thị Thu Hằng
Trường Đại học Kỹ thuật Công nghiệp - ĐH Thái Nguyên 
TÓM TẮT 
Phương pháp đa bước sai phân lùi dạng khối là một cải tiến nổi trội để tìm xấp xỉ nghiệm của 
phương trình vi với điều kiện ban đầu. Phương pháp này với miền ổn định tuyệt đối lớn nên đặc 
biệt thích hợp cho lớp các bài toán stiff. Bài báo này trình bày cách xây dựng trình thực thi cho 
phương pháp này bằng cách sử dụng phương pháp lặp Newton cho khối. Một chương trình bằng 
Ngôn ngữ Matlab được đưa ra để mô tả thuật toán và trình thực thi với số bước k cụ thể. Các ví dụ 
trình bày đưa ra sự so sánh về tính hiệu quả và chính xác của phương pháp. 
Từ khóa: phương pháp tuyến tính đa bước; phương pháp sai phân lùi; phương pháp sai phân lùi 
dạng khối liên tục; bài toán stiff; miền ổn định tuyệt đối. 
Ngày nhận bài: 19/5/2020; Ngày hoàn thiện: 27/5/2020; Ngày đăng: 29/5/2020 
CONSTRUCTING THE IMPLIMENTATION 
TO THE CONTINUOUS BLOCK BDF METHODS 
Dinh Van Tiep*, Pham Thi Thu Hang
TNU - University of Technology 
ABSTRACT 
The k-step methods of continuous block backward difference formula (or BDF) have great benefit 
to approximate the differential equation with the initial condition. These methods possessing very 
large absolute stability regions are especially useful for the stiff equations. This article presents a 
method of implementation to these k-step scheme by using the Newton’s iteration for the root 
finding problem of the non-linear multivariable case. Also, a program written in Matlab with a 
particular k is presented. The numerical experiments introduced to illustrate the efficiency and 
exactness of these scheme comparing with some conventional BDF methods. 
Keywords: linear multistep method; backward difference formula; continuous block backward 
difference formula; stiffness; absolute stability region. 
Received: 19/5/2020; Revised: 27/5/2020; Published: 29/5/2020 
* Corresponding author. Email: tiepdinhvan@gmail.com 
Đinh Văn Tiệp và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 424 - 431 
 Email: jst@tnu.edu.vn 425 
1. Mở đầu 
Xem xét bài toán giá trị ban đầu 
𝑦′ = 𝑓(𝑡, 𝑦), 𝑎 ≤ 𝑡 ≤ 𝑏, 𝑦(𝑎) = 𝛼, (1) 
với giả thiết điều kiện Lipschitz theo 𝑦 của 
hàm 𝑓. Các phương pháp xấp xỉ nghiệm của 
phương trình bao gồm chủ đạo các phương 
pháp đơn bước và đa bước. Họ các phương 
pháp sai phân lùi (ký hiệu BDF) với số bước k 
nhỏ, 𝑘 < 6, thể hiện ưu điểm lớn với miền ổn 
định tuyệt đối gần chiếm trọn mặt phẳng 
phức. Thực tế các miền đó của các phương 
pháp này chứa toàn bộ phần âm của trục thực 
trên mặt phẳng phức. Điều đó cho thấy khả 
năng áp dụng của các phương pháp này cho 
các bài toán stiff, một trong những vấn đề gây 
khó khăn lớn đối với đa số các phương pháp 
xấp xỉ khác. 
Tuy nhiên, một trong những trở ngại cho tính 
áp dụng của các phương pháp họ sai phân lùi, 
cũng giống như các phương pháp đa bước bậc 
cao khác, chẳng hạn các phương họ Adams, 
đó là chúng đều ở dạng ẩn. Cách tiếp cận để 
xử lý vấn đề này gồm các hướng sử dụng 
dạng dự báo - hiệu chỉnh và hướng sử dụng 
các phép lặp cho bản thân mỗi phương pháp. 
Với hướng tiếp cận dự báo - hiệu chỉnh, miền 
ổn định tuyệt đối khá bé. Không may, điều 
này đặc biệt đúng với các cặp dự báo - hiệu 
chỉnh với kiểu hiệu chỉnh họ sai phân lùi. Khi 
đó, các ưu điểm nổi trội của họ sai phân lùi bị 
triệt tiêu. Đối với hướng sử dụng kiểu lặp có 
hạn chế ở việc nghiệm hội tụ đến nghiệm của 
phương trình sai phân, thay vì đến nghiệm 
của phương trình vi phân. 
Hướng tiếp cận sai phân lùi dạng khối liên tục 
được đưa ra bởi N.M. Yao và cộng sự với bậc 
thấp 𝑘 ≤ 6 (xem [1], [2]) thể hiện sự nổi trội 
về tính áp dụng đối với lớp các bài toán stiff. 
Đặc biệt hơn, khả năng tự khởi động của 
phương pháp tạo nên sự thống nhất giữa khớp 
nối mà nhiều phương pháp đa bước gặp phải. 
Trình thực thi của phương pháp khối liên tục 
có hai hướng tiếp cận chủ đạo, một là sau 
bước khởi động, không dùng quy trình lặp để 
giảm khối lượng tính toán, hai là các bước lặp 
khối sẽ tiến hành cho đến cuối cùng. Với 
hướng tiếp cận thứ hai, độ chính xác tốt hơn, 
song yêu cầu số bước chia phải là một bội 
nguyên lần số bước của phương pháp. 
2. Công thức sai phân lùi dạng khối liên tục 
Trong [1], [2], N. M. Yao và cộng sự đã trình 
bày quy trình xây dựng phương pháp tổng 
quát, và đưa ra các công thức khối cụ thể cho 
các trường hợp 𝑛 = 2,3,4,6. Đồng thời, trong 
các bài báo này, các tác giả cũng đề cập đến 
vấn đề về tính ổn định, bậc và các hệ số bậc 
của từng công thức khối. Đối với các công 
thức 𝑛 = 2,3, các công thức khối dạng này là 
A-ổn định (tức A-stable). Với 𝑛 = 4,6, đặc 
tính đó có yếu đi chút ít song chúng vẫn là 
𝐿0-ổn định (tức 𝐿0-stable) theo định nghĩa của 
Cash [3]. Các tính chất miền tuyệt đối này 
được bảo tồn từ các phương pháp BDF thông 
thường. Như vậy, các ưu điểm vượt trội của 
phương pháp BDF không bị mất đi với 𝑘 ≤ 6. 
Ở đây, khác so với trình thực thi giới thiệu 
trong [1], ta sẽ xây dựng quy trình lặp tổng 
quát cho khối được tạo ra theo phương pháp 
này với chứng minh sự hội tụ của nghiệm xấp 
xỉ khi ℎ → 0+. 
Xét công thức dạng khối liên tục xây dựng 
kiểu sai phân lùi [1]: 
𝐴(1)𝑌𝑛+1 = 𝐴
(0)𝑌𝑛 + ℎ𝐵
(1)𝐹𝑛+1, (2) 
với 𝑌𝑛+1 = (𝑦𝑛+1, 𝑦𝑛+2,  , 𝑦𝑛+𝑘)
𝑇 , 
𝑌𝑛 = (𝑦𝑛−𝑘+1, 𝑦𝑛+𝑘 ,  , 𝑦𝑛)
𝑇 , 
𝐹𝑛+1 = (𝑓𝑛+1, 𝑓𝑛+2,  , 𝑓𝑛+𝑘)
𝑇 , 
𝑦𝑗 ≈ 𝑦(𝑡𝑗), 𝑓𝑗 ≈ 𝑓 (𝑡𝑗, 𝑦(𝑡𝑗)) , ∀𝑗 = 1,2, , 
𝐴(1), 𝐴(0), 𝐵(1) là các ma trận cấp 𝑘 × 𝑘 thu 
được từ xây dựng phương pháp. Ở đây, giả sử 
phương pháp BDF cho bởi công thức: 
ℎ𝑓𝑛+𝑖 = ∑ 𝑎𝑖𝑗𝑦𝑛+𝑗
𝑘−1
𝑗=0
+ ℎ𝑏𝑖𝑓𝑛+𝑘, 
∀𝑖 = 1, . . . , 𝑘 − 1. (3) 
𝑦𝑛+𝑘 = ∑ 𝑎𝑗𝑦𝑛+𝑗
𝑘−1
𝑗=0
+ ℎ𝑏𝑘𝑓𝑛+𝑘, 
Đinh Văn Tiệp và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 424 - 431 
426  Email: jst@tnu.edu.vn 
𝐴(1) có cột 𝑘 là (0, . . ,1)𝑇 , và hàng 𝑘 là 
−(𝑎1, . . , 𝑎𝑛−𝑘+1, −1), cột thứ 𝑗 của ma trận là 
−(𝑎1𝑗, 𝑎2𝑗,  , 𝑎𝑗)
𝑇
; ma trận 𝐴(0) có tất cả các 
cột bằng véctơ không, ngoại trừ cột cuối cùng 
là véctơ (𝑎10,  , 𝑎𝑘−1,0, 𝑎0)
𝑇
; ma trận 𝐵(1) 
có dạng tam giác trên với các phần tử khác 
không nằm trên đường chéo chính và cột thứ 
𝑘, trong đó đường chéo chính là véctơ 
(−1, , 𝑏𝑘), và cột 𝑘 là véctơ (𝑏1,  , 𝑏𝑘)
𝑇 . 
Các ma trận 𝐴(1) cho 𝑘 = 2,3,4,5,6 đều là các 
ma trận khả nghịch. Do đó, phương trình (2) 
có thể đưa được về dạng: 
𝑌𝑛+1 = 𝐶𝑌𝑛 + ℎ𝐵𝐹𝑛+1, (4) 
với 𝐶 là ma trận cấp 𝑘 × 𝑘 có các phần tử 
khác 0 ngoại trừ có thể các phần tử cột k, ký 
hiệu là: 
𝐴 = (𝑐1, 𝑐2,  , 𝑐𝑘)
𝑇 . (4′) 
Trong (3), 𝐹𝑛+1 = 𝐹(𝑡𝑛+1, 𝑌𝑛+1) 
= (𝑓(𝑡𝑛+1, 𝑦𝑛+1), , 𝑓(𝑡𝑛+𝑘 , 𝑦𝑛+𝑘)), 
phụ thuộc vào 𝑌𝑛+1. Chính vì thế, phương 
trình (4) có thể xấp xỉ nghiệm bằng phương 
pháp lặp Newton hoặc Newton suy rộng với 
giả thiết hàm 𝑓 đủ khả vi. Quá trình lặp 
Newton được áp dụng cho phương trình 
𝐺(𝑋) = 0 với mỗi 𝑞 ≥ 0 là: 
𝐺(𝑋) = 𝑦𝑞𝑘𝐴 + ℎ𝐵𝐹(𝑡𝑞𝑘+1, 𝑋) − 𝑋, (5) 
𝑋 = (𝑥1,  . , 𝑥𝑘)
𝑇 ∈ ℝ𝑘 , để tìm nghiệm xấp 
xỉ của phương trình này. Thực tế, khi ℎ → 0, 
nghiệm của (5) hội tụ về nghiệm đúng: 
𝑌(𝑡𝑞𝑘+1) = (𝑦(𝑡𝑞𝑘+1), , 𝑦(𝑡𝑞𝑘+𝑘))
𝑇
, 
khi giả thiết 𝑦𝑞𝑘 = 𝑦(𝑡𝑞𝑘). Điều này được 
chứng minh trong Định lý 1 dưới đây. Bậc và 
hệ số bậc của phương pháp khối là bậc nhỏ 
nhất và hệ số bậc nhỏ nhất để xấp xỉ các 
𝑦(𝑡𝑞𝑘+𝑖), ∀𝑖 = 1, , 𝑘, bằng các phương trình 
sai phân thứ 𝑖 tương ứng trong (3). Công thức 
lặp nghiệm cho (5) (tại bước thứ q) là: 
𝑋(𝑚+1) = 𝑋(𝑚) − [𝐽𝐺(𝑋
(𝑚))]
−1
𝐺(𝑋(𝑚)), (6) 
với 
𝑋(0) = {
(𝑦(𝑞−1)𝑘+1,  , 𝑦𝑞𝑘) nếu 𝑞 ≥ 1
(0, , 𝑦0), 𝑦0 = 𝛼, nếu 𝑞 = 0.
Jacobian của G là 𝐽𝐺(𝑋) = 
ℎ𝐵𝑑𝑖𝑎𝑔 (𝑓𝑦(𝑡𝑞𝑘+1, 𝑥1), , 𝑓𝑦(𝑡𝑞𝑘+𝑘 , 𝑥𝑘))
− 𝐼𝑘 , 
 trong đó 
𝑑𝑖𝑎𝑔 (𝑓𝑦(𝑡𝑞𝑘+1, 𝑥1),  , 𝑓𝑦(𝑡𝑞𝑘+𝑘 , 𝑥𝑘)) 
là ma trận đường chéo với các phần tử này 
xếp dọc đường chéo chính và 𝐼𝑘 là ma trận 
đơn vị cấp 𝑘. 
Giả sử số đoạn chia của [𝑎, 𝑏] là 𝑁 = 𝑘𝑝, tức 
𝑁 là bội nguyên lần của 𝑘. Từ điều kiện ban 
đầu 𝑦0 = 𝛼, với 𝑞 = 0, áp dụng (5) ta được 
𝑌1 = (𝑦1, 𝑦2,  , 𝑦𝑘)
𝑇 . 
Tiếp tục với 𝑞 = 1, áp dụng (5) thu được: 
𝑌𝑘+1 = (𝑦𝑘+1, 𝑦𝑘+2,  , 𝑦2𝑘)
𝑇 . 
Cứ như thế, với 𝑞 = (𝑝 − 1), thu được: 
𝑌𝑘(𝑝−1)+1 = (𝑦𝑘(𝑝−1)+1, 𝑦𝑘(𝑝−1)+2,  , 𝑦𝑁)
𝑇
. 
Như vậy, sau quá trình thu được dãy véctơ 
𝑌1, 𝑌𝑘+1,  , 𝑌𝑘(𝑝−1)+1 
xấp xỉ nghiệm của (1). Mệnh đề dưới đây chỉ 
ra một đặc trưng của trình thực thi ta đang 
xây dựng. 
Mệnh đề 1. Ma trận 𝐴 trong (4′) có tất cả các 
thành phần là 1, tức 𝐴 = (1,1, ,1)𝑇 . 
 Chứng minh. Từ (3), ta được: 
𝐴(1)
=
[
−𝑎11 −𝑎12 ⋯
−𝑎21 −𝑎22 ⋯
⋮ ⋮ ⋱
−𝑎1,𝑘−1 0
−𝑎2,𝑘−1 0
⋮ ⋮
−𝑎𝑘−1,1 −𝑎𝑘−1,2 ⋯
−𝑎1 −𝑎2 ⋯
−𝑎𝑘−1,𝑘−1 0
−𝑎𝑘−1 1]
, 
𝐴(0) = [
0 ⋯
⋮ ⋱
0
⋮
𝑎10
⋮
⋮ ⋱ ⋮ 𝑎𝑘−1,0
0 ⋯ 0 𝑎0
] , 𝑎0 = 1, 
Đinh Văn Tiệp và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 424 - 431 
 Email: jst@tnu.edu.vn 427 
𝐵(1) = 
[
−1 0 ⋯
0 −1 ⋱
⋮ 0 ⋱
0 𝑏1
⋮ 𝑏2
0 ⋮
0 ⋮ ⋱
 0 0 ⋯
−1 𝑏𝑘−1
0 𝑏𝑘 ]
. 
Viết ma trận 𝐴(1), [𝐴(1)]
−1
 dưới dạng khối: 
𝐴(1) = [
𝐷 𝟎
𝑈 1
] , [𝐴(1)]
−1
= [𝐷
−1 𝟎
𝑉 1
], 
trong đó, 𝐷−1 là nghịch đảo của 𝐷, 
𝐷 = (−𝑎𝑖𝑗)(𝑘−1)×(𝑘−1), 𝐷
−1 ∈ 𝕄(𝑘 − 1), 
𝟎 = (0, ,0)𝑇 ∈ 𝕄(𝑘 − 1,1), 
𝑈 = (−𝑎1,  , −𝑎𝑘−1), 𝑉 ∈ 𝕄(1, 𝑘 − 1). 
Giả sử 𝑉 = (𝑥1,  , 𝑥𝑘−1)
𝑇 và 𝐷−1 có các cột 
lần lượt là 𝐷1, 𝐷2,  , 𝐷𝑘−1, hay viết là: 
𝐷−1 = [𝐷1, 𝐷2,  , 𝐷𝑘−1]. 
Ký hiệu 𝐸𝑙 là véctơ cột đơn vị thứ 𝑙 của 
𝕄(𝑘 − 1,1) = ℝ𝑘−1, ∀𝑙 = 1, , 𝑘 − 1, 
𝐸𝑙 = (0, ,0,1,0, . . . ,0) 
với số 1 ở vị trí thứ 𝑙. Gọi 𝐼𝑘−1 là ma trận đơn 
vị cấp 𝑘 − 1. Ta có: 
𝐷−1𝐷 = 𝐼𝑘−1 = [𝐸1,  , 𝐸𝑘−1], 
[𝑉 1] [
𝐷
𝑈
] = (0, ,0) ∈ 𝕄(1, 𝑘 − 1) = ℝ𝑘−1, 
nên 
∑(−𝑎𝑗𝑙)𝐷
𝑗
𝑘−1
𝑗=1
= 𝐸𝑙 , ∀𝑙 = 1, , 𝑘 − 1, (7) 
∑ 𝑎𝑗𝑙𝑥𝑗
𝑘−1
𝑗=0
+ 𝑎𝑙 = 0, ∀𝑙 = 1, , 𝑘 − 1. (8) 
Vì 𝑘 phương trình sai phân ở (3) đều có bậc 
𝑟 > 0 nên hệ số bậc 0 của các phương trình 
này là 0, tức ta có: 
∑ 𝑎𝑗𝑙
𝑘−1
𝑙=0
= 0, ∀𝑗 = 1, , 𝑘 − 1, (7′) 
∑ 𝑎𝑗
𝑘−1
𝑗=0
= 1. (8′) 
Kết hợp (7) và (7′) được: 
∑ 𝑎𝑗0𝐷
𝑗
𝑘−1
𝑗=1
= ∑ (− ∑ 𝑎𝑗𝑙
𝑘−1
𝑙=1
)𝐷𝑗
𝑘−1
𝑗=1
= ∑ (∑(−𝑎𝑗𝑙)
𝑘−1
𝑗=1
𝐷𝑗) = ∑ (∑ 𝑎𝑗𝑙
𝑘−1
𝑗=1
𝐷𝑗)
𝑘−1
𝑙=1
𝑘−1
𝑙=1
= ∑ 𝐸𝑙
𝑘−1
𝑙=1
= (1, ,1)𝑇 ∈ 𝕄(𝑘 − 1,1) = ℝ𝑘−1. 
Đẳng thức này là 𝑘 − 1 thành phần đầu tiên 
của véctơ 𝐴 = (1, ,1)𝑇 ∈ ℝ𝑘. 
Kết hợp (8) và (8′) được: 
∑ 𝑎𝑗0𝑥𝑗
𝑘−1
𝑗=1
= ∑ (− ∑ 𝑎𝑗𝑙
𝑘−1
𝑙=1
)𝑥𝑗
𝑘−1
𝑗=1
= 
∑ (− ∑ 𝑎𝑗𝑙
𝑘−1
𝑗=1
𝑥𝑗) = − ∑ 𝑎𝑙
𝑘−1
𝑙=1
= 𝑎0 − 1
𝑘−1
𝑙=1
= 0. 
Đẳng thức này là thành phần thứ 𝑘 của véctơ 
𝐴 = (1, ,1)𝑇 ∈ ℝ𝑘. □ 
Định lý sau khẳng định sự hội tụ (khi ℎ →
0+) của nghiệm xấp xỉ của phương trình (5) 
về nghiệm của phương trình vi phân (1). Điều 
này cho thấy, dù phương trình phi tuyết (5), 
tại mỗi giá trị 𝑞 ≥ 0, có thể có nhiều nghiệm, 
tuy nhiên với kích thước bước ℎ đủ nhỏ, việc 
lựa chọn 𝑦𝑞𝑘 và véctơ 
𝑋(0) = 𝑌(𝑞−1)𝑘+1
= (𝑦(𝑞−1)𝑘+1, 𝑦(𝑞−1)𝑘+2,  , 𝑦𝑞𝑘) 
như là xấp xỉ ban đầu của mỗi quá trình lặp 
Newton (6) là đúng đắn. Tức là nghiệm của 
phương trình phi tuyến (5) thu được từ sự hội 
tụ của dãy (6), với mỗi 𝑞 ≥ 0, có thể gần tùy 
ý đến nghiệm đúng của (1), chỉ cần điều chỉnh 
giá trị ℎ đủ nhỏ. 
Định lý 1. Cố định mỗi 𝑞 ≥ 0. Giả sử nghiệm 
thu được ở bước thứ 𝑞 − 1 là nghiệm đúng, 
tức 𝑌𝑞𝑘+1 = 𝑌(𝑡𝑞𝑘+1) nếu 𝑞 ≥ 1 và 𝑦𝑞𝑘 =
𝑦(𝑡𝑞𝑘) nếu 𝑞 = 0. Gọi 𝑋 = 𝑌∗ là nghiệm 
đúng của phương trình (5), 𝐺(𝑋) = 0, thu 
được từ sự hội tụ của dãy (6), lim
𝑚→∞
𝑋(𝑚) = 𝑌∗, 
Đinh Văn Tiệp và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 424 - 431 
428  Email: jst@tnu.edu.vn 
tức 𝑌∗ phụ thuộc 𝑌𝑞𝑘 . Gọi 𝑌
∗ = 𝑌(𝑡𝑞𝑘+1) =
(𝑦(𝑡𝑞𝑘+1), , 𝑦(𝑡𝑞𝑘+𝑘))
𝑇
là nghiệm đúng của 
phương trình vi phân (1). Khi đó, 
lim
ℎ→0+
||𝑌∗ − 𝑌
∗|| = 0. 
 Chứng minh. Giả sử 𝝆𝒌(ℎ)ℎ
𝑠 là véc tơ có 
các thành phần là sai số làm tròn (truncation 
error) của các phương trình sai phân lần lượt 
trong (3) với s là số lớn nhất sao cho ℎ𝑠 là 
nhân tử chung của 𝑘 thành phần này. Vì các 
hệ số bậc 0 và 1 của những phương trình này 
bằng 0, nên 𝑠 ≥ 2. Ta có: 
𝑌∗ = 𝑦(𝑡𝑞𝑘)𝐴 + ℎ𝐵𝐹(𝑡𝑞𝑘+1, 𝑌
∗) + 𝝆𝒌(ℎ)ℎ
𝑠, 
𝑌∗ = 𝑦𝑞𝑘𝐴 + ℎ𝐵𝐹(𝑡𝑞𝑘+1, 𝑌∗). 
Do đó, ‖𝑌∗ − 𝑌∗‖ ≤ ℎ‖𝐵‖‖𝐹(𝑡𝑞𝑘+1, 𝑌
∗) −
𝐹(𝑡𝑞𝑘+1, 𝑌∗)‖ + 𝝆𝒌(ℎ)ℎ
𝑠 ≤ ℎ𝐿𝐹‖𝐵‖‖𝑌
∗ −
𝑌∗‖ + 𝝆𝒌(ℎ)ℎ
𝑠. (Ở đây, sử dụng điều kiện 
Lipschitz của 𝑓 suy ra sự tồn tại của hằng số 
Lipschitz 𝐿𝐹 theo 𝑌 cho hàm véc tơ 𝐹(𝑡, 𝑌)) 
Từ đó, với ℎ > 0 đủ nhỏ, sao cho 
1
2
< (1 − ℎ𝐿𝐹‖𝐵‖), 
‖𝑌∗ − 𝑌∗‖ ≤
𝝆𝒌(ℎ)ℎ
𝑠
1 − ℎ𝐿𝐹‖𝐵‖
< 2𝝆𝒌(ℎ)ℎ
𝑠. 
Do đó, ta có điều phải chứng minh. 
Trên đây là hướng tiếp cận thứ hai của trình 
thực thi như đã đề cập ở đoạn cuối phần mở 
đầu bài báo. Hướng tiếp cận thứ nhất chỉ xét 
đến quá trình lặp Newton một lần để xấp xỉ 𝑌1 
phần còn lại sẽ sử dụng đồng thời phương 
trình thứ k của (3) như là phép hiệu chỉnh, 
trong đó vế phải có chứa 𝑓𝑘+1 mà giá trị này 
sẽ được tính toán bằng cách sử dụng phương 
trình liền trước nhất thứ 𝑘 − 1, và phương 
trình này được coi như phép dự báo. Như thế, 
ở hướng tiếp cận thứ 2 này, ta có một cặp dự 
báo - hiệu chỉnh. Tuy nhiên, cặp này có thể 
làm hẹp đi đáng kể độ lớn của miền ổn định 
tuyệt đối mà các phương pháp BDF bậc thấp 
(𝑘 ≤ 6) vốn có. 
Đối với 𝑘 = 3, ta có 𝑋 = (𝑥1, 𝑥2, 𝑥3)
𝑇 , 
𝐴(1) = [
4/11 −8/11 0
14/11 −23/22 0
9/11 −18/11 1
], 
𝐴(0) = [
0 0 −4/11
0 0 5/22
0 0 2/11
], 
𝐵(1) = [
−1 0 −1/11
0 −1 2/11
0 0 6/11
] , 𝐴 = [
1
1
1
], 
𝐶 = [
0 0 1
0 0 1
0 0 1
] , 𝐵 =
[
23
12
−
4
3
5
12
7
3
−
2
3
1
3
9
4
0
3
4 ]
, 
𝐺(𝑋) = 𝑦𝑞𝑘𝐴 + ℎ𝐵𝐹(𝑡𝑞𝑘+1, 𝑋) − 𝑋 
= 𝑦𝑘 [
1
1
1
] − [
𝑥1
𝑥2
𝑥3
] + ℎ𝐵 [
𝑓(𝑡𝑛+1, 𝑥1)
𝑓(𝑡𝑛+2, 𝑥2)
𝑓(𝑡𝑛+3, 𝑥3)
], 
𝐽𝐺(𝑋)
= ℎ𝐵 [
𝑓𝑦(𝑡𝑛+1, 𝑥1) 0 0
0 𝑓𝑦(𝑡𝑛+2, 𝑥2) 0
0 0 𝑓𝑦(𝑡𝑛+3, 𝑥3)
] 
− 𝐼3. 
Với 𝑘 = 5, các ma trận khối trong (4) và (4′) 
được cho như sau, các khối này do tác giả xây 
dựng, 
𝐴 = (1,1,1,1,1)𝑇, 
𝐵 =
[
1901
720
−
1387
360
109
30
269
90
−
133
45
49
15
237
80
−
99
40
39
10
−
637
360
251
720
−
73
45
29
90
−
69
40
27
80
134
45
−
116
45
68
15
425
144
−
175
72
25
6
−
56
45
14
45
−
25
72
95
144 ]
. 
3. Trình thực thi và thuật toán 
Trình thực thi của phương pháp khối liên tục 
dạng BDF bậc 𝑘 được trình bày dạng giải mã 
sau đây. Trong trình thực thi này, hằng số 
𝑡𝑜𝑙 > 0 được đưa vào làm tiêu chuẩn dừng 
cho phép lặp Newton, đảm bảo sai số phép 
lặp mỗi bước không vượt quá số này. Ngoài 
ra, hằng số M đưa ra giới hạn cho số lần lặp 
Đinh Văn Tiệp và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 424 - 431 
 Email: jst@tnu.edu.vn 429 
được phép mà nếu vượt quá số này, quá trình 
lặp thất bại. Số đoạn chia 𝑁 được yêu cầu là 
bội nguyên lần của 𝑘. 
INPUT hàm 𝑓(𝑡, 𝑦), [𝑎, 𝑏], giá trị ban đầu 
𝑦(𝑎) = 𝛼, số đoạn chia 𝑁 = 𝑘𝑝, độ tin cậy 
𝑡𝑜𝑙 > 0, số lần lặp tối đa M mỗi quá trình lặp. 
OUTPUT dãy xấp xỉ 𝑤𝑖 của nghiệm 
𝑦(𝑡𝑖), ∀𝑖 = 0,1, . . , 𝑁, 
hoặc thông báo quá trình thất bại. 
Trình thực thi 
Bước 1. Khởi tạo: 
𝑡0 ≔ 𝑎; 
𝑤0 ≔ 𝛼; 
ℎ ≔
𝑏 − 𝑎
𝑁
; 
𝑌 ≔ (0, ,𝑤0)
𝑇; % Viết 𝑌 = (𝑦1,  , 𝑦𝑘). 
ma trận 𝐴, 𝐵; 
𝑖 ≔ 0; 
hàm 𝐺(𝑋) = 𝑤0𝐴 + ℎ𝐵𝐹(𝑡𝑖+1, 𝑋) − 𝑋; 
𝐹𝐿𝐴𝐺 ≔ 0; % Điều kiện thoát vòng While 
Bước 2. Quy trình lặp: 
While (𝑖 < 𝑁) and (𝐹𝐿𝐴𝐺 = 0) do 
 𝑘 ≔ 1; 
 While 𝑘 ≤ 𝑀 do % Vòng While trong 
 tính 𝐽𝐺(𝑌), 𝐺(𝑌); 
 giải hệ phương trình 𝐽𝐺(𝑌)𝑋 = −𝐺(𝑌); 
 cập nhật 𝑌 ≔ 𝑌 + 𝑋; 
 If ‖𝑋‖ < 𝑡𝑜𝑙 then 
 cập nhật 𝑤0 ≔ 𝑦𝑘; 
 chấp nhận xấp xỉ 𝑌𝑖+1 ≔ 𝑌; 
 exit;%Thoát vòng While 
trong 
 Else If (𝑘 = 𝑀) then 
 OUT=”fail”; 
 𝐹𝐿𝐴𝐺 ≔ 1; 
 % Thông báo số vòng lặp vượt quá 
M. 
 % Thoát vòng lặp While ngoài. 
 End If. 
 𝑘 ≔ 𝑘 + 1; 
 End do. % Kết thúc vòng While trong. 
 𝑖 ≔ 𝑖 + 3; 
End do. % Kết thúc vòng While ngoài. 
Bước 3. Xuất kết quả 𝑌1, 𝑌𝑘+1,  , 𝑌𝑘(𝑝−1)+1, 
hoặc thông báo quá trình thất bại do vượt quá 
số vòng lặp M quy định. 
Chương trình sau đây lập trình cho phương 
pháp với 𝑘 = 3. 
Chương trình Matlab 
function 
outp=BDFblock(f,a,b,alpha,N,to
l,M) 
% NOTE: N must be a multiple 
of k. 
%----Exact solution to 
compare---- 
syms p(r); 
format long; 
eqn=diff(p,r)==f(r,p); 
icd=p(a)==alpha; 
as=dsolve(eqn,icd); 
xi=double(subs(as,r,a:(b-
a)/N:b)); 
ti=a:(b-a)/N:b; 
%--------------STEP 1---------
---- 
t0=a; 
y0=alpha; 
h=(b-a)/N; 
A=[1;1;1]; 
B=[23/12,-4/3,5/12;7/3,-
2/3,1/3;9/4,0,3/4]; 
syms s0 s u z s1 s2 s3; 
K=diag([subs(diff(f(s0,z),z),[
s0,z],[s+h,s1]),subs(diff(f(s0
,z),z),[s0,z],[s+2*h,s2]),subs
(diff(f(s0,z),z),[s0,z],[s+3*h
,s3])]); 
Jg=h*B*K-eye(3);% Jacobian of 
G 
Đinh Văn Tiệp và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 424 - 431 
430  Email: jst@tnu.edu.vn 
G=u*A+h*B*[f(s+h,s1);f(s+2*h,s
2);f(s+3*h,s3)]-
[s1;s2;s3];%function G 
t=[t0]; 
w=[y0]; 
Y=[0;0;y0]; 
%-------------STEP 2----------
--- 
i=0; 
FLAG=0; 
%Use to STOP outer while-loop 
while (i<N)&(FLAG==0)% Outer 
while 
 k=1; 
while k<=M % Inner while-loop 
J=double(subs(Jg,[s,s1,s2,s3],
[t0,Y(1),Y(2),Y(3)])); 
G1=double(subs(G,[u,s,s1,s2,s3
],[y0,t0,Y(1),Y(2),Y(3)])); 
 X=linsolve(J,-G1); 
 Y=Y+X; 
 if (norm(X)<tol) 
 w=[w,Y(1),Y(2),Y(3)]; 
 y0=Y(3); 
 =[t,t0+h,t0+2*h,t0+3*h]; 
 t0=t0+3*h; 
 break 
 elseif k==M 
 fprintf('Fail!’); 
 FLAG=1; 
 end 
 k=k+1; 
end 
i=i+3; 
end 
%---------------Step 3--------
---- 
outp=[t',w',xi',abs(w-xi)']; 
end 
%---------------END-----------
---- 
4. So sánh thực nghiệm 
Phương pháp thực nghiệm được đưa ra ở đây 
để so sánh tính chính xác của phương pháp 
BDF dạng khối liên tục (với 𝑘 = 3) và 
phương pháp BDF thông thường sử dụng trực 
tiếp vòng lặp Newton bậc 4 và bậc 5. Các kết 
quả được thể hiện trong bảng 1 dưới đây. 
Ví dụ. Xét các phương trình sau (xem [4]) 
𝑦′ = 𝑦 − 𝑡2 + 1, 𝑦(0) =
1
2
, 0 ≤ 𝑡 ≤ 2, (9) 
{
𝑦′ = 5𝑒5𝑡(𝑦 − 𝑡)2 + 1
𝑦(0) = −1, 𝑡 ∈ [0,1]
 (10) 
{
𝑦′ = −20𝑦 + 20 cos 𝑡 − sin 𝑡
𝑦(0) = 0, 𝑡 ∈ [0,2]
 (11) 
{
𝑦′ = −20(𝑦 − 𝑡2) + 2𝑡
𝑦(0) = 1/3, 𝑡 ∈ [0,1]
 (12) 
Các kết quả thực nghiệm được cho trong bảng 
1 để đánh giá sai số cho thấy ưu điểm của các 
phương pháp BDF dạng khối so với các 
phương pháp BDF thông thường ở việc tạo ra 
các giá trị xấp xỉ chính xác cao hơn với kích 
thước bước ℎ vừa phải. Độ chính xác của 
BDF dạng khối với 𝑘 = 3, ký hiệu 
BDFblock3, giảm dần khi ℎ tăng lên so với 
các phương pháp BDF4 và BDF5 (có bậc 4, 
và 5 tương ứng). Điều này cũng dễ hiểu từ 
việc các phương pháp này có bậc cao hơn so 
với phương pháp được mang ra đánh giá. Tuy 
nhiên, nếu so sánh với phương pháp cùng bậc, 
thì các phương pháp BDF dạng khối liên tục 
rõ ràng nổi trội hơn. Điều này càng được thể 
hiện rõ hơn trong các bài toán stiff với độ 
“nhất thời” ( tức “transient”) càng lớn. 
5. Kết luận 
Việc xây dựng trình thực thi cho các phương 
pháp BDF dạng khối theo phương pháp lặp 
Newton giúp khai thác tốt độ chính xác của 
các phương pháp này, đặc biệt trong các bài 
toán stiff. 
Cách tiếp cận thứ hai của trình thực thi dựa 
vào việc giải phương trình phi tuyến tính (5) 
liên tiếp qua mỗi đoạn k - bước được giải 
quyết tốt nhờ thuật toán Newton. 
Đinh Văn Tiệp và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 424 - 431 
 Email: jst@tnu.edu.vn 431 
TÀI LIỆU THAM KHẢO/ REFERENCES 
[1]. O. A. Akinfenwa, S. N. Jator, and N. M. Yao, 
“Continuous block backward differentiation 
formula for solving stiff ordinary differential 
equations,” Computers & Mathematics with 
Applications, vol. 65, no. 7, pp. 996-1005, 
2013. 
[2]. O. A. Akinfenwa, S. N. Jator, and N. M. Yao, 
“On The Stability of Continuous Block 
Backward Differentiation Formula For 
Solving Stiff Ordinary Differential 
Equations,” J. of Mod. Meth. in Numer. 
Math., vol. 3, no. 2, pp. 50-58, 2012. 
[3]. J. R. Cash, “Review paper. Efficient 
numerical methods for the solution of stiff 
initial-value problems and differential 
algebraic equations,” Proc. R. Soc. Lond. Ser. 
A Math. Phys. Eng. Sci., vol. 459, no. 2032, 
pp. 797-815, 2003. 
[4]. R. L. Burden, and J. D.Faires, Numerical 
Analysis, 9th Edition, Brooks/Cole, 2010. 
Bảng 1. Các giá trị sai số tuyệt đối ở bước cuối cùng tạo ra bởi các phương pháp BDF4, BDF5 thông 
thường và phương pháp BDF3 dạng khối liên tục (ký hiệu BDFblock3). 
Equations BDF4 BDF5 BDFblock3 
(9), M=10, 
N=6,12, 30, 
tol=0.001, 
5.3× 10−3, 6.5× 10−4, 
2.4× 10−5 
1.4× 10−3, 
1.1× 10−4, 
1.8× 10−6 
6.13× 10−2, 
5.64× 10−3, 
3.05× 10−4 
(10), M=10, 
N=6, 12, 30, 
tol=0.001 
3.95× 10−3, 
8.3× 10−5, 
3.2× 10−6 
1.8× 10−3, 
4.4× 10−5, 
3.5× 10−6 
3.1× 10−4, 
2.5× 10−5, 
6.5 × 10−6 
(11), M=10, 
N=6,12, 30, 300 
tol=0.001 
7.8× 103, 
7.3× 10−2, 
9.95 × 10−8, 
1.84× 10−11 
1.84× 106, 
1.28, 
1.1 × 10−5, 
4.6× 10−14 
5.5× 10−4, 
5.7× 10−6, 
2.4 × 10−7, 
5.6× 10−10 
(12), M=10, 
N= 6, 12, 30, tol=0.001 
0.42, 
8.74 × 10−5, 
1.02× 10−9 
1.13, 
2.2 × 10−4, 
2.53× 10−7 
1.48× 10−4, 
3.79× 10−8, 
2.62× 10−10 

File đính kèm:

  • pdfxay_dung_trinh_thuc_thi_cho_phuong_phap_sai_phan_lui_dang_kh.pdf