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

Một số phương pháp lặp giải phương trình vi phân phi tuyến cấp bốn với hệ điều kiện biên phức tạp

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 (443.93 KB, 71 trang )

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

VŨ THỊ THẢO

MỘT SỐ PHƯƠNG PHÁP LẶP
GIẢI PHƯƠNG TRÌNH VI PHÂN
PHI TUYẾN CẤP BỐN
VỚI HỆ ĐIỀU KIỆN BIÊN PHỨC TẠP

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

THÁI NGUYÊN - 2019


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

VŨ THỊ THẢO

MỘT SỐ PHƯƠNG PHÁP LẶP
GIẢI PHƯƠNG TRÌNH VI PHÂN
PHI TUYẾN CẤP BỐN
VỚI HỆ ĐIỀU KIỆN BIÊN PHỨC TẠP
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. Vũ Vinh Quang

THÁI NGUYÊN - 2019


Lời cam đoan
Tôi xin cam đoan nội dung trong luận văn Thạc sĩ chuyên ngành Toán ứng dụng
với đề tài MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI PHƯƠNG TRÌNH
VI PHÂN PHI TUYẾN CẤP BỐN VỚI HỆ ĐIỀU KIỆN BIÊN
PHỨC TẠP được hoàn thành bởi nhận thức của tôi, không trùng lặp với
luận văn, luận án và các công trình đã công bố.
Thái Nguyên, tháng 5 năm 2019
Người viết Luận văn

VŨ THỊ THẢO


Lời cảm ơn
Tôi xin bày tỏ lòng biết ơn tới TS.Vũ Vinh Quang, người đã định hướng
chọn đề tài và tận tình hướng dẫn, cho tôi những nhận xét quý báu để tôi có
thể hoàn thành luận văn.
Tôi cũng xin bày tỏ lòng biết ơn chân thành tới phòng Sau Đại học, các
thầy cô giáo dạy cao học chuyên ngành Toán ứng dụng trường Đại học khoa
học - Đại học Thái Nguyên đã giúp đỡ và tạo điều kiện cho tôi trong suốt quá
trình học tập và nghiên cứu khoa học.
Nhân dịp này tôi cũng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè
đã luôn động viên, cổ vũ, tạo mọi điều kiện thuận lợi cho tôi trong suốt quá
trình học tập.

Thái Nguyên, tháng 5 năm 2019
Người viết luận văn

VŨ THỊ THẢO

ii


Mục lục

Lời cam đoan

i

Lời cảm ơn

ii

Mục lục

ii

Mở đầu

1

Một số ký hiệu viết tắt

2


1 Một số kiến thức cơ bản

3

1.1

1.2

Lý thuyết về các phương pháp lặp giải hệ đại số tuyến tính . .

3

1.1.1

Không gian Metric . . . . . . . . . . . . . . . . . . . .

3

1.1.2

Ánh xạ co . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.1.3

Nguyên lí ánh xạ co

. . . . . . . . . . . . . . . . . . .


4

1.1.4

Hệ đại số tuyến tính với ma trận chéo trội . . . . . . . .

4

1.1.5

Phương pháp lặp đơn . . . . . . . . . . . . . . . . . . .

5

1.1.6

Phương pháp lặp Jacobi . . . . . . . . . . . . . . . . . .

7

1.1.7

Phương pháp lặp Gauss - Seidel . . . . . . . . . . . . .

10

Phương pháp sai phân đối với phương trình vi phân cấp 2 . . .

13


iii


1.2.1

Công thức Taylor . . . . . . . . . . . . . . . . . . . . .

1.2.2

Một số phương pháp xấp xỉ đạo hàm với độ chính xác
cấp bốn

1.2.3
1.3

13

. . . . . . . . . . . . . . . . . . . . . . . . . .

14

Hệ phương trình sai phân . . . . . . . . . . . . . . . . .

19

Phương pháp Runge - Kutta đối với phương trình vi phân cấp
cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23


1.3.1

Mô hình bài toán tổng quát của phương trình cấp cao .

23

1.3.2

