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

Tìm hiểu một số phương pháp giải gần đúng phương trình vi phân thường

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 (2.07 MB, 66 trang )

Mục lục
Mục lục.............................................................................................................. 1
Lời cảm ơn ............................................................Error! Bookmark not defined.
Nhận xét của giáo viên..........................................Error! Bookmark not defined.
Lời nói đầu........................................................................................................ 3
Chương 1........................................................................................................... 4
Tổng quan về giải tích số.................................................................................. 4
1.1. Giới thiệu về giải tích số .............................................................................4
1.2. Quan hệ giữa toán học tính toán và công nghệ thông tin..........................8
1.3. Các khái niệm về sai số...............................................................................8
1.3.1. Sai số tuyệt đối .................................................................................8
1.3.2. Sai số tương đối................................................................................9
1.4. Một số khái niệm cơ bản của giải tích hàm .............................................10
1.4.1. Không gian metric .........................................................................10
1.4.2. Không gian tuyến tính ...................................................................12
1.4.3. Không gian tuyến tính định chuẩn................................................13
1.4.4. Không gian có tích vô hướng.........................................................14
Chương 2......................................................................................................... 16
Một số phương pháp giải gần đúng ............................................................... 16
phương trình vi phân thường ........................................................................ 16
2.1. Đặt vấn đề .................................................................................................16
2.2. Một số phương pháp giải tích...................................................................17
2.2.1. Phương pháp xấp xỉ liên tiếp Picard.............................................17
2.2.2. Phương pháp chuỗi nguyên...........................................................19
2.3 Một số phương pháp số giải phương trình vi phân..................................20
2.3.1 Phương pháp sai phân....................................................................20
2.3.2 Phương pháp một bước ..................................................................21
2.3.2.1 Phương pháp Euler......................................................................22
2.3.2.1.a Phân tích thuật toán .......................................................................22
2.3.2.1.b Sơ đồ khối .....................................................................................25


2.3.2.2 Phương pháp Euler cải tiến .........................................................25
2.3.2.2.a Phân tích thuật toán .......................................................................25
2.3.2.2.b Sơ đồ khối .....................................................................................27

2.3.2.3. Công thức RK4 ..........................................................................28
2.3.2.3.a Phân tích thuật toán .......................................................................28
2.3.2.3.b Sơ đồ khối .....................................................................................30

1


2.3.3 Phương pháp đa bước ....................................................................31
2.3.3.a Phân tích bài toán ........................................................................31
2.3.3.b Sơ đồ khối...................................................................................34
2.4. Phương pháp khử lặp giải bài toán biên tuyến tính................................35
2.4.1. Phân tích bài toán ..........................................................................35
2.4.2. Sơ đồ khối.......................................................................................37
Chương 3......................................................................................................... 38
Giới thiệu ngôn ngữ lập trình Matlab ........................................................... 38
3.1 Khái niệm chung........................................................................................38
3.1.1 Cửa sổ lệnh của Matlab (Matlab Command Window) .................40
3.1.2 Hiệu chỉnh, sửa đổi dòng lệnh ........................................................41
3.1.3 Xoá cửa sổ lệnh ...............................................................................41
3.1.4 Định dạng số ...................................................................................41
3.1.5 Không gian làm việc của Matlab (Matlab Workspace) ................42
3.2 Các khái niệm cơ bản ................................................................................43
3.2.1 Biến trong Matlab...........................................................................43
3.2.1.1 - Một số lệnh với biến .................................................................43
3.2.1.2 Một số biến được định nghĩa trước..............................................44
3.2.1.3 Biến toàn cục (global variables) ..................................................44

3.2.2 Các phép toán trong matlab...........................................................45
3.2.2.1 Phép toán số học .........................................................................45
3.2.2.2 Thứ tự ưu tiên trong phép toán số học .........................................45
3.2.2.3 Các phép toán quan hệ và các phép toán logic.............................45
3.2.3 Sử dụng các file lệnh (lập trình M-file)..........................................46
3.2.4 Cách tạo một hàm...........................................................................46
3.2.5 Vẽ các hàm ......................................................................................47
3.2.6 Cấu trúc câu lệnh điều khiển .........................................................47
3.2.7 Cấu trúc vòng lặp ...........................................................................49
Chương 4......................................................................................................... 50
Các kết quả ứng dụng .................................................................................... 50
Kết luận........................................................................................................... 57
Tài liệu tham khảo.......................................................................................... 58
Phụ Lục........................................................................................................... 59

2


Lời nói đầu
Con người bằng trí thông minh và tinh thần hăng say học tập tạo ra nhiều
thành tựu khoa học quan trọng trong các lĩnh vực: Vật lý, hóa học, sinh học…
Ảnh hưởng của nó đã làm thay đổi rất nhiều đến đời sống kinh tế, văn hoá, xã hội
của tất cả các nước trên thế giới. Và toán học đã đóng góp một vai trò rất quan
trọng trong những thành tựu đó.
Toán học là cơ sở nền tảng cho các khoa học khác phát triển, và ngày càng
có nhiều đóng góp tích cực trong việc giải các bài toán thực tế như: Các bài toán
nhận dạng, hay các bài toán tối ưu, các bài toán trong vật lý, hoá học… Giải tích
số là một trong những lĩnh vực rất quan trọng của toán học, việc áp dụng các
phương pháp giải gần đúng phương trình vi phân thường có ý nghĩa hết sức quan
trọng trong các lĩnh vực khác. Vì nhờ các phương pháp đó mà việc thực hiện các

công việc khác mới có ý nghĩa.
Trong nhiều công việc đôi khi con người chỉ quan tâm đến một kết quả nào
đó để phục vụ cho mục đích khác của mình mà không cần quan tâm đến cách
người khác giải quyết công việc đó như thế nào để đưa ra kết quả . Và công nghệ
thông tin ra đời đã đáp ứng được các yêu cầu đó. Bằng cách chuyển các ý tưởng,
phương pháp giải thành các chương trình để máy tính xử lý và cho ra kết quả
mong muốn. Và đó cũng chính là lý do em thực hiện đề tài tốt nghiệp “Một số
phương pháp giải gần đúng phương trình vi phân thường”.
Nội dung của đề tài bao gồm 4 chương:
Chương 1: Tổng quan về Giải tích số.
Chương 2: Một số phương pháp giải gần đúng phương trình vi phân thường.
Chương 3: Giới thiệu ngôn ngữ lập trình Matlab.
Chương 4: Các kết quả ứng dụng.

