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

(Luận văn thạc sĩ) một số phương pháp giải số phương trình và hệ phương trình vi phân cấp cao

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 (326.95 KB, 55 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC

Ngô Thị Thu Hương

MỘT SỐ PHƯƠNG PHÁP GIẢI SỐ
PHƯƠNG TRÌNH VÀ HỆ PHƯƠNG TRÌNH
VI PHÂN CẤP CAO

LUẬN VĂN THẠC SĨ TỐN HỌC

Thái Ngun - 2017


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC

Ngô Thị Thu Hương

MỘT SỐ PHƯƠNG PHÁP GIẢI SỐ
PHƯƠNG TRÌNH VÀ HỆ PHƯƠNG TRÌNH
VI PHÂN CẤP CAO

Chun ngành: Tốn ứng dụng
Mã số: 60.46.01.12

LUẬN VĂN THẠC SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS. Vũ Vinh Quang



Thái Nguyên - 2017


i

Mục lục
Bảng ký hiệu

1

Danh sách bảng

2

Danh sách hình vẽ

3

Mở đầu

4

1 Một số kiến thức cơ bản
1.1 Một số khái niệm cơ bản của Giải tích hàm . .
1.1.1 Khơng gian metric . . . . . . . . . . . .
1.1.2 Ánh xạ co . . . . . . . . . . . . . . . .
1.1.3 Nguyên lí ánh xạ co . . . . . . . . . . .
1.2 Phương pháp sai phân . . . . . . . . . . . . . .
1.2.1 Lưới sai phân . . . . . . . . . . . . . .

1.2.2 Hàm lưới . . . . . . . . . . . . . . . . .
1.2.3 Công thức Taylor . . . . . . . . . . . .
1.2.4 Một số công thức xấp xỉ đạo hàm . . .
1.3 Thuật toán truy đuổi 3 đường chéo . . . . . . .
1.4 Phương pháp lưới giải bài toán biên cho phương

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
trình

. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
cấp 2


.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

6
6
6
6
7
7

7
7
7
8
10
12

2 Phương pháp số giải phương trình vi phân phi tuyến cấp cao
và hệ phương trình vi phân với hệ điều kiện đầu
16
2.1 Cơ sở lý thuyết về phương pháp Runge-Kutta . . . . . . . . . . 16
2.1.1 Phương pháp Euler 1 . . . . . . . . . . . . . . . . . . . . 17
2.1.2 Phương pháp Euler 2 . . . . . . . . . . . . . . . . . . . . 18
2.1.3 Thuật toán RK4 . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Phương pháp Runge-Kutta đối với hệ phương trình vi phân phi
tuyến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Phương pháp Runge-Kutta đối với phương trình vi phân cấp cao 21
2.4 Giới thiệu thư viện QH_2015 . . . . . . . . . . . . . . . . . . . 23


ii

3

Phương pháp lặp giải mơ hình các bài
cấp 4
3.1 Giới thiệu . . . . . . . . . . . . . . . . .
3.2 Nghiên cứu các tính chất của nghiệm . .
3.3 Phương pháp xây dựng sơ đồ lặp . . . .
3.3.1 Cơ sở lý thuyết . . . . . . . . . .

3.3.2 Sơ đồ lặp tìm nghiệm số . . . . .
3.3.3 Một số kết quả thực nghiệm . . .

toán biên phi tuyến
26
. . . . . . . . . . . . . 26
. . . . . . . . . . . . . 27
. . . . . . . . . . . . . 30
. . . . . . . . . . . . . 30
. . . . . . . . . . . . . 33
. . . . . . . . . . . . . 36

Kết luận

44

Tài liệu tham khảo chính

45


iii

Lời cảm ơn
Tơi xin bày tỏ lịng biết ơn sâu sắc tới thầy tôi TS. Vũ Vinh Quang, người
đã trực tiếp hướng dẫn luận văn, đã tận tình chỉ bảo và hướng dẫn tơi tìm
ra hướng nghiên cứu, tìm kiếm tài liệu, giải quyết vấn đề... nhờ đó tơi mới có
thể hồn thành luận văn cao học của mình. Từ tận đáy lịng, tơi xin bày tỏ
lịng biết ơn chân thành và sâu sắc nhất tới Thầy của tôi và tôi sẽ cố gắng
hơn nữa để xứng đáng với công lao của Thầy.

Tôi xin chân thành cảm ơn Ban giám hiệu, phòng Đào tạo trường Đại học
Khoa học - Đại học Thái Nguyên đã quan tâm và giúp đỡ tôi trong suốt thời
gian học tập tại trường. Tôi xin cảm ơn q thầy cơ Khoa Tốn - Tin và đặc
biệt là PGS.TS. Nguyễn Thị Thu Thủy, trưởng Khoa Toán - Tin, đã ln
quan tâm, động viên, trao đổi và đóng góp những ý kiến q báu trong suốt
q trình học tập, nghiên cứu và hồn thành luận văn.
Cuối cùng, tơi muốn bày tỏ lòng biết ơn sâu sắc tới những người thân trong
gia đình, đặc biệt là bố mẹ. Những người ln động viên, chia sẻ mọi khó
khăn cùng tơi trong suốt thời gian qua và đặc biệt là trong thời gian tơi theo
học khóa thạc sỹ tại trường Đại học Khoa học - Đại học Thái Nguyên.
Thái Nguyên, tháng 10 năm 2017
Tác giả luận văn

Ngô Thị Thu Hương


1

Bảng ký hiệu
R
R+
R ∪ {±∞}
Rn
Ωh
C 1 [0; L]
A∪B
A∩B
x, y
[x, y]
l2

f (n)
∆a

Trường số thực.
tập số thực không âm
tập số thực mở rộng
Khơng gian Euclide n-chiều.
Khơng gian lưới.
Khơng gian của hàm có đạo hàm liên tục.
hợp của hai tập A và B
giao của hai tập A và B
tích vơ hướng của hai véc-tơ x, y ∈ H
đoạn thẳng nối x và y
không gian các dãy số vô hạn
đạo hàm cấp n
sai số tuyệt đối của a


2

Danh sách bảng
2.1
2.2

Kết quả kiểm tra sai số đối với lược đồ QH_m . . . . . . . . . . 24
Kết quả kiểm tra sai số đối với lược đồ QH_m . . . . . . . . . . 25

3.1
3.2
3.3

3.4
3.5

Trường
Trường
Trường
Trường
Trường

hợp
hợp
hợp
hợp
hợp

biết trước nghiệm đúng (Tofuma_moi.m) . . . . . .
biết trước nghiệm đúng (Tofuma_moi.m) . . . . . .
không biết trước nghiệm đúng (Tofuma_moi_xx.m)
biết trước nghiệm đúng (Tofuma_tq.m) . . . . . . .
không biết trước nghiệm đúng (Tofuma_tp_xx.m)

37
38
39
40
42


3


Danh sách hình vẽ
3.1
3.2
3.3
3.4
3.5

Đồ
Đồ
Đồ
Đồ
Đồ

thị
thị
thị
thị
thị

sai
sai
sai
sai
sai

số
số
số
số
số


giữa
giữa
giữa
giữa
giữa

nghiệm
nghiệm
nghiệm
nghiệm
nghiệm

đúng
đúng
đúng
đúng
đúng







nghiệm
nghiệm
nghiệm
nghiệm
nghiệm


gần
gần
gần
gần
gần

đúng
đúng
đúng
đúng
đúng

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.


.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

37
38
39
41
43



4

Mở đầu
Phương trình vi phân dạng tuyến tính và phi tuyến tính là một lớp phương
trình cơ bản trong lý thuyết phương trình vi phân có ứng dụng quan trọng
đối với các bài toán thực tế đặc biệt là lý thuyết điều khiển ổn định. Về mặt lý
thuyết tổng quát của lớp phương trình này đã được các nhà tốn học nghiên
cứu từ rất lâu, tuy nhiên vấn đề tìm nghiệm giải tích của các phương trình
này chỉ thực hiện được đối với các phương trình dạng đặc biệt cịn chủ yếu là
phải xác định nghiệm xấp xỉ qua các phương pháp gần đúng. Đối với phương
trình vi phân cấp 2, với các bài toán điều kiện đầu, người ta đã xây dựng các
phương pháp giải số dựa trên công thức Runge-Kutta với độ chính xác bậc 4,
đối với bài toán biên với hệ điều kiện biên hỗn hợp, sử dụng phương pháp sai
phân, chúng ta có thể đưa về hệ phương trình đại số dạng 3 đường chéo và hệ
giải được bằng thuật toán truy đuổi. Đối với phương trình vi phân tuyến tính
bậc 4, bằng phương pháp phân rã, chúng ta có thể đưa về 2 bài tốn cấp hai
để xác định nghiệm thơng qua các thuật tốn đã biết. Tuy nhiên khi phương
trình là dạng phi tuyến hoặc điều kiện biên là phi tuyến thì để tìm nghiệm
xấp xỉ, chúng ta cần phải xây dựng các sơ đồ lặp tùy từng dạng bài toán để
xác định nghiệm xấp xỉ của bài toán.
Nội dung của luận văn là tìm hiểu một số phương pháp giải số phương trình
vi phân cấp cao và hệ phương trình vi phân với hệ điều kiện đầu, phương pháp
lặp đối với một số dạng bài tốn cho phương trình cấp 4 với hệ điều kiện biên
dạng phi tuyến, nghiên cứu tính chất hội tụ của các sơ đồ lặp và kiểm tra
tính đúng đắn của các sơ đồ lặp trên máy tính điện tử.
Nội dung luận văn chia làm 3 chương
Chương 1: Một số kiến thức cơ bản.



5

Chương 2: Phương pháp số giải phương trình vi phân phi tuyến cấp cao và
hệ phương trình vi phân với hệ điều kiện đầu.
Chương 3: Phương pháp lặp giải mô hình các bài tốn biên phi tuyến
cấp 4.


6

Chương 1

Một số kiến thức cơ bản
Trong chương này chúng tơi trình bày một số kết quả lý thuyết về các sơ
đồ lặp, phương pháp sai phân đối với phương trình vi phân cấp 2 và thuật
tốn truy đuổi 3 đường chéo. Những kết quả này là những kiến thức bổ trợ
cho việc trình bày các kết quả chính trong chương 2 và chương 3. Các kết quả
lý thuyết được tham khảo trong các tài liệu [1, 2, 3].
1.1
1.1.1

Một số khái niệm cơ bản của Giải tích hàm
Khơng gian metric

Định nghĩa 1.1.1 Tập X của các phần tử x, y, z . . . được gọi là không gian
metric nếu như với mọi phần x, y bất kì đều tương ứng với với 1 số không âm
d(x,y) thỏa mãn các điều kiện sau:
+ d(x,y)>0, d(x,y)=0 khi và chỉ khi x=y
+ d(x,y)=d(y,x)

+ d(x,y) ≤d(x,z)+d(z,y).

Số d(x, y) được gọi là khoảng cách giữa 2 phần tử x và y hay thường gọi là
metric.
Định nghĩa 1.1.2 Dãy {xn }được gọi là 1 dãy cơ bản nếu ∀ε > 0, đều tồn tại
số N > 0 sao cho với mọi m,n>N ta đều có d(xn , xm ) ≤ ε.

Nếu bất kì một dãy cơ bản nào trong không gian X đều hội tụ đến phần
tử thuộc X thì X được gọi là khơng gian đủ.

1.1.2

Ánh xạ co

Định nghĩa 1.1.3 Một ánh xạ A từ khơng gian metric (X,d) vào chính nó
được gọi là ánh xạ co nếu tồn tại hằng số q ∈ (0, 1) sao cho với mọi x, y ∈ X,


7

d(A(x), A(y)) < qd(x, y).
Khi đó hằng số q được gọi là hệ số co của ánh xạ A.
1.1.3

Nguyên lí ánh xạ co

Cho A là ánh xạ co trong không gian metric đủ (X, d). Khi đó:
• Tồn tại duy nhất x∗ ∈ X sao cho A(x∗ ) = x∗ . Phần tử x∗ ∈ X gọi là
điểm bất động của ánh xạ A.
• Mọi dãy lặp xn+1 = A(xn ), (n ≥ 0) xuất phát từ x0 bất kì đều hội tụ.

Ngồi ra ta có ước lượng sau
d(xn , x∗ ) ≤ q n (1 − q)−1 d(x0 , x1 )
d(xn , x∗ ) ≤ q(1 − q)−1 d(xn−1 , xn )
1.2
1.2.1

(n ≥ 1),
(n ≥ 1).

Phương pháp sai phân
Lưới sai phân

Ta chia đoạn [a, b] thành N đoạn con bằng nhau, mỗi đoạn con dài
b−a
h=
bởi các điểm xi = a + ih, i = 0, 1, ..., N . Khi đó tập các điểm xi gọi
N
là một lưới sai phân trên [a, b] ký hiệu là Ωh , mỗi điểm xi gọi là một nút của
lưới, h gọi là bước đi của lưới.
1.2.2

Hàm lưới

Xét hàm số u(x) xác định trên đoạn [a,b], khi đó tập giá trị của hàm trên
các điểm lưới được gọi là hàm lưới ui = u (xi ).
1.2.3

Công thức Taylor

Giả sử u(x) là một hàm số xác định và có đạo hàm đến cấp m + 1 trong

một khoảng (α, β) chứa x và x + ∆x, ∆x có thể âm hay dương. Khi đó ta có
cơng thức khai triển:
(∆x)2 ′′
u(x + ∆x) = u(x) + ∆xu (x) +
u (x) + ...
2!
(∆x)m+1 (m+1)
(∆x)m (m)
u (x) +
u
(c).
... +
m!
(m + 1)!


trong đó c là một điểm ở trong khoảng từ x đến x+∆x. Có thể viết c = x+θ∆x
với 0 < θ < 1. Ta giả thiết thêm:
u(m+1) (x) ≤ M = const, x ∈ [α, β] .


8

(∆x)(m+1) (m+1)
u
(c) là một vô cùng bé khi ∆x → 0. Tức là tồn tại
Khi đó
(m + 1)!
hằng số K > 0 không phụ thuộc vào ∆x sao cho:
(∆x)(m+1) (m+1)

u
(c) ≤ K(∆x)(m+1)
(m + 1)!
.
Cơng thức Taylor ở trên có thể viết gọn hơn như sau:
(∆x)m m
(∆x)2 ′′
u (x)+...+
u (x)+O (∆x)(m+1) .
u(x+∆x) = u(x)+∆xu (x)+
2!
m!


1.2.4

Một số công thức xấp xỉ đạo hàm

Xét không gian lưới Ωh với bước lưới h =
khai triển Taylo tổng quát đối với hàm u(x):

b−a
, chúng ta xét công thức
N

h2 ′′ h3 (3) h(4) (4)
u + .. + O(hn ).
u(x ± h) = u(x) ± hu + u ± u +
2
6

24


Xuất phát từ công thức Taylo dừng với 3 số hạng khai triển, chúng ta nhận
được các cơng thức xấp xỉ đạo hàm với độ chính xác cấp 1 và cấp 2 như sau:
u′ (xi ) =
u′′ (xi ) =

ui+1 − ui
+ O(h).
h

ui+1 − ui−1
+ O(h2 ).
2h

Nếu sử dụng công thức khai triển Taylo với 6 số hạng khai triển, chúng ta
thu được các công thức

ui+1

h2 ′′ h3 (3) h4 (4)
h5 (5)
h6 (6)
u +
u + O(h6 ).
= ui + hui + ui + ui + ui +
2
6
24

120 i
720 i




ui−1 = ui − hui +

h2 ′′ h3 (3) h4 (4)
h5 (5)
h6 (4)
ui − ui + ui −
ui +
ui + O(h6 ).
2
6
24
120
720

Từ đây suy ra
ui+1 + ui−1

h4 (4)
h6 (6)
= 2ui + h ui + ui +
ui + O(h6 ).
12
360
2


′′


9

hay
′′

ui =

h4 (6)
ui−1 − 2ui + ui+1 h2 (4)

u
ui + O(h4 ).

i
2
h
12
360

Vậy ta có lược đồ sai phân với độ chính xác cấp 6
h2 (4)
h4 (6)
ui−1 − 2ui + ui+1
(2)
= ui + u i +
u ; i = 1, 2, ..., n − 1.

h2
12
360 i
Với hàm f (x) tùy ý, ta cần xác định các đạo hàm các cấp thông qua giá trị
hàm tại các mốc nội suy.
Sử dụng kết quả của đa thức nội suy Lagrange, ta có
n

f

(m)

(m)

f (xk )Lk (xi ) + R(xi ); i = 0, 1, ..., n.

(xi ) =
k=0

Trong đó độ chính xác của khai triển càng cao khi số mốc nội suy càng lớn.
Như vậy các đạo hàm của hàm tại điểm xi được tính qua các giá trị hàm tại
các điểm xk với độ chính xác bậc cao.
Bằng tính tốn cụ thể, ta có các cơng thức sau đây
Đạo hàm cấp 1
1
(−25f0 + 48f1 − 36f2 + 16f3 − 3f4 ) + O(h4 ),
12h
1
(25fn − 48fn−1 + 36fn−2 − 16fn−3 + 3fn−4 ) + O(h4 ).
f ′ (xn ) =

12h
f ′ (x0 ) =

Đạo hàm cấp 2
f ′′ (x0 ) =

1
(35f0 − 104f1 + 114f2 − 56f3 + 11f4 ) + O(h2 ),
2
12h

f ′′ (x1 ) =

1
(11f0 − 20f1 + 6f2 + 4f3 − f4 ) + O(h2 ),
12h2

f ′′ (xk ) =

1
(−fk−2 + 16fk−1 − 30fk + 16fk+1 − fk+2 ) + O(h2 ),
12h2

f ′′ (xn−1 ) =

1
(11fn − 20fn−1 + 6fn−2 + 4fn−3 − fn−4 ) + O(h2 ),
12h2



10

f ′′ (xn ) =

1
(35fn − 104fn−1 + 114fn−2 − 56fn−3 + 11fn−4 ) + O(h2 ),
2
12h

Đạo hàm cấp 4
f (4) (x0 ) =

1
(f0 − 4f1 + 6f2 − 4f3 + f4 ) + O(h),
h4

f (4) (x1 ) =

1
(f0 − 4f1 + 6f2 − 4f3 + f4 ) + O(h),
h4

f (4) (xk ) =

1
(fk−2 − 4fk−1 + 6fk − 4fk+1 + fk+2 ) + O(h),
h4

f (4) (xn−1 ) =
f (4) (xn ) =


1
(fn − 4fn−1 + 6fn−2 − 4fn−3 + fn−4 ) + O(h),
h4

1
(fn − 4fn−1 + 6fn−2 − 4fn−3 + fn−4 ) + O(h).
h4

Các cơng thức tính xấp xỉ đạo hàm trên sẽ được sử dụng để xây dựng các
lược đồ sai phân giải các phương trình vi phân.
1.3

Thuật tốn truy đuổi 3 đường chéo

Xét hệ phương trình:


 C 1 x 1 + B 1 x2 = f 1 .
Ai xi−1 + Ci xi + Bi xi+1 = fi ; (i = 1, 2, ..., n − 1).

A x
= fn .
n n−1 + Cn xn
Có hệ ma trận:



C1
B1

0
...
0
0

 A2
A2
B2
...
0
0

A= 
 ............................................................
0
0
0
...
Cn−1
Bn−1

0
0
0
...
An
Cn

dạng 3 đường chéo.


X = (x0 , x1 , ..., xn ) : ẩn phải tìm;

D = (f0 , f1 , ..., fn ) : cột vế phải.










(1.1)


11

Các hệ số của ma trận 3 đường chéo cần thỏa mãn các điều kiện sau đây:
|Ci | ≥ |Ai | + |Bi | , i = 1, 2, ..., n. trong đó tồn tại ít nhất một bất đẳng thức
chặt.
Hệ phương trình trên được gọi là hệ 3 đường chéo. Đối với hệ dạng đặc biệt
này, chúng ta có thể tìm nghiệm của hệ bằng thuật tốn sau đây.
Thuật tốn truy đuổi 3 đường chéo
Ta đi tìm nghiệm của hệ (1.1) trong dạng:
xi = αi+1 xi+1 + βi+1 ; i = 0, 1, 2, ..., n − 1,

(1.2)

trong đó αi+1 , βi+1 được tìm từ điều kiện ràng buộc (1.2), là nghiệm của

hệ (1.1). Thay (1.2) vào (1.1) và sử dụng đẳng thức:
xi−1 = αi xi + βi = αi (αi+1 xi+1 + βi+1 ) + βi .
ta được:
[αi+1 (αi Ai − Ci ) + Bi ] xi+1 + [(αi Ai − Ci ) Bi+1 + βi Ai + di ] = 0.
Đẳng thức này đúng ∀i = 1, 2, ..., n − 1 nên:
αi+1 (αi Ai − Ci ) + βi = 0,
(αi Ai − Ci ) Bi+1 + βi Ai + di = 0.

Từ đó ta có công thức truy hồi:

αi+1 =
Bi+1 =

βi
,
(Ci − αi Ai )

βi Ai + di
; i = 1, 2, ..., n − 1.
(Ci − αi Ai )

Để có các hệ số đó, ta cần xác định α1 , β1 ;
Do phương trình đầu tiên: −C0 x0 + B0 x1 = −d0 .
d0
B0
x1 +
= α1 x1 + β1 có dạng (1.2).
hay: x0 =
C0
C0

d0
B0
, β1 =
.
Nghĩa là: α1 =
C0
C0
Nhưng để tính theo cơng thức (1.2), ta cần có xn . Ẩn xn sẽ được tìm nhờ


12

phương trình cuối cùng của hệ (1.1)
An xn+1 − Cn xn = −dn .
Lại theo (1.2) ta có: xn−1 = αn xn + βn .

βn An + dn
.
C n − An α n
Như vậy nghiệm của hệ (1.1) được tìm theo công thức

Bi
Ai βi + di


αi+1 =
; βi+1 =
; i = 1, 2, ..., n − 1,



C

α
A
C

α
A
i
i
i
i
i
i



 α = B0 ; β = d0 ,
1
1
Co
Co


xi = αi+1 xi+1 + βi+1 ; i = 1, 2, .., n − 1,




β A + dn


 xn = n n
.
C n − An α n
Loại trừ xn−1 từ hệ này, ta suy ra được: xn =

(1.3)

Xuất phát từ các cơng thức trên, thuật tốn truy đuổi 3 đường chéo được
thực hiện bằng thuật toán sau đây:
Thuật toán
f1
B1
, xác định tất cả các giá trị
Bước 1: Xuất phát từ α1 = − , β1 =
C1
C1
αi , βi , ∀i = 2, 3, ..., n theo công thức:
αi+1 =

Bi
Ai βi + di
; βi+1 =
; i = 1, 2, ..., n − 1.
C i − α i Ai
C i − α i Ai

Bước 2: Xuất phát từ xn =
n − 1, n − 2, ..., 1, theo công thức:


βn An + dn
, xác định tất cả các xi , i =
Cn − An αn

xi = αi+1 xi+1 + βi+1 ; i = 1, 2, .., n − 1,
Chúng ta có thể thấy rằng độ phức tạp của thuật toán là O(n).
1.4

Phương pháp lưới giải bài toán biên cho phương trình cấp 2

Xét bài tốn biên

u′′ = f (x), x ∈ [a, b],
α0 u(a) − α1 u′ (a) = A,
β0 u(b) + β1 u′ (b) = B.

α0 , α1 , β0 , β1 ≥ 0, α02 + α12 > 0, A, B là các hằng số tùy ý.

(1.4)


13

Thuật tốn thơng thường
Sử dụng các cơng thức sai phân với độ chính xác cấp 2, ta có
ui+1 − 2ui + ui−1
+ O(h2 ),
h2
u 1 − u0
un−1 − un



u0 =
+ O(h), un =
+ O(h).
2h
−h

u′′ =

Khi đó (1.4) được đưa về hệ phương trình sai phân sau đây


= 2hA,
 (2hα0 + α1 )u0 − α1 u1
ui+1 − 2ui + ui−1
= h2 fi ,

 −β u
1 n−1 + (2hβ0 + β1 )un = 2hB.

(1.5)

Hệ phương trình (1.5) có dạng hệ truy đuổi 3 đường chéo có tính chất chéo
trội, do đó giải được bằng thuật toán truy đuổi với độ phức tạp O(n). Do
phương pháp sai phân của các đạo hàm nên độ chính xác chỉ là O(h).
Thuật tốn với độ chính xác bậc cao
Sử dụng các công thức xấp xỉ đạo hàm với độ chính xác bậc cao, ta thu
được
ui+1


h2 ′′ h3 (3) h4 ′′
h5 (5)
h6 (4)
= ui + hui + ui + ui + fi +
u +
f + O(h6 ),
2
6
24
120 i
720 i

ui−1

h2 ′′ h3 (3) h4 ′′
h5 (5)
h6 (4)
= ui − hui + ui − ui + fi −
ui +
fi + O(h6 ).
2
6
24
120
720






Hay
′′

ui =

h4 (4)
ui−1 − 2ui + ui+1 h2 ′′

f

fi + O(h4 ).
i
2
h
12
360

Vậy ta có lược đồ sai phân với độ chính xác cấp 6
h2 ′′
h4 (4)
ui−1 − 2ui + ui+1
= fi + fi +
f ; i = 1, 2, ..., n − 1
h2
12
360 i
Sử dụng các công thức đạo hàm cấp 1 để sai phân hệ điều kiện biên của
bài tốn, ta thu được hệ phương trình sai phân với độ chính xác cấp 4 như



14

sau:
α1
(−25u0 + 48u1 − 36u2 + 16u3 − 3u4 ) = A,
12h
h4 ′′
h6 (4)
ui−1 − 2ui + ui+1 = h2 fi + fi +
f ; i = 1, 2, ..., n − 1,
12
360 i
β1
(25un − 48un−1 + 36un−2 − 16un−3 + 3un−4 ) = B.
β0 un +
12h
α 0 u0 −

Ta thu được hệ đại số tuyến tính
AU = F












A=









a00 a01
a10 a11
0 a21
0 0
0 0
...

a02 a03 a04
a12 0 0
a22 a23 0
a31 a32 a33
0 0 0
...

0
0
0
0

0
...

(1.6)


an−3n−4 an−3n−3 an−4n−3
0
0
0
an−2n−3 an−2n−2 an−2n−1
0
0
0
an−1n−2 an−1n−1 an−1n
ann−4
ann−3
ann−2
ann−1
ann
U = (u0 , u1 , ..., un )T ; F = (F0 , F1 , ..., Fn )T





















Hệ phương trình sai phân (1.3) chính là hệ phương trình sai phân tương
ứng với bài tốn biên cho phương trình vi phân (1.1) với độ chính xác cấp 4.
Trong trường hợp khi điều kiện biên có dạng Dirichlet u(a) = A; u(b) = B thì
ta thu được lược đồ sai phân với đội chính xác cấp 6 (do khơng phải sai phân
điều kiện biên).
Bởi vì ma trận A của hệ khơng phải dạng 3 đường chéo, do đó hệ khơng
giải được bằng thuật tốn truy đuổi.
Nhận xét: Có thể thấy rằng qua một số hữu hạn phép biến đổi thì ta có
thể chuyên hệ ban đầu về dạng 3 đường chéo với các hệ số được xác định bởi
các công thức:
α1
α1
a00 = α0 + ; a01 = − ;
h
h
ai−1i = 1; aii = −2; aii+1 = 1; i = 1, 2, ..., n − 1,
β1
β1
an−1n = ; ann = β0 + .

h
h


15

Do điều kiện α0 , α1 > 0, β0 , β1 ≥ 0 do đó các hệ số của hệ thỏa mãn tính
chất
|a00 | > |a01 | , |ann | > |an−1n | , |aii | = |aii−1 | + |aii+1 | , ∀i = 1, 2, ..., n − 1.
Tức là hệ thu được là hệ 3 đường chéo có tính chất chéo trội và hệ sẽ giải
được bằng thuật tốn 3 đường chéo với độ phức tạp tính tốn O(n).
Kết luận
Nội dung chính của chương 1 trình bày các lý thuyết cơ bản về không gian
metric, nguyên lý ánh xạ co và cơ sở của các phương pháp sai phân, xấp xỉ
đạo hàm dựa trên khai triển Taylo tổng quát. Các kết quả này chính là cơ sở
để nghiên cứu các nội dung trong các chương tiếp theo của luận văn.


16

Chương 2

Phương pháp số giải phương trình vi
phân phi tuyến cấp cao và hệ phương
trình vi phân với hệ điều kiện đầu
Nội dung chương 2 trình bày cơ sở lý thuyết để xây dựng các lược đồ tính
tốn tìm nghiệm số cho phương trình và hệ phương trình vi phân. Các kết
quả lý thuyết được tham khảo trong các tài liệu [1, 8, 9, 10].
2.1


Cơ sở lý thuyết về phương pháp Runge-Kutta

Xét bài tốn Cauchy, hay cịn gọi là bài tốn giá trị ban đầu: Tìm y(x)
thỏa mãn điều kiện:


y = f (x, y), x0 ≤ x ≤ x
y(x0 ) = y0 , (y, f ∈ Rm ).

(2.1)

Ta quan tâm đến phương pháp tìm nghiệm bằng số của (2.1) tại điểm
x1 = x0 + h với bước h > 0. Hai nhà toán học người Đức là Runge và Kutta
đề xuất một phương pháp tìm nghiệm y1 , chỉ phải tính một hàm f (x, y) tại
một số điểm khác nhau:
Đặt y1 = y0 + ∆y0 , trong đó ∆y0 = pr1 k1 (h) + ... + prr kr (h).
ki (h) = hf (ξi , vi ) ; ξi = x0 + αi h; α1 = 0;
i = 1, r
vi = y0 + βi1 k1 (h) + ... + βi,i−1 ki−1 (h) ,
Gọi ϕr (h) := y (x0 + h) − y1 = y (x0 + h) − y (x0 ) − ∆y0 là sai số (địa


17

phương) của phương pháp Runge-Kutta. Nếu ϕr

(s+1)

r


(0) = 0 thì:

(i)

ϕr (h) =
i=0

ϕr (0) i
h + O hs+1
i!

Runge-Kutta chọn các hệ số αi , βij , prj . từ điều kiện:
(s+1)
(i)
ϕr (0) = 0, (i = 0, s); ϕr (0) = 0 với s càng lớn càng tốt.
(i)
(i)
(i)
(i)
Như vậy ϕr (0) = y0 − pr1 k1 (0) + ... + prr kr (0) = 0, i = 0, s , hay ta
có phương trình phi tuyến để xác định các hệ số αi , βij , prj :
(i)

(i)

(i)

(i)

pr1 k1 (0) + pr2 k2 (0) + ... + prr kr (0) = y0

i = 0, s,

(2.2)

Xuất phát từ phương pháp Runge-Kutta tổng quát, chúng ta thu được một
số phương pháp cụ thể như sau:
2.1.1

Phương pháp Euler 1

Xét trường hợp riêng của phương pháp Runge-Kutta khi r = 1.
∆y0 = p11 k1 (h) ; k1 (h) = hf (x0 , y0 ) .
Ta có:
ϕ1 (h) := y (x0 + h) − y0 − p11 hf (x0 , y0 ) ; ϕ1 (0) = 0,




ϕ1 (0) = y0 − p11 f (x0 , y0 ) = (1 − p11 ) f (x0 , y0 ) .

Để ϕ1 (0) = 0 với mọi hàm f , ta phải có p11 = 1. Nói chung ϕ1 (0) = y0 = 0.
Vậy ∆y0 = p11 k1 (h) = hf (x0 , y0 ). Ta nhận được công thức Euler:
′′



y1 = y0 + hf (x0 , y0 ) .

′′


(2.3)

Nói chung chúng ta có cơng thức tổng qt
yk+1 = yk + hf (xk , yk ) , xk = x0 + kh.
Sai số địa phương của phương pháp:
′′

′′

ϕ (ξ) 2 y (ξ) 2
R1 (h) = 1
h =
h = O h2 .
2!
2
Để nhận được cơng thức sai số tồn phần, ta giả thiết f (x, y) liên tục


18

Lipschitz theo biến y với hằng số Lipschitz L > 0, ngoài ra vi phân toàn phần
df
≤ M . Cho xn cố định trong khi bước h thay đổi. Gọi y(x) là nghiệm
dx
đúng của bài tốn Cauchy (2.1) ta có:

xn
 y (x ) = y + f (x, y(x)) dx,
n
0

x0

yn = yn−1 + hf (xn−1 , yn−1 ) .
Có thể thấy rằng phương pháp Euler 1 có độ chính xác O(h).

2.1.2

Phương pháp Euler 2

Trong phương pháp Runge-Kutta, ta xét trường hợp r = 2.
∆y0 = p21 k1 (h) + p22 k2 (h) ,
Phương trình (2.2) có dạng:
(1)

(l)

(2.4)

(l)

y0 = p21 k1 (0) + p22 k2 (0); l = 1, 2 .

Vì k1 (h) = hf (x0 , y0 ) nên k1 (0) = 0; k1 (0) = f (x0 , y0 ) và k1 (0) = 0. Tiếp
theo k2 (h) = hf (ξ2 , v2 ) trong đó ξ2 = x0 + α2 h; v2 = y0 + β21 k1 (h). Ta có:


′′

∂f
∂f


α2 +
β21 k1 (h) ≡ f (ξ2 , v2 ) + h [.] .
∂x
∂y



k2 (h) = f (ξ2 , v2 ) + h

Dễ thấy k2 (0) = 0; k2 (0) = f (x0 , y0 ).


∂f0
∂f0
+ β21 f0
.
∂x
∂y
∂f ∂f
∂f0 ∂f0
;
là đạo hàm
;
Ở đây chúng ta dùng kí hiệu f0 := f (x0 , y0 ) ;
∂x ∂y
∂x ∂y
tương ứng tính tại điểm (x0 , y0 ). Từ hệ thức (2.4), ta suy ra:
 ′
 y0 = f0 = p21 f0 + p22 f0 ,

(2.5)
∂f
∂f
∂f
∂f
′′
 y0 = 0 + f0 0 = 2p22 α2 0 + β21 f0 0 .
∂x
∂y
∂x
∂y
Tiếp theo k2 (h) = [.]+[.]+h[.] nên k2 (0) = 2 [.]|h=0 = 2 α2
′′



′′

Từ phương trình ban đầu suy ra: p21 + p22 = 1.


19

Biến đổi phương trình thứ hai của hệ, ta được:
(1 − 2α2 p22 )

∂f0
∂f0
+ (1 − 2p22 β21 ) f0
= 0.

∂x
∂y

(2.6)

Vì cơng thức Runge-Kutta (ứng với r = 2) đúng cho mọi hàm f nên để
(2.6) nghiệm đúng, cần 1 − 2α2 p22 = 1 − 2p22 β21 = 0.
1
1
Như vậy: α2 = β21 = 1; p21 = p22 = và ∆y0 = h {f (x0 , y0 ) + f (x0 + h, y0 + hf (x
2
2
Ta nhận được công thức gọi là công thức Euler 2 sau:

 y0 := y0 + hf (x0 , y0 ) ,
(2.7)
1
 y1 = y0 + h [f (x0 , y0 ) + f (x1 , y0 )] .
2
Có thể thấy rằng phương pháp Euler 2 có độ chính xác O(h2 ).

2.1.3

Thuật tốn RK4

Khi r = 4, ϕ4 (h) = y (x0 + h) − y (x0 ) −
Dễ thấy: ϕ4 (0) = 0; ϕ4 (0) = y0 −


Từ đây suy ra:


4



i=1

4

p4i ki (h).
i=1
4



p4i ki (0) =

1−

p4i f0 = 0.
i=1

4

p4i = 1.
i=1

Ngoài ra ta còn đòi hỏi ϕ4 (0) = ϕ4 (0) = ϕ4 (0) = 0.
Kết quả là có 11 phương trình đối với 13 ẩn: α2 , α3 , α4 , β21 , β31 , β32 , β41 , β42 ,
β43 , p4i ; i = 1, 4 . Như vậy sẽ có một họ các cơng thức RK4. Cơng thức thơng

dụng nhất có dạng:
′′

′′′

(4)

1
∆y0 = [k1 + 2k2 + 2k3 + k4 ],
6
k1 = hf (x0 , y0 ),
h
k1
k2 = hf (x0 + , y0 + ),
2
2
h
k2
k3 = hf (x0 + , y0 + ),
2
2
k4 = hf (x0 + h, y0 + k3 ),

(2.8)


20

là sai số địa phương của RK4.
120

Phương pháp Runge-Kutta đối với hệ phương trình vi phân
phi tuyến

Có thể chứng minh rằng R4 (h) = h
2.2

(5)
5 ϕ4 (ξ)

Xét hệ phương trình vi phân cấp 1

dx1


= f1 (t, x1 , x2 , ..., xm ),


dt



dx2



 dt = f2 (t, x1 , x2 , ..., xm ),
dx3
= f3 (t, x1 , x2 , ..., xm ),



dt



...





 dxm = fm (t, x1 , x2 , ..., xm ).
dt

(2.9)

Nghiệm của hệ cần thỏa mãn hệ điều kiện đầu:

x1 (0) = x10 , ..., xm (0) = xm0 .
Đặt
U = (x1 , x2 , ..., xm )T ;
F (t, U ) = (f1 (t, U ), ..., fm (t, U ))T ,
U0 = (x10 , ..., xm0 )T .
Khi đó hệ (2.9) tương với phương trình vi phân cấp 1 dạng vecto
dU
= F (t, U ); U (t = 0) = U0 .
dt

(2.10)

Sử dụng kết quả của phương pháp Runge Kutta với độ chính xác bậc 4,

chúng ta có thể xây dựng lược đồ giải số hệ phương trình vi phân cấp bằng
sơ đồ dạng vecto như sau:
Sơ đồ QH_m
1
Uk+1 = Uk − [K1 + 2K2 + 2K3 + K4 ],
6
K1
h
),
K1 = hF (tk , Uk ), K2 = hF (tk + , Uk +
2
2
h
K2
K3 = hF (tk + , Uk +
), K4 = hF (tk + h, Uk + K3 ).
2
2

(2.11)


×