Xây dựng thuật toán với độ chính xác cấp 4 . . . . . . .

24

1.3.3

Giới thiệu về thư viện QH− 2015 . . . . . . . . . . . . .

26

2 Sự tồn tại nghiệm dương trong lớp các bài toán biên với hệ

3

điều kiện biên phi tuyến tính

29

2.1

Mô hình bài toán biên phi tuyến thứ nhất . . . . . . . . . . . .


30

2.1.1

Sự tồn tại nghiệm . . . . . . . . . . . . . . . . . . . . .

31

2.1.2

Nghiệm dương của bài toán . . . . . . . . . . . . . . .

32

2.2

Mô hình bài toán phi tuyến thứ hai . . . . . . . . . . . . . . .

35

2.3

Mô hình bài toán biên với hệ số phụ thuộc tích phân, điều kiện
phi tuyến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

2.3.1

Mô hình bài toán . . . . . . . . . . . . . . . . . . . . .


37

2.3.2

Sự tồn tại nghiệm . . . . . . . . . . . . . . . . . . . . .

38

2.3.3

Phương pháp tìm nghiệm số . . . . . . . . . . . . . . .

39

Phương pháp lặp tìm nghiệm số của các bài toán biên phi
tuyến cấp bốn

42

3.1

42

Phương pháp phân rã giải các bài toán tuyến tính cấp 4 . . . .
iv


3.2


Dạng bài toán điều kiện đầu phi tuyến . . . . . . . . . . . . . .

44

3.3

Dạng bài toán điều kiện biên phi tuyến . . . . . . . . . . . . .

48

3.4

Dạng bài toán biên chứa hệ số tích phân . . . . . . . . . . . . .

51

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

57

v


Mở đầu
Phương trình vi phân dạng phi tuyến tính là một lớp phương trình quan
trọng trong lý thuyết phương trình vi phân, lớp phương trình này 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. Việc 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 dựa trên cơ sở của các thuật toán số

như việc giải các hệ phương trình đại số tuyến tính hoặc các sơ đồ lặp thông
qua phương pháp sai phân. Mục tiêu nghiên cứu chính 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 4 với hệ điều kiện
biên phức tạp bao sơ đồ lặp, 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 thông qua các chương trình trên máy
tính điện tử. Nội dung của đề tài:
Chương 1: Một số kiến thức cơ bản.
Chương 2: Sự tồn tại nghiệm dương trong lớp các bài toán biên với hệ điều
kện biên phi tuyến tính.
Chương 3: Phương pháp lặp tìm nghiệm số của các bài toán biên phi tuyến
cấp bốn.

1


Một số ký hiệu viết tắt
R

tập các số thực

R+

tập các số thực không âm

A

ma trận

A−1


ma trận khả nghịch của A

||C||

chuẩn của ma trận C

d(x, y)

khoảng cách từ phần tử x đến phần tử y

limx→x0

giới hạn x đến x0

J

ánh xạ đối ngẫu chuẩn tắc

un

đạo hàm cấp n
tích vô hướng

U, K1 , K2 , F, Uα các vecto n chiều

2


Chương 1
Một số kiến thức cơ bản

1.1

Lý thuyết về các phương pháp lặp giải hệ đại số
tuyến tính

1.1.1

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 tử x, y bất kì đều tương ứng với một số không
âm d(x, y) thoả 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 hai 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ì
3


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, 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 được 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ụ.
Ngoài ra ta có ước lượng sau

d(xn , x∗ ) ≤ q n (1 − q)−1 d(x0 , x1 ) (n ≥ 1)
d(xn , x∗ ) ≤ q n (1 − q)−1 d(xn−1 , xn ) (n ≥ 1)
1.1.4

Hệ đại số tuyến tính với ma trận chéo trội

Xét một hệ phương trình gồm n phương trình tuyến tính với n ẩn số

x1 , x2 , ...., xn
như sau:
4






a11 x1 + a12 x2 + ... + a1n xn = b1





 a21 x1 + a22 x2 + ... + a2n xn = b2