3


Chương 1
Tổng quan về giải tích số
1.1. Giới thiệu về giải tích số
Giải tích số (Numeirical Analysis) hay còn gọi là Phương pháp số
(Numerical methods), Phương pháp tính (Computational methods), toán học tính
toán (Computational mathematics). Giải tích số là một khoa học nghiên cứu cách
giải gần đúng, chủ yếu là giải số, các phương trình, các bài toán xấp xỉ hàm số và
các bài toán tối ưu.
Đầu tiên toán học phát sinh do nhu cầu giải các bài toán thực tế như: Tính
diện tích đất đai, quỹ đạo sao chổi, đường đi của các tàu buôn trên biển…Như
vậy lúc đầu toán học đồng nghĩa với toán học tính toán. Cùng với sự phát triển
của toán học và của các khoa học khác, toán học chia thành toán lý thuyết và toán
ứng dụng. Trong lịch sử đã có rất nhiều các nhà toán học đã có công đầu trong

Giải tích số như: Newton, Lagrange, Euler, Lobasepski, Gauss, Chebysev,
Hérmitte…
Từ những năm 80 của thế kỷ XX đến nay, đặc biệt là trong những năm
gần đây cùng với sự phát triển như vũ bão của tin học, với sự ra đời của siêu máy
tính khả năng song song hoá các quá trình tính toán được mở rộng. Nhiều thuật
toán song song đã được đề xuất và áp dụng giải các bài toán thực tế.
Các nhiệm vụ chính của Giải tích số:
1. Xấp xỉ hàm số: Thay một hàm có dạng phức tạp hoặc một hàm cho
dưới dạng bảng bằng những hàm số đơn giản hơn. Lý thuyết xấp xỉ hàm số
thường nghiên cứu các bài toán nội suy, bài toán xấp xỉ đều, và xấp xỉ trung bình
phương.
2. Giải gần đúng các phương trình: Phương trình đại số và siêu việt, hệ
phương trình đại số tuyến tính, hệ phương trình phi tuyến, bài toán tìm vector
riêng, giá trị riêng của ma trận, giải phương trình vi phân thường, phương trình
đạo hàm riêng, phương trình tích phân và phương trình vi tích phân.

4


3. Giải gần đúng các bài toán tối ưu: Quy hoạch tuyến tính, quy hoạch
lồi, quy hoạch toàn phương, quy hoạch nguyên, điều khiển tối ưu, trò chơi vi
phân…
Sự khác biệt giữa toán lý thuyết và toán học tính toán (toán tính)
Như đã nói ở trên toán học được chia thành hai lĩnh vực đó là: toán lý
thuyết và toán học tính toán. Nếu như toán lý thuyết chỉ quan tâm đến chứng
minh tồn tại nghiệm, khảo sát dáng điệu và một số tính chất định tính của nghiệm
thì toán học tính toán đề xuất thuật toán giải trên máy. Giải tích số đặc biệt quan
tâm đến các vấn đề: thời gian máy, bộ nhớ cần sử dụng để giải bài toán, tốc độ
hội tụ và sự ổn định của thuật toán. Phân biệt giữa toán lý thuyết và toán học
tính toán thông qua một số ví dụ sau:

Ví dụ 1: cho hệ phương trình đại số tuyến tính:
Ax = b

(1.1)

Trong đó: A là ma trận vuông cấp n  n .
b là vector n - chiều và detA  0
Về nguyên tắc có thể giải được hệ (1.1) theo quy tắc Cramer:
xi 

i


(i= 1, n )

(1.2)

Trong đó:   det A
 i là định thức của ma trận nhận được từ A bằng cách thay cột

thứ bằng cột b
Để tìm nghiệm theo (1.2) ta phải tính (n + 1) định thức. Mỗi định thức có n!
số hạng. Mỗi số hạng có n thừa số, do đó để tính mỗi số hạng cần phải thực hiện
(n - 1) phép nhân. Như vậy, riêng số phép nhân phải thực hiện trong (1.2) đã là
n!(n+1)(n-1). Giả sử n=20 (vì trong thực tế đôi khi ta phải giải hệ (1.1) cho n =
O( 10 3 )) và máy tính của ta thực hiện được 10 5 phép nhân trong một giây. Khi
đó để thực hiện hết các phép nhân theo (1.2) cũng phải mất 3 108 năm.

5



n

 1 
Ví dụ 2: Xét hệ (1.1) với ma trận Hillbert A  

thường gặp
 i  j  1  i , j 1

trong bài toán xấp xỉ trung bình phương bằng đa thức đại số. Ma trận A khả
nghịch và A -1  (aij ) trong đó:
aij   1 C ni 1i1C nnij 1C ii1j  2 C nj
i j

Tuy nhiên cho đến nay việc giải số hệ này vẫn còn là một thách thức đối
với những người làm ứng dụng. Để thấy được khó khăn trong việc giải số hệ
(1.1) với ma trận Hillbert ta xét trường hợp đơn gian với n = 3. Ta có hệ:
1 / 2 1/ 3 
1


1 / 2 1 / 3 1 / 4 
1 / 3 1 / 4 1 / 5 



 x1 
 
 x2  =
x 

 3

11 / 6 


13 / 12 
 47 / 60 



Nghiệm đúng của (1.3) là x *  (1,1,1)T . Nếu thay 1/3  0.333 và tìm nghiệm
theo những phương pháp số tốt nhất, ta  được x  (1.090,0.4880,1.494) T kết quả
hoàn toàn không chính xác. Nguyên nhân là do ma trận Hillbert điều kiện rất xấu.
Khi n >> 1, cond(A)= O(e n ) .

Ví dụ 3: Xét hệ (1.1) với ma trận A = diag(0.1, 0.1, ..., 0.1) và n = 100. Khi
đó detA = 10100  0 và theo quan điểm lý thuyết thì ma trận A hầu suy biến.
Thực ra hoàn toàn không phải như vậy, A 1 = 10.E, trong đó E là ma trận đơn vị.
Trong toán học tính toán, người ta dùng một đặc trưng khác, gọi là số điều kiện
cond(A) của A để kiểm tra tính suy biến của nó.
Nếu cond(A) càng lớn thì ma trận A càng gần suy biến. Trong ví dụ này
cond(A) = 1 và A được coi là ma trận điều kiện tốt (well conditioned).