..........................................





 an1 x1 + an2 x2 + ... + ann xn = bn
Hệ phương trình này có thể

 a11 a12

 a21 a22

A=
 ... ...


an1 an2

(1.1)


viết dưới dạng ma trận Ax = b, trong đó





... a1n 
 x1 
 b1 





 x2 
 b2 
... a2n 





,x = 
,b = 







... ... 
 . 
 . 





... ann
xn
bn

Nếu det A = 0 thì nghiệm của hệ (1.1) có thể tính theo công thức x = A−1 b.
Áp dụng công thức tính ma trận đảo ta có thể biến đổi và dẫn đến lời giải
được diễn tả bằng định lý Cramer như sau:
Định lý Cramer. Gọi Aj là ma trận nhận được từ ma trận A bằng cách thay
cột thứ j bằng cột b. Khi đó hệ (1.1) có nghiệm duy nhất và xj được tính bởi
công thức

xj =
1.1.5

det Aj
det A

Phương pháp lặp đơn

Trở lại bài toán giải hệ phương trình tuyến tính


Ax = b

(1.2)

x = Cx + d

(1.3)

Ta đưa (1.2) về dạng

5


Trong đó ma trận C và vecto d được xây dựng từ A và b. Để thực hiện phép
lặp ta chọn một vecto ban đầu x(0) , sau đó tính các x(i) , i = 1, 2, ... theo công
thức lặp sau:



x(1) = Cx(0) + d






x(2) = Cx(1) + d





(1.4)

...





x(k) = Cx(k−1) + d





 ....
Véc tơ x(k) được gọi là vecto lặp thứ k . Ta có định lý sau:
Định lý 1.1.4. ( Sự hội tụ của phương pháp)
a. Nếu phép lặp (1.4) hội tụ, tức là tồn tại x∗ sao cho x∗ = lim x(k) .
k→+∞



Thì x là nghiệm của (1.3) ( và như vậy cũng là nghiệm của (1.2))
b. Nếu C < 1 với một chuẩn nào đó, thì (1.4) hội tụ và sai số giữa nghiệm
gần đúng x(k) (nghiệm gần đúng tại bước lặp thứ k) và nghiệm đúng x∗ có thể
đánh giá bằng các công thức sau:

C
1− C


x(k) − x(k−1)

C k

1− C

x(1) − x(0)

x(k) − x∗ ≤
hoặc

x

(k)



−x

Nói chung theo phương pháp lặp đơn, điều kiện để phép lặp được hội tụ thì

C < 1. Tuy nhiên trong thực tế thì ta chỉ có ma trận A. Một câu hỏi đặt ra
là ma trận A phải thoả mãn điều kiện gì để có thể đưa (1.2) về dạng (1.3) và
áp dụng phương pháp lặp đơn?

6


Để phương pháp lặp đơn hội tụ thì thường ma trân A phải thỏa mãn tính chéo

trội của ma trận trận vuông.
Định nghĩa 1.1.5. ( Tính chéo trội của một ma trận vuông): Ma trận A với
các thành phần aij được gọi là có tính chéo trội, nếu giá trị tuyệt đối của các
phần tử nằm trên đường chéo chính lớn hơn tổng các giá trị tuyệt đối của các
phàn còn lại nằm cùng hàng, tức là
n

|aij |, i = 1, 2, ...n

|aii | >
j−1,j=i

Sau đây sẽ giới thiệu 2 phương pháp lặp đơn Jacobi và Gauss - Seidel
1.1.6

Phương pháp lặp Jacobi

Với giả thiết ma trận A có tính chéo trội, khi đó các hệ số aii = 0,

i = 1, 2, ..., n do đó ta có thể chia phương trình thứ i của hệ (1.1) cho aii và
nhận được hệ tương đương

x1 +

a12
a11 x2

+

a13

a11 x3

+ ... +

a1n
a11 xn

=

b1
a11

a21
a22 x1

+ x2 +

a23
a22 x3

+ ... +

a2n
a22 xn

=

b2
a22


...
ai1
aii x1

+

ai2
aii x2

+ ... +