Ví dụ 4: Giả sử ta cần tính tích phân
1

I n   x n e x 1dx

(n  1)


0

Tích phân từng phần ta được

6


1

1

I n  x n e x 1  n  x n 1e x 1dx  1  nI n 1
0

0

Ngoài ra
1

1

1

I 1   xe x 1 dx  xe x 1   e x 1dx 
0

0

0


1
 0.367879
e

Đến đây, người làm lý thuyết cho rằng có thể tính được I n theo công thức
truy hồi I n  1  nI n 1 ;

I1 

1
 0.367879 . Thực ra không phải như vậy vì
e

I 9  0.068480 , kết quả hoàn toàn không chính xác vì n, I n  0 .

Cho dù ta có thể tính e 1 chính xác đến như thế nào chăng nữa thì ta vẫn
nhận được I n  0 với N đủ lớn. Nguyên nhân của sự thiếu chính xác này là do sai
số ban đầu mắc phải khi tính e 1 tuy rất nhỏ nhưng bị khuyếch đại sau mỗi bước.
Để khắc phục hiện tượng này, ta tính theo công thức truy hồi ngược
I n1  n 1 (1  I n ).

Để ý rằng
1

0  I n   x n dx  ( n  1) 1
0

Nên

lim I n 0

n

Nếu cho I 20  0 thì sai số mắc phải là  20 
 19 

1
1
. Khi đó  19 
với sai số
21
20

1 1

21 20

Đến I15 sai số chỉ còn  15  4  10 8 và I 9  0.091623
Thông qua những ví dụ trên ta thấy trong quá trình giải số một bài toán, có
thể nảy sinh nhiều vấn đề mà lý thuyết không quan tâm và không giải quyết
được. Và như vậy toán học tính toán ra đời để nghiên cứu việc giải số các bài
toán.

7


1.2. Quan hệ giữa toán học tính toán và công nghệ thông tin
Để giải số một bài toán thực tế, người ta phải lần lượt thực hiện các công
đoạn của quá trình mô phỏng số sau:
1. Xây dựng mô hình toán học của bài toán thực tế
2. Phân tích mô hình: Tính tương thích giữa mô hình với hiện tượng thực

tế. Vấn đề tồn tại của lời giải. Phương hướng tính toán.
3. Rời rạc hoá mô hình: Thường sử dụng phương pháp sai phân, phần tử
hữu hạn… để quy bài toán liên tục về bài toán rời rạc.
4. Xây dựng thuật toán: Ở giai đoạn này người ta chú ý đến các vấn đề như
độ phức tạp của thuật toán, tính hội tụ, ổn định của phương pháp giải bài
toán.
5. Cài đặt và khai thác công nghệ thông tin.
Giữa toán tính và tin học có mối liên hệ mật thiết với nhau và tác động qua
lại. Do việc tăng tốc độ tính toán của máy gặp nhiều khó khăn về kỹ thuật, ngoài
ra đòi hỏi chi phí cao, nên để tính toán nhanh người ta thiên về cải tiến phương
pháp giải bài toán. Từ đó xuất hiện các phép biến đổi nhanh Fourier, các thuật
toán song song…Cùng với sự ra đời của các siêu máy tính: Máy tính song song,
máy tính vector…, xuất hiện nhiều phương pháp song song. Hiện nay xu thế
song song hoá đang diễn ra trên tất cả các lĩnh vực của Giải tích số. Để tiết kiệm
bộ nhớ trong máy tính, người ta đã đề xuất ra những phương pháp hữu hiệu xử lý
những hệ lớn, thưa như: Kỹ thuật nén ma trận, kỹ thuật tiền xử lý ma trận…
1.3. Các khái niệm về sai số
1.3.1. Sai số tuyệt đối
Xét đại lượng đúng A có giá trị gần đúng là a. Khi đó ta nói “a xấp xỉ A” và
viết “a  A”. Trị tuyệt đối a  A gọi là sai số tuyệt đối của a (xem là giá trị gần
đúng của A). Vì nói chung ta không biết số đúng A, nên không tính được sai số
tuyệt đối của a. Do đó ta tìm cách ước lượng sai số bằng số dương  a nào đó lớn
hơn hoặc bằng a  A :
a  A  a

8


Số dương  a này gọi là sai số tuyệt đối giới hạn của a. Rõ ràng nếu  a đã
là sai số tuyệt đối giới hạn của a thì mọi số    a đều có thể được xem là sai số

tới hạn của a. Vì vậy trong những điều kiện cụ thể người ta chọn  a là số dương
bé nhất có thể được thỏa mãn.
Nếu số xấp xỉ a của A có sai số tuyệt đối giới hạn là  a thì ta qui ước viết:
A = a  a
Nghĩa là:

a  a  A  a  a

1.3.2. Sai số tương đối
Tỉ số:  a 

a
gọi là sai số tương đối giới hạn của a. Suy ra:  a | a |  a . Từ
a

đây ta có liên hệ giữa sai số tương đối và sai số tuyệt đối. Biết  a thì tính được
 a , và ngược lại.
Ta có thể viết: A = a(1   a )
Trong thực tế người ta xem  a là sai số tuyệt đối,  a là sai số tương đối.
Sai số tuyệt đối không nói lên đầy đủ “chất lượng” của một số xấp xỉ, mà
được phản ánh qua sai số tương đối. Ví dụ đo độ dài hai đoạn thẳng AB, CD ta
được a = 10cm, b =2cm với a  b  0.05.
Khi đó ta có a 

0.01
0.01
 0.1% , b 
 1% hay b  10a . Hiển nhiên
10
1


rằng phép đo a chính xác hơn hẳn phép đo b mặc dù a  b . Như vậy độ chính
xác của một phép đo phản ánh qua sai số tương đối.
Trong tính toán ta thường gặp 4 loại sai số sau:
a) Sai số giả thiết – do mô hình hoá, lý tưởng hoá bài toán thực tế. Sai số
này không loại trừ được.
b) Sai số phương pháp – Các bài toán thường gặp rất phức tạp, không thể
giải đúng được mà phải sử dụng các phương pháp gần đúng.
c) Sai số các số liệu – Các số liệu thường thu được bằng thực nghiệm do
đó có sai số.
d) Sai số tính toán – Các số vốn đã có sai số, còn thêm sai số thu gọn nên
khi tính toán sẽ xuất hiện sai số tính toán.

9


1.4. Một số khái niệm cơ bản của giải tích hàm
1.4.1. Không gian metric
Hàm số d đưa mọi cặp phần tử {x,y} của tập X vào R 1 được gọi là khoảng
cách hay metric nếu với mọi x, y, z  X ta có:
a) d(x,y)  0 . Dấu bằng xảy ra khi và chỉ khi x = y
b) d(x,y) = d(y,x).
c) d(x,z)  d(x,y) + d(y,z) (bất đẳng thức tam giác).
Cặp (X,d) gồm tập nền X, metric d xác định trong X được gọi là không gian
metric. Có thể dùng ký hiệu X để chỉ không gian metric (X,d).
Với mỗi x 0   cố định, tập
S ( x0 , R ) : x   : d ( x, x0 )  R

được gọi là hình cầu mở tâm x0 , bán kính R. Tương tự như vậy các tập
S ( x0 , R ) : x   : d ( x, x0 )  R




S 0 ( x0 , R ) : x   : d ( x, x0 )  R

được gọi là hình cầu đóng và mặt cầu tâm x0 , bán kính R. Ta nói dãy

xn    hội tụ đến phần tử

x   (ký hiệu: x n  x ) nếu d ( x n , x)  0 ( n   ).

Ánh xạ A đưa không gian metric X vào không gian metric Y liên tục tại điểm
x   khi và chỉ khi mọi dãy x n  x suy ra A( xn )  A( x) .

Dãy xn  là dãy Cauchy hay dãy cơ bản nếu:
  0 N ( ) n , m  N ( ) d ( xn , x m )  

Không gian metric X là đầy đủ nếu mọi dãy cơ bản hội tụ đến một phần tử
nào đó thuộc X.
Ánh xạ A đưa không gian metric (X,d) vào trong 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 ) .
Hằng số q được gọi là hệ số co của A. Dễ thấy mọi ánh xạ co đều liên tục.
Nguyên lý ánh xạ co (Banach): Cho A là ánh xạ co trong không gian metric
đủ (X,d). Khi đó:
a) Tồn tại duy nhất x    sao cho A( x  )  x  . Phần tử x  gọi là điểm bất
động của ánh xạ A.

10



b)

Mọi dãy lặp x n1  A( xn ) ( n  0 ) xuất phát từ x 0 bất kỳ đều hội tụ.

Ngoài ra, ta có các ước lượng sau:
d ( xn , x  )  q n (1  q ) 1 d ( x0 , x1 )

( n  1)

d ( x n , x  )  q (1  q ) 1 d ( x n1 , x n )

( n  1)

(*)

Chứng minh:
1. Vì d ( x n1 , xn )  d ( A( x n ), A( xn 1 ))  qd ( x n , xn 1 )  ...  q n d ( x 0 , x1 )
nên d ( x n , xn  m )  d ( xn , x n 1 )  d ( xn 1 , x n 2 )  ...  d ( xn  m1 , x n m )





 q n d ( x 0 , x1 ) 1  q  ...  q m1  q n (1  q ) 1 d ( x0 , x1 )

Từ đây suy ra dãy xn  là cơ bản. Do X đầy đủ nên x n  x  . Qua giới hạn
trong biểu thức x n1  A( xn ) ta được x   A( x  ) .
2. Giả sử  ,  là hai điểm bất động của A. Ta có
0  d ( ,  )  d ( A( ), A( ))  qd ( ,  )


Từ đây suy ra d ( ,  )  0 hay    .
3. Cho m   trong biểu thức
d ( xn , x n m )  q n (1  q ) 1 d ( x0 , x1 )

ta được
d ( xn , x  )  q n (1  q ) 1 d ( x0 , x1 )

Để nhận được (*) ta đánh giá



d ( xn , x n m )  qd ( xn 1 , xn ) 1  q  ...  q m1



 q (1  q ) 1 d ( xn 1 , xn )

Qua giới hạn khi m   ta có (*) (đpcm).
Hệ quả. Giả sử x, y  S ( x0 , r )   , trong đó X là không gian metric đủ,
d ( A( x), A( y ))  qd ( x, y) với hằng số q  (0,1) . Nếu d ( A( x 0 ), x0 )  (1  q ) r thì A có

duy nhất một điểm bất động trong S ( x0 , r ).
Chứng minh. Tập  : S ( x0 , r ) với metric d cũng là một không gian metric
đủ. Để áp dụng nguyên lý ánh xạ co, chỉ cần chứng tỏ A đưa tập Z vào Z. Thật
vậy

x   d ( A( x), x0 )  d ( A( x), A( x0 ))  d ( A( x 0 ), x0 )

11



 qr  (1  q )r  r

nghĩa là A( x)  Z (đpcm).
1.4.2. Không gian tuyến tính
Ta nói trên X xác định một cấu trúc tuyến tính  , nếu với mọi x,y  X với
mọi t  R1 (hoặc t C ) xác định phép cộng x + y  X và phép nhân tx  X thoả
mãn các tính chất sau:
a) x + y = y + x (giao hoán)
b) (x + y) + z = x + (y + z) (kết hợp)
c) (x + y)z = xz + yz (phân phối)
d) Tồn tại phần tử không: x +  = x

x  X

e) Tồn tại phần tử đối: x + (-x) = 

x  X

f) 1.x=x
Trong đó x, y, z là các phần tử bất kỳ thuộc tập X.
Không gian tuyến tính (X,  ) là tập nền X được trang bị cấu trúc tuyến tính
 . Nếu sau này không sợ nhầm lẫn có thể dùng ký hiệu X để chỉ không gian

tuyến tính (X,  ).
Tập F  X là không gian con của không gian tuyến tính X, nếu F kín đối
với phép cộng và phép nhân với đại lượng vô hướng:
 ,   R1 (C ); x, y  F  x  y  F