ai,i−1
aii xi−1

+ xi +

ai,i+1
aii xi+1

+ ... +

ain
aii xn

...
an1
ann x1

+


an2
ann x2

+ ... +

an,n−1
ann xn−1

+ xn =

bn
ann

Từ đây ta có

+

a13
a11 x3

+ ... +

a1n
a11 xn )

+

b1
a11


x2 = −( aa21
x1 + 0.x2 +
22

a23
a22 x3

+ ... +

a2n
a22 xn )

+

b2
a22

x1 = −(0.x1 +

a12
a11 x2

...
7

=

bi
aii



xi = −( aai1ii x1 +

ai2
aii x2

+ ... +

ai,i−1
aii xi−1

+ 0.xi +

ai,i+1
aii xi+1

+ ... +

ain
aii xn )

+

bi
aii

...
n1
x1 +
xn = −( aann


an2
ann x2

+ ... +

Khi đó ma trận C, vecto d là:

 0
 a
 21

C = −  a22
 .



an1
ann

an,n−1
ann xn−1

a12
a11

0
.
an2
ann


...

+ 0.xn ) +

a1n
a11



bn
ann



b1
a11









a2n 
b2 

... a22 

 a 
 , d =  22 
 . 
... . 






bn
... 0
ann

(Đến đây ta đưa hệ (1.2) về dạng (1.3) và dễ thấy rằng ma trận C thoả mãn
điều kiện lặp đơn, tức là C



< 1 ).

Vậy đến đây ta tiếp tục áp dụng phương pháp lặp (1.4) để tính nghiệm ở các
bước lặp như sau:
Với vecto x(0) cho trước bất kỳ, ví dụ x0 = 0 (vecto 0) ta có thể tính các
vecto x(k) tại bước lặp k bằng công thức Cxk = Cxk−1 + d,
(k)

(k)

(k)


k = 1, 2, .... Cụ

thể hơn, nếu x(k) = (x1 , x2 , ...., xn ) thì ta có:


(k)
x1






 0

 (k) 
 a
 21
x 
 a
 2 

 = −  22
 .
 . 







(k)
an1
xn
ann
(k)

Với từng thành phần xi

a12
a11

0
.
an2
ann

a1n
a11

...

(k−1)
x1


  (k−1)
 x
... aa2n

2
22  


... . 
 .

(k−1)
xn
... 0





b1
a11



 

  b 
  2 
  a22 
+

  . 
 


 

bn
ann

ta có

n

(k)
xi



n

aij (k−1) bi
1
(k−1)
aij xj
)
=−
xj
+
= (bi −
a
a
a
ii
ii

ii
j−1,j=i
j−1.j=i
8

(1.5)


i = 1, 2, ..., n, k = 1, 2, ...
Điều kiện hội tụ, đánh giá sai số của phương pháp lặp Jacobi cũng giống với
phương pháp lặp đơn.
Ví dụ. Dùng phương pháp lặp Jacobi tìm nghiệm gần đúng của hệ phương
trình:




4x1 + 0.24x2 − 0.08x3 = 8



0.09x1 + 3x2 − 0.15x3 = 9




 0.04x1 − 0.08x2 + 4x3 = 20

Giải: (1). Có thể thấy rằng ma trận các hệ số của hệ phương trình trên đây
thoả mãn tính chéo trội, do đó ta có thể biến đổi hệ này để áp dụng phương

pháp lặp Jacobi. Chia hai vế phương trình đầu tiên cho 4, hai vế phương trình
thứ hai cho 3 và hai vế của phương trình thứ ba cho 4 rồi biến đổi thích hợp
ta nhận được

x1 = 2 − 0.06x2 + 0.02x3
x2 = 3 − 0.03x1 + 0.05x3
x3 = 5 − 0.01x1 + 0.02x2
Hay








−0.06 0.02   x1
 x1   0
 


 x
 x  =  −0.03
0
0.05
 2 
 2
 



−0.01 0.02
0
x3
x3
C









 2
  
 +  3  = Cx + d
  
  
5

= max(0 + 0.06 + 0.02, 0.03 + 0 + 0.05, 0.01 + 0.02 + 0)
= max(0.08, 0.08, 0.03) = 0.08 < 1
9


(2). Chọn x(0) = (2, 3, 5)T , rồi tính x(1) , x(2) , ... theo công thức (1.5) với lưu ý

aii = 1 ta được bảng kết quả sau:
(k)


(k)

(k)

k

x1

x2

x3

0

2

3

5

1

1.92

3.19

5.04

2


1.9094

3.1944

5.0446

3 1.909228 3.194948 5.044794
(3). Xem x(3) là nghiệm gần đúng cần tìm, ta có thể đánh giá sai x(3) với
nghiệm đúng x∗ theo (1.5) như sau:

x(3) − x∗ ≤

x(3) − x(2)

(3)



C
1− C

x(3) − x(2)

(2)

= max xi − xi
i

= max (0.000172, 0.000548, 0.000194) = 0.000548

Như vậy

x(3) − x∗
1.1.7





0.08
0.000548 = 0.0000476 ≈ 0.00005
1 − 0.08

Phương pháp lặp Gauss - Seidel

Với giả thiết ma trận A có tính chéo trội. Từ công thức (1.5) ta thấy rằng
phần tử thứ i của vecto nghiệm tại bước k được tính qua các phần tử ở các vị
trí khác i trong bước k − 1. Phương pháp Gauss - Seidel cải tiến phương pháp
Jacobi bằng cách dùng ngay những kết quả vừa tính được cho các thành phần
của nghiệm tại bước k để tính các thành phần khác của bước k , chỉ có những
10


thành phần nào chưa được tính thì mới lấy ở bước k − 1. Cụ thể hơn ta có tại
các bước:
(1)

(0)

(0)


(0)

(1) Giá trị x1 được tính qua các giá trị x2 , x3 , ..., xn
(1)

(1)

(0)

(0)

(1)

(1)

(1)

(0)

(h−1)

, x3

Giá trị x2 được tính qua các giá trị x1 , x3 , ..., xn

(0)

Giá trị x3 được tính qua các giá trị x1 , x2 , x4 ..., xn
....

(h)

(h) Giá trị x1 được tính qua các giá trị x2

(h−1)

(h)

(h)

(h−1)

, ..., xn

(h)

(h)

(h)

(h−1)

Giá trị x2 được tính qua các giá trị x1 , x3

(h−1)

, ..., xn

(h−1)


Giá trị x3 được tính qua các giá trị x1 , x2 , x4

(h−1)

..., xn

....
Với vecto x(0) cho trước bất kỳ, ví dụ x(0) = 0 (vecto 0) ta có thể tính các
vecto x(k) tại bước lặp k bằng công thức
i−1

(k)
xi

n

1
(k)
(k−1)
= (bi − (
aij xj +
aij xj
))
aii
j−1
j−i+1

(1.6)

i = 1, 2, .., n, k = 1, 2, ....

Sự hội tụ của phương pháp Gauss - Seidel.
Điều kiện hội tụ của phương pháp lặp Gauss - Seidel cũng giống với phương
pháp lặp đơn. Như ta sẽ thấy trong ví dụ trong phần sau, phương pháp Gauss
- Seidel nói chung hội tụ nhanh hơn phương pháp lặp đơn.
Ta có thể sử dụng các công thức sau để đánh giá sai số của phương pháp lặp
Gauss - Seidel:
Gọi x∗ là nghiệm đúng của hệ phương trình và đặt
i−1

n

|cij |, qi =

pi =
j=1

|cij |, µ = max
j=1

11

i

qi
1 − pi


Khi đó ta có

x(k) − x∗ ≤


µ
x(k) − x(k−1)
1−µ

(1.7)

hoặc
(k)

x

−x



µk
x(1) − x(0)

1−µ

Ví dụ: Dùng phương pháp lặp Gauss-Saidel tìm nghiệm gần đúng của hệ
phương trình:



4x1 + 0.24x2 − 0.08x3 = 8




0.09x1 + 3x2 − 0.15x3 = 9




 0.04x1 − 0.08x2 + 4x3 = 20
Giải. (1) Có thể thấy rằng ma trận các hệ số của hệ phương trình trên đây
thoả mãn tính chéo trội, do đó ta có thể biến đổi hệ này để áp dụng phương
pháp lặp Jacobi. Chia hai vế phương trình đầu tiên cho 4, hai vế phương trình
thứ hai cho 3 và hai vế của phương trình thứ ba cho 4 rồi biến đổi thích hợp
ta nhận được:




x = 2 − 0.06x2 + 0.02x3


 1
x2 = 3 − 0.03x1 + 0.05x3




 x3 = 5 − 0.01x1 + 0.02x2

Hay













−0.06 0.02   x1   2
 x1   0
 

 




 x  =  −0.03
0
0.05   x2 
 2 
+ 3
 

 

−0.01 0.02
0
x3

5
x3
C






 = Cx + d



= max(0 + 0.06 + 0.02, 0.03 + 0 + 0.05, 0.01 + 0.02 + 0)
= max(0.08, 0.08, 0.03) = 0.08 < 1
12


(2) Chọn x(0) = (2, 3, 5)T , rồi tính x(1) , x(2) , ... theo công thức (1.6) với lưu ý

aii = 1 ta được bảng kết quả sau:
(k)

(k)

(k)

k

x1


x2

x3

0

2

3

5

1

1.92

3.1924

5.044648

2 1.9093489

3.194952

5.0448056

3

3.1949643 5.0448073


1.909199

Xem x(3) là nghiệm gần đúng cần tìm, ta có thể đánh giá sai số phạm phải của

x(3) theo (1.7):
x(k) − x∗ ≤

µ
x(k) − x(k−1)
1−µ

Trong đó:

x(3) − x(2)

(3)



(2)

= max xi − xi
i

= max(0.0001499, 0.000123, 0.0000017) = 0.0001499,
µ = max
i

qi

= max(0.08, 0.0515463, 0) = 0.08.
1 − pi

Như vậy

x(3) − x∗

1.2





µ
0.08
0.00001499 ≈ 0.000013
x(k) − x(k−1) ≤
1−µ
1 − 0.08

Phương pháp sai phân đối với phương trình vi
phân cấp 2

1.2.1

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ó
13



công thức khai triển:

(∆x)2
u (x)
u(x + ∆x) = u(x) + ∆xu (x) +
2!
(∆x)m (m)
(∆x)m+1 (m+1)
+... +
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 ∈ [α, β] .
(m+1)

Khi đó

(∆x)
(m+1)!

u(m+1) (c) là vô cùng bé khi ∆x → 0. Tức là tồn tại 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.2

Một số phương pháp xấp xỉ đạo hàm với độ chính xác cấp
bốn

Chúng ta xét bài toán tổng quát: Cho hàm số y = f (x), x ∈ [a, b], cho
trước (n + 1) mốc nội suy a = x0 < x1 < ... < xn = b. Hãy tìm đa thức

Pn (x) = a0 xn + a1 xn−1 + ... + an thỏa mãn tính chất:
Pn (xi ) = yi = f (xi )(i = 0, 1, 2, ..., n).
Ý nghĩa hình học của bài toán nội suy là: hãy xây dựng đường cong đại số

y = Pn (x) đi qua tất cả các điểm cho trước (xi , yi )(i = 0, 1, 2, ..., n) . Về mặt
14


toán học, chúng ta chứng minh được: với hàm số f (x) xác định liên tục và các

mốc nội suy tùy ý thì đa thức nội suy Pn (x) sẽ tồn tại và duy nhất. Sau đây
chúng ta sẽ nghiên cứu phương pháp xác định đa thức nội suy Lagrange.
Định nghĩa 1.2.1. Đa thức Lk (x) bậc n sẽ được gọi là nhân tử Lagrange thứ

k nếu thỏa mãn điều kiện

 1, xi = xk ,
i = 0, 1, ..., n; k = 0, 1, ..., n.
Lk (xi ) =
 0, x = x ,
i
k
Dễ thấy rằng các nhân tử sẽ được xác định bằng công thức

Lk (x) =

(x − x0 )...(x − xk−1 )(x − xk+1 )...(x − xn )
, k = 0, 1, 2, ..., n.
(xk − x0 )...(xk − xk−1 )(xk − xk+1 )...(xk − xn )

Nhận xét:

• Sử dụng khái niệm nhân tử Lagrange, chúng ta nhận được công thức xác
định đa thức nội suy Lagrange

Pn (x) = y0 L0 (x) + y1 L1 (x) + ... + yn Ln (x).

(1.8)

• Sai số của phương pháp xấp xỉ được xác định bằng công thức

f (x) = Pn (x) + Rn (x),
trong đó

f (n+1) (ξ)
Rn (x) =
(n + 1)!

n

(x − xi ).
i=0

Trong trường hợp lưới cách đều, kí hiệu h = (b − a)/n, chúng ta có thể đánh
giá sai số của phép nội suy theo công thức

f (x) = Pn (x) + o(hn+1) )
15