Bao tuyến tính của tập hợp    , ký hiệu là span(M) là tập các phần tử có

n

dạng

t x
i

i

, trong đó t i  R 1 , xi  M , ( i  1, n ), n  N .

i 1

n

Hệ

xi in1 là độc lập tuyến tính nếu từ đẳng thức  t i xi

  suy ra

i 1

t1  ...  t n  0. Ngược lại, ta nói hệ xi 1 phụ thuộc tuyến tính. Không gian X là n
n

chiều, nếu tồn tại hệ n vector độc lập tuyến tính trong X, còn mọi hệ (n+1) vector
đều phụ thuộc tuyến tính. Nếu trong X có vô hạn các vector độc lập tuyến tính thì
ta nói không gian X vô hạn chiều.
Ánh xạ A đưa không giam tuyến tính X vào không gian tuyến tính Y được

gọi là toán tử tuyến tính nếu với mọi x,y  X và  ,   R 1 (C ), ta có

12


A(x  y )  Ax  Ay

Ánh xạ f đưa không gian tuyến tính X vào R 1 gọi là phiếm hàm. Nếu f là
toán tử tuyến tính đưa X vào R1 ta nói f là phiếm hàm tuyến tính.
Tập    là tập hợp lồi, nếu với mọi x, y  M, ta có:

x, y  : tx  (1  t ) y : t  0,1   .
1.4.3. Không gian tuyến tính định chuẩn
Trên không gian tuyến tính X xác định một cấu trúc chuẩn nếu với x  X ,
xác định một số x , gọi là chuẩn của x, thoả mãn 3 tính chất sau:
a) Xác định dương: x  0, dấu bằng xảy ra khi và chỉ khi x = 0.
b) Thuần nhất dương: tx  t x

t  R 1 .

x  X

c) Bất đẳng thức tam giác: x  y  x  y

x, y  X .

Mọi không gian tuyến tính định chuẩn là không gian metric với khoảng
cách d(x,y) = x  y . Dãy xn   X hội tụ đến x  X khi và chỉ khi xn  x  0
( n   ).
Không gian Banach là không gian tuyến tính định chuẩn đầy đủ. Hai chuẩn

. 1 và . 2 xác định trong không gian tuyến tính X gọi là tương đương, nếu tồn tại

hai hằng số c1 , c 2  0 sao cho
x  X

c1 x 1  x

2

 c2 x

1

Trong không gian hữu hạn chiều, mọi chuẩn đều tương đương. Toán tử
tuyến tính A đưa không gian tuyến tính định chuẩn X vào không gian tuyến tính
định chuẩn Y gọi là giới nội (bị chặn) nếu tồn tại hằng số M > 0, sao cho
x  

Ax

Y

M x

X

Toán tử tuyến tính là liên tục khi và chỉ khi nó giới nội. Gọi L(X,Y) là tập
hợp các toán tử tuyến tính liên tục đưa không gian tuyến tính định chuẩn X vào
không gian tuyến tính định chuẩn Y. Cấu trúc tuyến tính trong L(X,Y) được xây
dựng như sau:

A, B  L( X , Y ) ; t  R 1 ; x  

(A + B)x := Ax + Bx; (tA)x := t(Ax).

13


Đặt
A  sup

Ax
x

x0

Dễ dàng kiểm tra các tính chất của chuẩn, do đó L(X,Y) trở thành không
gian tuyến tính định chuẩn. L(X,Y) đầy đủ nếu Y đầy đủ. Không gian liên hợp
X  của không gian X là L(X, R1 ). Như vậy X  : L( X , R 1 ) luôn đầy đủ.

Trong không gian hữu hạn chiều X  R n , khi có một cơ sở cố định, toán tử
tuyến tính A được cho bởi ma trận a ij nn .
Chuẩn trong R n có thể xác định như sau
x

p

 n

   xi 
 i 1 


1

p

với 1  p   .

Ba chuẩn thường dùng là:
n

x 1   xi
i 1

x

x

2



 n
2
   xi 
 i 1


1

2


 max xi
1i  n

Ba chuẩn tương ứng của ma trận A là:
n

A 1  max  a ii
1 j  n

A

2

i 1





 max i ( AT A)
1 i  n

1

2

trong đó i ( AT A) là các giá trị riêng của ma trận đối xứng ( A T A)
n


A   max  a ii .
1 i  n

j 1

1.4.4. Không gian có tích vô hướng
Hàm số <.,.> đưa mọi cặp x,y trong không gian tuyến tính H vào R 1 gọi là
tích vô hướng của x, y, ký hiệu là <x, y> nếu nó thoả mãn các tính chất sau:
a) <x, x>  0 . Đẳng thức xảy ra khi và chỉ khi x = 0.
b) <x, y> = <y, x>.

14


c)  x  y, z    x, z     y, z  x, y, z  H ,  ,   R 1
Cặp (H,<.,.>) gọi là không gian có tích vô hướng hay không gian tiền
Hillbert. Mọi không gian có tích vô hướng là không gian định chuẩn, với chuẩn
x  x, x

1

2

.

Không gian Hilbert là không gian tiền Hilbert đầy đủ.
Với mọi x, y  H ta có bất đẳng thức CBS (Cauchy-BuniakovskiSchwartz):
 x, y   x y

Hai phần tử x, y là trực giao nếu <x,y>=0.

Hệ ei 1 trực giao nếu < en , em > = 0 (n  m),
trực chuẩn nếu  en , em   nm (n, m  N).
Hệ xn 1 đầy đủ nếu Span(x n 1 )   , nghĩa là:
n

  0 , x   , S n   ci xi ( ci  R 1 ; n  n( )   ) : S n  x   .
i 1

Giả sử ei 1 là hệ trực chuẩn trong không gian Hilbert. Với mỗi x  H ta
n

lập tổng Fourier S n   ci ei với ci  x, ei  .
i 1

Ta nói chuỗi Fourier hội tụ đến x nếu S n  x  0 (n   ).
Trong không gian Hilbert, 4 mệnh đề sau tương đương.
n

(a) x    xi , ei  ei

x  

i 1

2



(b) x    x, ei 


2

(đẳng thức Parseval)

i 1