Chúng ta giả thiết hàm số f (x) là hàm khả vi mọi cấp trên đoạn [a, b]. Sử
dụng lưới sai phân đều với bước lưới h = (b − a)/n, ta chia đoạn [a, b] bằng các
mốc nội suy a = x0 < x1 < ... < xn = b trong đó xi = a + ih, i = 0, 1, ..., n.
Xuất phát từ công thức về đa thức nội suy Lagrange, ta sẽ thu được các công
thức tính xấp xỉ đạo hàm như sau:

d
f (x) = Pn (x) + Rn (x) = Pn (x) +
dx

f (n+1) (ξ)

(n + 1)!

n

(x − xi )
i=0

= Pn (x) + o(hn ),
d2
f (x) = Pn (x) + Rn (x) = Pn (x) + 2
dx

f (n+1) (ξ)
(n + 1)!

n

(x − xi )
i=0

= Pn (x) + o(hn−1 ), ...
Một số kết quả trong trường hợp lưới năm điểm
Giả sử xét lưới năm điểm x0 , x1 , x2 , x3 , x4 cách đều. Kí hiệu

fk = f (xk ) = f (x0 + kh), k = 0, 1, 2, 3, 4. Ta xác định các nhân tử Lagrange
L0 (x) =

(x − x1 )(x − x2 )(x − x3 )(x − x4 )
;
24h4