(c) Hệ ei 1 đầy đủ
(d) Nếu x trực giao với mọi ei (i   ) thì x = 0.

15


Chương 2
Một số phương pháp giải gần đúng
phương trình vi phân thường
2.1. Đặt vấn đề
Trong cuộc sống cần giải quyết rất nhiều bài toán thực tế như: Tính diện
tích đất đai, tính quỹ đạo sao chổi, đường đi của các tàu buôn trên biển … Các
bài toán khoa học kỹ thuật đó thường được quy về việc tìm nghiệm phương trình
vi phân thoả mãn một số điều kiện nào đó như: Điều kiện ban đầu, điều kiện
biên…Các phương pháp giải đúng thông thường chỉ áp dụng được cho một lớp
rất hẹp các phương trình vi phân. Hầu như các phương trình vi phân mô tả các hệ
cơ học, lý học, hoá học, sinh học rất phức tạp và không có hy vọng giải đúng.
Chính vì vậy ta sẽ tiến hành nghiên cứu các phương pháp giải gần đúng phương
trình vi phân. Trong phạm vi của chương này sẽ tập trung đến hai bài toán sau:
1) Bài toán Cauchy (hay bài toán giá trị ban đầu): Tìm y(x) thoả mãn điều
kiện:
y’ = f(x,y)

x0  x  x


(2.1a)

y( x0 )  y 0

( y, f  R m )

(2.1b)

2) Bài toán biên 2 - điểm, tuyến tính
y’’ + p(x)y’ + q(x)y = f(x)

(2.2a)

 1 y (a)  1 y ' (a)   1

(2.2b)

 2 y (b)   2 y' (b)   2

(2.2c)

Có hai loại phương pháp giải gần đúng: phương pháp giải tích và phương
pháp số.
Các phương pháp giải tích cho phép tìm nghiệm dưới dạng biểu thức, ta
phải tính giá trị của nhiều hàm, tuy nhiên miền áp dụng của chúng khá hẹp. Các
phương pháp giải tích thông dụng: Phương pháp xấp xỉ liên tiếp Picard, phương
pháp chuỗi nguyên, phương pháp Newton – Kantorovich, phương pháp tham số
bé.


16


Các phương pháp số cho phép tìm nghiệm tại các điểm x 0  x1  ...  x n  x .
Tại xk ta tìm gần đúng giá trị nghiệm của phương trình (2.1a) hay (2.2a)
y k  y ( x k ) . Giá trị y k tính được thông qua các giá trị trước đó

(2.3)

y k   ( y k 1 ,..., y k  )

Các phương pháp số bao gồm: phương pháp một bước, và phương pháp đa
bước. Việc tìm nghiệm thay vì phải tính nhiều hàm mà chỉ cần tính dựa trên một
hàm.
Các phương pháp một bước thông dụng là: Euler, Euler cải biên, phương
pháp Runge – Kutta. Các phương pháp loại này cho độ chính xác không cao
nhưng ít phức tạp.
Phương pháp  - bước tính y k thông qua y k 1 ,..., y k  theo (2.3). Các
phương pháp đa bước thường dung là: Phương pháp Adams – Bashforth, phương
pháp dự báo - hiệu chỉnh.
2.2. Một số phương pháp giải tích
2.2.1. Phương pháp xấp xỉ liên tiếp Picard
Xét bài toán Cauchy:
y’ = f(x,y)

x0  x  x

(2.1a)

y( x0 )  y 0


( y, f  R m )

(2.1b)

Trong đó hàm f(x,y) thoả mãn điều kiện Lipschits theo biến y trên miền mở
D:
( x, y ), ( x, y )  D

f ( x, y )  f ( x, y )  M y  y

(2.4)

Giả sử ( x 0 , y 0 )  D . Khi đó tồn tại duy nhất nghiệm y * ( x) của bài toán (2.1a
– 2.1b) và nghiệm có thể thác triển đến biên của D. Để ước lượng sai số ta đưa
bài toán (2.1) về phương trình tích phân tương đương:
x

y( x)  y 0 

 f (s, y ( s))ds

x0

x

Khi đó ta có dãy lặp Picard: y n1 ( x)  y 0   f ( s, y n ( s ))ds
x0

17


(n  0)


Lấy y( x0 )  y 0 .
x

Đặt :  n  y n ( x)  y * ( x) 



x0

Ta sẽ chứng minh

 n ( x) 

x

f ( s, y n 1 ( s ))  f (s, y * ( s)) ds  M   n1 ( s )ds
x0

KM n ( x  x0 ) n 1
(n  1)!

trong đó K  max f ( x, y) .
( x , y )D

Trước hết  0  y * ( x)  y 0  y * ( x)  y * ( x0 )  x  x 0


dy * ( )
 x  x0 f ( , y * ( ))
dx

 K x  x0

Với

  ( x0 , x)

Như vậy công thức đúng với n = 0. Giả sử công thức đúng với n, ta chứng minh
nó đúng với n+1.
x

Vì  n1 ( x)  M   n (s )ds nên theo giả thiết qui nạp:
x0
x

s  x KM n 1 ( x  x0 ) n  2
KM n (s  x 0 ) n 1
KM n1
ds 
(s  x0 ) n  2

s  x0
(n  1)!
(n  2)!
(n  2)!
x0


 n1 ( x)  M 

=> Điều phải chứng minh.
Ví dụ: Giải lặp (xấp xỉ liên tiếp) bài toán Cauchy sau:
 y  x 2  y 2

 y (0 )  0

f ( x, y )  x 2  y 2
G  ( x, y ) : 0  x  a; y  b

Dễ thấy f ( x, y )  K : a 2  b 2 ;

f
 M : 2b .
y

Ta có:
y0  0
x

y1   t 2 dt 
0

x3
3

18



x

t6
y 2    t 2 
9
0

x

y 3   (t 2 
0


x3 x7
 dt 

3 63


t 6 2t 10
t 14
x 3 x 7 2 x11
x15


)dt 



9 189 3969

3 63 2079 59535
2
1
a 11 
a 15
2079
59535

Ta thấy:

y 2 ( x)  y3 ( x) 

Nếu a < 1 thì

y 2 ( x)  y 3 ( x)  0.001 .