(x − x0 )(x − x2 )(x − x3 )(x − x4 )
;
−6h4
(x − x0 )(x − x1 )(x − x3 )(x − x4 )
L2 (x) =
;
4h4
(x − x0 )(x − x1 )(x − x2 )(x − x4 )
L3 (x) =
;
−6h4
(x − x0 )(x − x1 )(x − x2 )(x − x3 )
.
L4 (x) =
24h4
L1 (x) =

Vậy theo (1.8)
16


P4 (x) =

(x−x1 )(x−x2 )(x−x3 )(x−x4 )
f0
24h4

+


3 )(x−x4 )
+ (x−x0 )(x−x14h)(x−x
f2 +
4

(x−x0 )(x−x2 )(x−x3 )(x−x4 )
f1
−6h4

(x−x0 )(x−x1 )(x−x2 )(x−x4 )
f3
−6h4

1 )(x−x2 )(x−x3 )
f4 .
+ (x−x0 )(x−x24h
4

Xét tại điểm x = x0 , chúng ta có

f (x0 ) = f0 L0 (x0 ) + f1 L1 (x0 ) + f2 L2 (x0 ) + f3 L3 (x0 ) + f4 L4 (x0 ) + o(h4 ),
f (x0 ) = f0 L0 (x0 ) + f1 L1 (x0 ) + f2 L2 (x0 ) + f3 L3 (x0 ) + f4 L4 (x0 ) + o(h3 ).


(x − x1 )(x − x2 )(x − x3 )(x − x4 )
25
35

L
(x

)
=

;
L
(x
)
=
;
0
0
0
0
24h4
12h
12h2
(x − x0 )(x − x2 )(x − x3 )(x − x4 )
48
104
L1 (x) =

L
(x
)
=
;
L
(x
)
=


;
0
0
1
1
−6h4
12h
12h2
36
114
(x − x0 )(x − x1 )(x − x3 )(x − x4 )

L
(x
)
=
;
L
(x
)
=
;
L2 (x) =
0
0
2
2
4h4
12h

12h2
(x − x0 )(x − x1 )(x − x2 )(x − x4 )
16
56
⇒ L3 (x0 ) =
;
L3 (x) =
; L3 (x0 ) = −
4
−6h
12h
12h2
(x − x0 )(x − x1 )(x − x2 )(x − x3 )
3
11
L4 (x) =
⇒ L4 (x0 ) = −
; L4 (x0 ) =
.
4
24h
12h
12h2
Từ đó chúng ta thu được công thức

 f (x0 ) = 1 (−25f0 + 48f1 − 36f2 + 16f3 − 3f4 ) + o(h4 ),
12h
(1.9)
 f (x ) = 1 (35f − 104f + 114f − 56f + 11f ) + o(h3 ).


L0 (x) =

0

0

12h2

1

2

3

4

Hoàn toàn tương tự, lần lượt xét tại các mốc nội suy x, x1 , x2 , x3 , x4 , ta sẽ thu
được các công thức tương ứng



f





f



f





f

(x1 ) =

1
12h

(−3f0 − 10f1 + 18f2 − 6f3 + f4 ) + o(h4 ),

(x2 ) =

1
12h

(−f0 − 8f1 + 8f3 − f4 ) + o(h4 ),

(x3 ) =

1
12h

(−f0 + 6f1 − 18f2 + 10f3 + 3f4 ) + o(h4 ),

(x4 ) =


1
12h

(3f0 − 16f1 + 36f2 − 48f3 + 25f4 ) + o(h4 ),
17





f





f


f





f

(x1 ) =


1
12h2

(11f0 − 20f1 + 6f2 + 4f3 − f4 ) + o(h3 ),

(x2 ) =

1
12h2

(−f0 + 16f1 − 30f2 + 16f3 − f4 ) + o(h3 ),

(x3 ) =

1
12h2

(−f0 + 4f1 + 6f2 − 20f3 + 11f4 ) + o(h ),

(x4 ) =

1
12h2

(11f0 − 56f1 + 114f2 − 104f3 + 35f4 ) + o(h3 )

(1.10)

3


Nhận xét:

• Bộ công thức (1.9) − (1.10) cho ta các kết quả tính gần đúng đạo hàm bậc
nhất và bậc hai với độ chính xác cấp bốn và cấp ba thông qua việc áp dụng
đa thức nội suy Lagrange với số nút năm điểm.

• Hoàn toàn tương tự, chúng ta thu được các công thức tính xấp xỉ đạo hàm
bậc bốn với độ chính cấp một



f (4) (x0 ) = h14 (f0 − 4f1 + 6f2 − 4f3 + f4 ) + o(h),






f (4) (x1 ) = h14 (f0 − 4f1 + 6f2 − 4f3 + f4 ) + o(h),



f (4) (x2 ) = h14 (f0 − 4f1 + 6f2 − 4f3 + f4 ) + o(h),





f (4) (x3 ) = h14 (f0 − 4f1 + 6f2 − 4f3 + f4 ) + o(h),






 f (4) (x4 ) = 14 (f0 − 4f1 + 6f2 − 4f3 + f4 ) + o(h).
h

(1.11)

• Trong ứng dụng tính toán, các mốc nội suy x0 , x1 , x2 , x3 , x4 được hiểu tổng
quát là năm mốc liên tiếp trong lưới sai phân (n + 1), đó là các mốc

xk , xk+1 , xk+2 , xk+3 , xk+4 , k + 4 < n.
Các công thức trên có ý nghĩa rất quan trọng trong việc xây dựng các lược đồ
sai phân giải phương trình vi phân với độ chính xác bậc cao.

18


×