Ưu điểm của phương pháp Picard là tìm nghiệm dưới dạng giải tích. Nhược
điểm lớn nhất là tích phân đòi hỏi phải lấy được tường minh.
2.2.2. Phương pháp chuỗi nguyên
Xét bài toán Cauchy (2.1a – 2.1b), trong đó hàm f(x,y) giải tích trong lân
cận ( x 0 , y 0 ) tức là


a

f(x,y) =

ij

( x  x0 ) i ( y  y 0 ) j


i , j 0

Khi đó nghiệm đúng y * ( x) có thể khai triển thành chuỗi Taylor:


y * ( x)  
i 0

y *( i ) ( x0 )
( x  x0 ) i
i!

Các đạo hàm y *( i ) ( x0 ) có thể tính được, nếu sử dụng phương trình (2.1a) và
điều kiện (2.1b):
y( x0 )  y 0

y ( x)  f ( x, y )  y ( x0 )  f ( x0 , y 0 )
y ( x) 

f f

y
x y

 y ( x0 ) 

f
f
( x0 , y 0 )  ( x 0 , y 0 ) f ( x0 , y 0 )

x
y

Như vậy nội dung của phương pháp rất đơn giản nhưng tính toán rất phức
tạp, hơn nữa bán kính hội tụ của chuỗi y  (x) rất khó xác định.
Ví dụ. Giải bài toán Cauchy:

y   x  y ; y(0) = 1.

Ta có
y(0) = 1

19


y (0) = 0 – 1 = -1

y  = 1 - y

 y (0)  2

y    y 

 y (0)  2

Nói chung y ( k ) (0)  (1) k 2 (k  2).
Vậy
(1) k x k
=1 – x + 2
k!

k 2


y  ( x )  1  x  2

  ( x) k

 
 1  x  =2 e  x + x - 1
 k 0 k!


2.3 Một số phương pháp số giải phương trình vi phân
2.3.1 Phương pháp sai phân
Xét dãy số xn  dạng khai triển của nó là

x0 , x1 , x 2 ,..., x n ,...
Định nghĩa 1. Ta gọi sai phân hữu hạn cấp 1 của hàm số x(n)  xn với n 
Z : n  0,1,2,..., n,... (hoặc n  Z  , hoặc n  N ) là hiệu:
xn  xn 1  x n

Thí dụ, hàm x n cho dưới dạng bảng
n

0

1

2


3

4

xn

1

3

4

7

6

Có sai phân hữu hạn cấp 1 là:
x0  x1  x0  3  1  2 ;

x1  x2  x1  4  3  1

x 2  x 3  x 2  7  4  3 ;

 x 3  x 4  x 3  6  7  1

Nếu không có gì nhầm lẫn với tỷ sai phân, ta gọi tắt sai phân hữu hạn cấp k
là sai phân cấp k, sai phân cấp 1 là sai phân.
Định nghĩa 2. Ta gọi sai phân cấp 2 của hàm xn là sai phân của sai phân
cấp 1 của x n , nói chung sai phân cấp k của hàm x n là sai phân của sai phân cấp
k – 1 của hàm số đó.

Sai phân cấp 2 của hàm x n là
2 x n   ( x n )  xn 1  xn  x n 2  x n1  ( xn 1  x n )

 x n 2  2 x n1  xn

20


Sai phân cấp 3 của hàm x n là
3 xn  (2 x n )  3 xn 1  2 x n
 x n 3  2 xn  2  x n 1  ( x n  2  2 x n 1  xn )

 x n 3  3xn  2  3xn 1  x n

Sai phân cấp k của hàm x n là
k

k x n  (k 1 x n )  k 1 x n1 k 1 x n   (1) i C ki x n k i
i 0

Trong đó C ki 

k!
i!( k  i)!

2.3.2 Phương pháp một bước
Xét bài toán Cauchy (2.1). Thực hiện tìm nghiệm bằng số của (2.1) tại điểm


x1  x0  h với bước h > 0. Theo phương pháp chuỗi nguyên ta có: y1  

i 0

y 0( i ) i
h
i!

trong đó y0( i )  y i ( x0 ) . Như vậy để tìm nghiệm tại điểm x1 theo phương pháp
chuỗi nguyên ta phải tìm giá trị của các hàm tại điểm x0 .
Runge và Kutta đã đề xuất một phương pháp tìm y1 chỉ bằng một hàm
f(x,y) tại một số điểm khác nhau như sau:
y1  y 0  y 0
Trong đó:
y 0  p r 1 k1 ( h)  ...  p rr k r ( h)

i  1, r
k i ( h)  hf ( i , i );

 i  x0   i h ;  1  0

 i  y0   i1 k1 ( h)  ...   i ,i 1k i 1 ( h) ; 11  0

Khi đó ta có sai số của phương pháp Runge – Kutta:
 r (h )  y ( x0  h )  y1  y ( x0  h)  y ( x0 )  y 0

 r( i ) (0) i
 r (h )  
h  O(h s 1 )
i!
i 0
s


21

(nếu  r( s 1) (0)  0 )


Các hệ số  i ,  ij , p rj được tính từ điều kiện:  r(i ) (0)  0, (i  0, s) ,  r( s 1) (0)  0
với s càng lớn càng tốt.
Khi đó ta có:  r(i ) (0)  y0( i )   p r1k1(i ) (0)  ...  p rr k r( i ) (0)  0 (i  0, s)
Vậy các hệ số  i ,  ij , p rj được xác định từ hệ phương trình sau:
 p r1 k1(i ) (0)  ...  p rr k r(i ) (0)  y 0( i )

i  0, s


(2.5)

Xuất phát từ phương pháp tổng quát, ta có một số thuật toán trong các
trường hợp riêng như sau:
2.3.2.1 Phương pháp Euler
2.3.2.1.a Phân tích thuật toán
Khi r = 1 ta có:
y0  p11k1 (h) ,

k1 (h)  hf ( x0 , y 0 ) .

1 ( h)  y ( x0  h )  y 0  p11hf ( x0 , y 0 );1 (0)  0

1 (0)  y 0  p11 f ( x0 , y0 )  (1  p11 ) f ( x0 , y 0 )


Để 1 (0)  0 với mọi hàm f, ta phải có p11  1 . Và 1(0)  y 0  0 .
Vậy:

y 0  p11k1 (h)  hf ( x0 , y 0 )

Ta nhận được công thức Euler:
y1  y 0  hf ( x0 , y 0 ) .

(2.6)

Tổng quát:
y n1  y n  hf ( x n , y n ), x n  x0  nh .

Sai số của phương pháp Euler:
R1 ( h) 

1( ) 2 y ( ) 2
h 
h  O(h 2 ) .
2!
2

Có nhiều cách khác để đi đến công thức Euler, ví dụ giữ lại hai số hạng đầu
trong khai triển Taylor
y( x1 )  y ( x0 )  y ( x0 )( x1  x0 ) 

Hoặc thay đạo hàm

22


y ( )
( x1  x0 ) 2
2!


y ( x0 )  f ( x0 , y 0 ) 

y1  y 0
h

Ta cũng được công thức Euler.
Ý nghĩa hình học của phương pháp Euler:
Từ điểm M 0 ( x 0 , y 0 ) ta kẻ tiếp tuyến với đường cong tích phân y(x)
( y ( x)  f ( x, y ) ). Tiếp tuyến này cắt đường x  x1  x0  h tại điểm M 1 ( x1 y1 ) . Dễ
thấy y1  h.tg  y 0  y 0  hf ( x0 , y 0 )
Để nhận được công thức sai số toàn phần, ta giả thiết f(x,y) liên tục
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 x n cố định trong khi bước h thay đổi. Gọi y(x) là nghiệm đúng của
dx

bài toán Cauchy (2.1) ta có:
xn

 y ( x n )  y 0   f ( x, y( x)) dx

x0
 y  y  hf ( x , y )
 n
n 1

n 1
n 1

Kí hiệu  n  y n  y ( x n ) là sai số của phương pháp Euler.
Dễ thấy:
x n 1

 n   n1   n  y n1  y n  ( y ( x n1 )  y ( x n ))  hf ( x n , y n ) 

 f ( x, y)dx

xn
x n 1

Ta có:  n  h f ( xn , y n )  f ( x n , y ( x n )) 

  f (x

n

, y ( xn ))  f ( x, y( x)) dx

xn

x n 1

 Lh y n  y ( x n ) 

 M ( x  xn )dx  Lh  n 


xn

Mh 2
2

Từ đây suy ra
 n 1  (1  Lh )  n 


Mh 2
Mh 2  Mh 2
 (1  Lh )(1  Lh )  n 1 


2
2 
2


 (1  Lh) 2  n1 

Mh 2
1  (1  Lh)   
2

 (1  Lh) n1  0 

Mh 2
1  (1  Lh)  ...  (1  Lh) n 1
2


23






Để ý rằng  0  y 0  y ( x0 )  0 , ta suy ra:
 n 1 


Mh 2 (1  Lh) n  1 Mh

(1  Lh) n  1
2 1  Lh  1
2L





Mh Lnh
Mh L ( xn  x0 )
(e  1) 
(e
 1)  O( h ).
2L
2L


Ngoài ra khi h  0, y n  y ( x n ) .
Bây giờ giả sử thay vì giá trị ban đầu đúng y 0đ , ta chỉ có giá trị xấp xỉ y 0g
sao cho y 0đ  y 0g   . Ta sẽ xem sai số ban đầu có bị khuyếch đại sau n bước hay
không? Dễ thấy y1g  y1đ  (1  hL) nói chung
y ng  y nđ  (1  hL) n   e Lnh  e L ( xn  x0 )   A

Như vậy nếu giá trị ban đầu mắc sai số thì sai số đó không tăng lên nhiều
sau n bước. Nói cách khác phương pháp Euler là ổn định.
Phương pháp Euler có ưu điểm là rất đơn giản, dễ lập trình. Tuy nhiên nó có
độ chính xác thấp nên chỉ dùng để tìm lời giải thô của bài toán Cauchy.
Ví dụ:
Giải bài toán Cauchy y   x  y 2 ; y(0) = 1; 0  x  1 bằng phương pháp Euler.
Tìm ymin và những giá trị x để ymin.
Các giá trị của Y được tính toán theo phương pháp Runge – Kutta (RK1):
0.9900 0.9803 0.9709 0.9618 0.9529 0.9443 0.9360 0.9280
0.9201 0.9126 0.9052 0.8982 0.8913 0.8846 0.8782 0.8720
0.8660 0.8602 0.8546 0.8492 0.8440 0.8390 0.8341 0.8295
0.8250 0.8207 0.8165 0.8126 0.8088 0.8051 0.8017 0.7983
0.7952 0.7921 0.7893 0.7865 0.7839

0.7815 0.7792 0.7770

0.7750 0.7731 0.7713 0.7696 0.7681 0.7667 0.7654 0.7643
0.7632 0.7623 0.7615 0.7608 0.7602 0.7597 0.7594 0.7591
0.7589 0.7589 0.7589 0.7591 0.7593 0.7596 0.7601

0.7606

0.7612 0.7619 0.7627 0.7636 0.7646 0.7656 0.7667 0.7680
0.7693 0.7707 0.7721 0.7737 0.7753 0.7770 0.7787 0.7806

0.7825 0.7844 0.7865 0.7886 0.7908 0.7930 0.7953 0.7977

24


0.8002 0.8026 0.8052

0.8078 0.8105 0.8132 0.8160 0.8189

0.8218 0.8247 0.8277 0.8307
Giá trị y min là: 0.7589.
2.3.2.1.b Sơ đồ khối
Euler

Input a, b, Y 0 , n

h:= (b - a)/n

x 0 = a; y 0 = Y 0

i = 1, 2, …, n

yi  yi 1  hf ( xi 1 , y i 1 );
xi  xi 1  h

Return

2.3.2.2 Phương pháp Euler cải tiến
2.3.2.2.a Phân tích thuật toán
Trong phương pháp Runge – Kutta (RK), ta xét trường hợp r = 2.

y 0  p 21 k1 ( h)  p 22 k 2 ( h).

Phương trình (2.1) trong trường hợp này có dạng:
y0l  p 21k1(l ) (0)  p22 k 2( l ) (0)



k1 ( h )  hf ( x0 , y 0 )

Nên

k1 (0)  0

25

(l  1,2)

(2.7)


×