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

TÓM TẮT LUẬN VĂN PHƯƠNG PHÁP XẤP XỈ EULER TRONG 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 (4.63 MB, 24 trang )




4

1.2

Sự tồn tại và duy nhất nghiệm của phương trình vi phân thường
bậc nhất

1.2.1

Định nghĩa về điều kiện Lipschitz
Hàm f (x, y) thỏa mãn điều kiện Lipschitz trong miền D của mặt phẳng Oxy

theo biến y nếu tồn tại L > 0 (hằng số Lipschitz) sao cho với ∀(x, y1 ), (x, y2 ) ∈ D :
|f (x, y1 ) − f (x, y2 )| ≤ L|y1 − y2 |

1.2.2

Định lý về sự tồn tại và duy nhất nghiệm của phương trình vi
phân thường bậc nhất
Cho phương trình vi phân thường bậc nhất

 y = f (x, y)
 y(x0 ) = y0 ,

(1.3)

và hàm f (x, y) có những tính chất sau đây:
1. Hàm f (x, y) xác định và liên tục tại một miền D nào đó của mặt Oxy


có chứa điểm (x0 , y0 ).
2. Hàm f (x, y) trong miền D thỏa mãn điều kiện Lipschitz theo biến y với
hằng số L > 0:
|f (x, y1 ) − f (x, y2 )| ≤ L|y1 − y2 |với ∀(x, y1 ), (x, y2 ) ∈ D.
Khi đó tồn tại duy nhất một nghiệm y = y(x) thỏa mãn điều kiện trên đoạn
[x0 − h, x0 + h], h > 0.

1.3
1.3.1
1.3.2

Một số phương pháp xấp xỉ thường dùng
Phương pháp giải tích
Phương pháp số



6

Hình 2.1: Ý nghĩa hình học của phương pháp Euler

Hình (2.1) mô tả kết quả của quá trình nói trên: đó là đường gấp khúc nối các
điểm (x0 , y0 ), (x1 , y1 ), (x2 , y2 ),. . . . Tuy nhiên giả sử rằng mỗi "đoạn nhỏ" bút vẽ
di chuyển dọc theo đoạn dốc tiếp tuyến rất nhỏ, nhỏ đến mức bằng mắt thường
không thể nhận ra được. Khi đó đường gấp khúc được xem như đường cong trơn
nghiệm của bài toán, đây cũng là ý nghĩa hình học của phương pháp Euler.

2.1.2

Thành lập công thức của phương pháp Euler

Giải bài toán Cauchy:


 dy = f (x, y),
dx
 y(x ) = y .
0

(2.2)

0

Vấn đề được đặt ra của bài toán là tìm gần đúng hàm nghiệm y(x) tại một số
điểm x1 , x2 , x3 , . . . , tức là tính các giá trị xấp xỉ y1 , y2 , y3 , . . . (giá trị chính xác
là y(x1 ), y(x2 ), y(x3 ), . . . tại các điểm x1 , x2 , x3 , . . . ). Nếu các điểm chia xn , n =
0, 1, 2, . . . càng nhiều thì ta càng có hình ảnh gần đúng của hàm nghiệm y(x).
Xét trường hợp các bước cách đều, tức là xn+1 − xn = h, n = 0, 1, 2, . . .. Từ
khai triển Taylor, giữ lại hai số hạng đầu ta có:
y (x0 )
y (ξ)
y(x1 ) = y(x0 ) +
(x1 − x0 ) +
(x1 − x0 )2 .
1!
2!
hf (x0 , y0 )
y(x1 ) = y0 +
+ 0(h2 ).
1!
hf (x0 , y0 )

Vậy ta có thể có :yn+1 ≈ yn +
.
1!
Ta nhận được công thức của phương pháp Euler như sau:
yn+1 = yn + hf (xn , yn ).

(2.3)


7

Phương pháp Euler (ở thế kỉ XVIII ) chưa có ý tưởng sử dụng máy tính để
dy
vẽ nên Euler tìm nghiệm bằng số. Trong phương trình vi phân
= f (x, y) với
dx
điều kiện y(x0 ) = y0 trước hết ta chọn bước lặp h để sử dụng vẽ từng bước từ
điểm này đến điểm kia. Giả sử, bắt đầu với điểm đầu (x0 , y0 ), sau n bước sẽ có
điểm (xn , yn ). Việc thực hiện vẽ từ điểm (xn , yn ) sang điểm (xn+1 , yn+1 ) được
xác định qua công thức thành lập (2.3) và được mô tả ở hình (2.2).

Hình 2.2: Bước thực hiện từ (xn , yn ) đến (xn+1 , yn+1 )

Độ dốc của đoạn đi được qua điểm (xn , yn ) là m = f (xn , yn ). Vì mỗi thay
đổi của h từ xn đến xn+1 tương ứng với sự thay đổi của mh = hf (xn , yn ) từ
yn đến yn+1 nên các tọa độ của điểm mới (xn+1 , yn+1 ) được cho bởi công thức
dưới đây trong hệ tọa độ đã cho:
xn+1 = xn + h; yn+1 = yn + hf (xn , yn ).
Với bài toán (2.2) phương pháp Euler với bước lặp h bắt đầu từ điểm ban đầu
(x0 , y0 ) ta tính được (x1 , y1 ),(x2 , y2 ),... Tuy nhiên người ta không vẽ đường gấp

khúc xấp xỉ, kết quả của phương pháp Euler là dãy xấp xỉ y1 , y2 , y3 , . . . với các
giá trị đúng y(x1 ), y(x2 ), y(x3 ), . . . tại các điểm x1 , x2 , x3 , . . . của nghiệm chính
xác y(x). Các giá trị tìm được thể hiện qua bảng các giá trị xấp xỉ .

2.1.3

Thuật toán phương pháp Euler
Xét phương trình vi phân (2.2). Để áp dụng phương pháp Euler với bước

lặp h ta áp dụng công thức:
yn+1 = yn + hf (xn , yn ); (n ≥ 0),


8

để tính các giá trị xấp xỉ y1 , y2 , y3 , . . . (giá trị chính xác là y(x1 ), y(x2 ), y(x3 ),
. . . của nghiệm chính xác y = y(x) tại các điểm x1 , x2 , x3 , . . . ).
Công thức truy hồi (2.3) nói cho ta biết cách tạo bước điển hình từ yn đến
yn+1 và đó là tâm điểm của phương pháp Euler. Để hiểu rõ phương pháp và
tiện so sánh các giá trị xấp xỉ và giá trị nghiệm chính xác, ta xét ví dụ 2.1.
Ví dụ 2.1. Dùng phương pháp Euler tìm nghiệm xấp xỉ của bài toán giá trị
ban đầu
dy
1
= x + y; y(0) = −3
dx
5
cho từng trường hợp sau:
a. h = 1 trên [0, 5].


b. h = 0.2 trên [0, 1].
1
Ở bài toán này f (x, y) = x + y với x0 = 0; y(0) = −3. Áp dụng công thức
5
của phương pháp Euler (2.3) ta có: yn+1 = yn + h(xn + 51 yn ).
a.Với h = 1 ta tính giá trị xấp xỉ tại các điểm x0 = 0, x1 = 1, x2 = 2, x3 =
3, x4 = 4, x5 = 5 và thể hiện qua bảng dưới:
x

0

1

2

3

4

5

Giá trị xấp xỉ y

-3.000

-3.600

-3.320

-1.984


0.6192

4.7430

b.Với h = 0.2:
Tại các điểm x0 = 0, x1 = 0.2, x2 = 0.4, x3 = 0.6, x4 = 0.8, x5 = 1 ta có các
giá trị xấp xỉ được thể hiện qua bảng dưới:
x

0

0.2

0.4

0.6

0.8

1

Giá trị xấp xỉ y

-3.000

-3.120

-3.025


-3.253

-3.263

-3.234

Sử dụng phần mềm Mathematica 4.2 ta xác định nghiệm chính xác của bài
x

toán ở ví dụ 2.1 là y(x) = 22e 5 − 5x − 25. Từ đó ta có thể biểu diễn đồ thị của
nghiệm xấp xỉ ứng với h = 1, h = 0.2, h = 0.05 cùng đồ thị của nghiệm chính
xác vừa tìm được trong hình (2.3) thông qua phần mềm Mathematica.
Ta thấy rằng khi bước h giảm thì độ chính xác càng tăng, đường cong xấp xỉ
nghiệm ứng với các bước h giảm càng gần với đường cong nghiệm chính xác.


9

1
Hình 2.3: Đồ thị nghiệm chính xác và nghiệm xấp xỉ của bài toán f (x, y) = x + y; y(0) = −3 với h = 1, h =
5
0.2, h = 0.05

Ví dụ 2.2. Xét phương trình chuyển động sau:
y = y + 1; y(0) = 1.
Hãy dùng phương pháp Euler hai lần để tìm nghiệm gần đúng trong [0, 1], lần
đầu với bước h = 0.1 và lần sau với bước h = 0.2. So sánh các kết quả nghiệm
gần đúng và giá trị nghiệm chính xác.
Sử dụng phần mềm Mathematica 4.2 ta xác định nghiệm chính xác của bài
toán y = y + 1; y(0) = 1 là y(x) = −1 + 2ex , các nghiệm xấp xỉ theo phương

pháp xấp xỉ Euler và từ đó đưa ra bảng giá trị nghiệm xấp xỉ (2.1).
x

Giá trị xấp xỉ của

Giá trị xấp xỉ của

Giá trị thực tế của

y ứng với h = 0.2

y ứng với h = 0.1

y

0

1

1

1

0.2

1.400

1.420

1.443


0.4

1.880

1.928

1.984

0.6

2.456

2.543

2.644

0.8

3.147

3.287

3.451

1

3.977

4.187


4.437

Bảng 2.1: Xấp xỉ Euler bài toán y = y + 1; y(0) = 1 với h = 0.2, h = 1 và giá trị nghiệm chính xác

Qua bảng (2.1), ta nhận thấy rằng với phương pháp Euler để các giá trị
nghiệm có độ chính xác cao cần có bước lặp h càng nhỏ và số bước lặp càng
lớn. Sử dụng phần mềm Mathematica 4.2 ta tính giá trị nghiệm chính xác và
các nghiệm xấp xỉ rất nhanh chóng qua bảng (2.1).


10

2.2

Sai số trong phương pháp Euler

2.2.1

Sai số địa phương
Xét sai số mắc phải trên một bước lặp với giả thiết bước trước đó tính

đúng. Ta xét hàm y(x) là nghiệm chính xác của bài toán:

 dy = f (x, y),
dx
 y(x ) = y ,
0

0


với h = xn+1 − xn , n ≥ 0.
Sai số trong công thức xấp xỉ tuyến tính
yn+1 ≈ yn + h.f (xn , yn ) = yn+1 ,
chính là độ chênh lệch giữa tiếp tuyến tại (xn , yn ) với đường cong nghiệm đi
qua (xn , yn ) được mô tả ở hình (2.4). Sai số này được sinh ra trong mỗi lần lặp
của quá trình, được gọi là sai số địa phương của phương pháp Euler.

Hình 2.4: Sai số địa phương trong phương pháp Euler

2.2.2

Sai số tích lũy(sai số toàn phần)
Nếu điểm xuất phát yn trong (2.3) là giá trị chính xác thì sai số địa

phương ở hình (2.4) sẽ là tổng sai số ở bước yn+1 . Nhưng bản thân yn lại nhận
các sai số tích lũy của các sai số địa phương . Đường tiếp tuyến ở hình (2.5) thể
hiện sai số tích lũy của phương pháp Euler- đó là độ sai khác giữa đường gấp
khúc đi qua (x0 , y0 ) với đường cong đi qua (x0 , y0 ).


11

Hình 2.5: Sai số tích lũy trong phương pháp Euler

Khi h → 0, yn → y(xn ). Vì vậy cách thường làm để giảm sai số tích lũy trong
phương pháp Euler chính là giảm bước h.
Ví dụ 2.3. Tính xấp xỉ nghiệm của bài toán giá trị ban đầu:
dy
= y − 2; y(0) = 1,

dx
với bước lặp h = 0.1 và các bước lặp nhỏ hơn như h = 0.01, h = 0.005,
h = 0.001 trong đoạn [0, 1] với

x = 0.1. Chẳng hạn với bước lặp h = 0.01 cần

100 bước lặp Euler, ta đi tìm số bước lặp các bước lặp nhỏ hơn.
x

Giá trị y xấp xỉ

Giá trị y xấp xỉ

Giá trị y xấp xỉ

Giá trị y xấp xỉ

Giá trị thực

với h = 0.1

với h = 0.01

với h = 0.005

với h = 0.001

tế của y

0


1

1

1

1

1

0.1

0.9000

0.8954

0.8951

0.8949

0.8948

0.2

0.7900

0.7798

0.7792


0.7787

0.7786

0.3

0.6690

0.6522

0.6511

0.6503

0.6501

0.4

0.5359

0.5111

0.5097

0.5085

0.5082

0.5


0.3895

0.3554

0.3533

0.3517

0.3513

0.6

0.2284

0.1833

0.1806

0.1784

0.1779

0.7

0.0513

-0.0068

-0.0102


-0.0130

-0.0138

0.8

-0.1436

-0.2167

-0.2211

-0.2247

-0.2255

0.9

-0.3570

-0.4486

-0.4541

-0.4585

-0.4596

1


-0.5937

-0.7048

-0.7115

-0.7169

-0.7183

Bảng 2.2: Xấp xỉ Euler bài toán

dy
= y − 2; y(0) = 1 với bước lặp nhỏ dần
dx

Sử dụng phần mềm Mathematica 4.2 ta tìm được nghiệm chính xác của bài
dy
toán
= y − 2 với y(0) = 1 là y = 2 − ex và đưa ra bảng giá trị nghiệm xấp
dx
xỉ (2.2).


12

Chúng ta thấy rằng với mỗi bước lặp h cố định thì sai số (ychính xác − yxấp xỉ )
sẽ tăng lên khi x càng xa điểm đầu x0 . Nhưng khi xem các hàng của bảng
(2.2), chúng ta thấy rằng với mỗi x cố định thì sai số sẽ giảm khi h nhỏ dần.

Như vậy, khi bước lặp còn nhỏ thì sai số tăng càng chậm khi đi xa dần điểm đầu.
Với mỗi bước lặp sẽ yêu cầu số bước nhảy khác nhau. Để có độ chính xác cao
người ta thường giảm bước nhảy. Nhưng ta không nên làm điều đó với hai lý
do. Trước hết là thời gian để làm điều đó. Lý do thứ hai là liệt kê nghiệm xấp
xỉ quá tỉ mỉ.
Ngoài hai loại sai số đã được nêu ở trên (sai số địa phương và sai số tích
lũy), tại mỗi bước máy tính sẽ có thêm sai số làm tròn.
Trên thực tế cũng như trên lý thuyết, khó có thể chọn được bước h "tốt
nhất", việc chọn đó phụ thuộc vào bản chất của hàm f (x, y) trong phương
trình (2.2), phụ thuộc vào mã hiệu mà chương trình được viết và phụ thuộc vào
máy tính được sử dụng. Với bước h quá lớn thì kết quả xấp xỉ của phương pháp
Euler có thể không đủ độ chính xác, còn nếu h quá bé thì sai số làm tròn bị
tích lũy làm cho thời gian chạy máy quá lâu.
Kết quả ở bảng (2.2) mô tả chiến lược chung về thuật toán số của phương
pháp Euler. Bắt đầu với số n rất nhỏ, sau đó tằng gấp đôi n cho mỗi lần áp
dụng sau. Việc so sánh các kết quả liên tiếp thường đưa đến "suy nghĩ trực
giác" về tính chính xác. Trong ví dụ 2.1, ta có thể xem thể hiện kết quả phép
tính gần đúng theo phương pháp Euler bằng đồ thị. Ta thấy rằng với mỗi x cố
định, giá trị xấp xỉ dần tới giá trị chính xác y(x) khi bước h càng nhỏ hay số
bước nhảy tăng lên.

2.3

Phương pháp Euler trong phương trình vi phân thường

Xét bài toán Cauchy:


 dy = f (x, y),
dx

 y(x ) = y .
0

0


13

Áp dụng phương pháp Euler với bước lặp h, ta có công thức:
yn+1 = yn + hf (xn , yn ),
để tính các giá trị nghiệm xấp xỉ trong khoảng [a, b].
Xét bài toán:
x = f(t, x), x(t0 ) = x0 .

(2.4)

x = (x1 , x2 , . . . , xn+1 ), f = (f1 , f2 , . . . , fn+1 ).
Đây là hệ gồm m phương trình vi phân cấp một.
Công thức lặp của phương pháp Euler ứng với hệ phương trình vi phân là:
Xn+1 = Xn + hf (t1 , Xn ).

(2.5)

Ví dụ đối với hệ gồm m = 2 phương trình vi phân cấp một, chúng ta viết :

 
 
x
f
X =   và f =  

y
g
Khi đó bài toán giá trị đầu (2.4)được viết như sau:
x = f (t, x, y), x(t0 ) = x0 ;

(2.6)

y = g(t, x, y), y(t0 ) = y0 .
và các thành phần vô hướng của công thức (2.5) được thể hiện dưới dạng:
xn+1 = xn + hf (tn , xn , yn );

(2.7)

yn+1 = yn + hg(tn , xn , yn ).
2.4

Một số bài toán tìm nghiệm gần đúng với phương pháp xấp xỉ
Euler trong phương trình vi phân thường

Ví dụ 2.6. Hãy dùng phương pháp Euler hai lần để tìm nghiệm gần đúng
1
trên [0, ] , lần đầu với bước lặp h = 0.25 và lần sau với bước lặp h = 0.1 của
2
bài toán giá trị đầu: y = −y; y(0) = 2.
Hãy so sánh các kết quả nghiệm gần đúng (lấy 3 chữ số thập phân) với giá trị


14

1

nghiệm chính xác y(x) = 2e−x tại x = .
2
Ta có f (x, y) = −y, nên áp dụng công thức của phương pháp Euler là:
yn+1 = yn + h(−yn ).
Với h = 0.25, chúng ta có:
y1 = y0 + 0.25 · (−y0 ) = 2 + 0.25 · (−2) = 1.5,
y2 = y1 + 0.25 · (−y1 ) = 1.5 + 0.25 · (−1.5) = 1.125,
1
1
Tại x = , với h = 0.25 thì y = 1.125 < y( ) = 1.213.
2
2
1
1
Tương tự, tại x = , với h = 0.1 thì y = 1.181 ≈ y( ) = 1.213.
2
2
Ví dụ 2.7. Xét hệ phương trình vi phân thường:

 x = 3x − 2y; x(0) = 3,
 y = 5x − 4y; y(0) = 6.
Với bước h = 0.1, tính xấp xỉ nghiệm x, y tại t = 0.2, 0.4. So sánh với nghiệm
chính xác.
Sử dụng phần mềm Mathematica 4.2 ta tìm được nghiệm chính xác của bài
toán đã cho ta có:


 x(t) = 2e−2t + et ,
 y(t) = 5e−2t + et .


(2.8)

Các giá trị chính xác tại t = 0.2 cho bởi (2.8) là:
x(0.2) ≈ 2.562; x(0.4) ≈ 4.573.

2.5

Ưu điểm và hạn chế của phương pháp xấp xỉ Euler trong phương
trình vi phân thường

2.5.1

Ưu điểm - tính ổn định của phương pháp Euler
Xét bài toán:
dy
= f (x, y); y(x0 ) = y0 .
dx


15

Giả sử giá trị ban đầu đúng là y0đ và giá trị gần đúng của nó là y0g sao cho
|y0đ − y0g | ≤ δ. Ta xét xem sai số ban đầu có bị khuếch đại sau n bước hay không.
Ta có
đ
yi+1
= yiđ + hf (xi , yiđ ),
g
yi+1
= yig + hf (xi , yig ),

g
đ
⇒ |yi+1
− yi+1
| ≤ |yiđ − yig | + h|f (xi , yiđ ) − f (xi , yig )| ≤

≤ (1 + Lh)|yiđ − yig |
đ − y g | ≤ (1 + Lh)|y đ − y g |, với mọi i.
Vậy |yi+1
i
i+1
i

Từ đó suy ra
g
đ
|ynđ − yng | ≤ (1 + Lh)|yn−1
− yn−1
|≤
g
đ
≤ (1 + Lh)2 |yn−2
|≤
− yn−2

≤ ...
≤ (1 + Lh)n |y0đ − y0g | ≤
≤ (1 + Lh)n δ ≤
≤ enLh δ =
= eL(xn −x0 ) δ.

Như vậy nếu giá trị ban đầu mắc sai số thì sai số không tăng lên sau n
bước. Nói cách khác phương pháp Euler là ổn định, đây là ưu điểm nổi trội của
phương pháp Euler .

2.5.2

Hạn chế trong phương pháp Euler
Chúng ta đã xét tính ổn định của phương pháp Euler trong mục 2.5.1, ta

thấy rằng phương pháp Euler là ổn định. Tuy nhiên có một số bài toán giá trị
đầu lại không được giải quyết tốt như thế. Ta xét ví dụ 2.11 sau đây để tìm
hiểu thêm.
Ví dụ 2.11. Dùng phương pháp xấp xỉ Euler để tìm nghiệm gần đúng của


16

dy
= x2 + y 2 ; y(0) = 1, trên đoạn [0, 1].
dx
Bảng (2.3) thể hiện các kết quả các nghiệm xấp xỉ của bài toán đã cho với

bài toán giá trị ban đầu:

bước h = 0.1, h = 0.02, h = 0.005.
x

Giá trị xấp xỉ của

Giá trị xấp xỉ của


Giá trị xấp xỉ của

y ứng với h = 0.1

y ứng với h = 0.02

y ứng với h = 0.005

0

1

1

1

0.1

1.1000

1.1088

1.1108

0.2

1.2220

1.2458


1.2512

0.3

1.3753

1.4243

1.4357

0.4

1.5735

1.6658

1.6882

0.5

1.8371

2.0074

2.0512

0.6

2.1995


2.5201

2.6104

0.7

2.7193

3.3612

3.5706

0.8

3.5078

4.9601

5.5763

0.9

4.8023

9.0000

12.2061

1


7.1895

309167

1502.2090

Bảng 2.3: Xấp xỉ Euler bài toán

dy
= x2 + y 2 ; y(0) = 1
dx

Xem bảng (2.3) ta thấy rằng sự "ổn định" của quá trình ở các ví dụ trước
không còn nữa. Rõ ràng rằng có gì đó bất ổn ở gần x = 1, vì vậy ta sẽ đi tìm
miền nghiệm của bài toán được đưa ra. Sử dụng phần mềm Mathematica 4.2 ta
dy
vẽ được miền nghiệm của bài toán
= x2 + y 2 cùng với đường cong nghiệm
dx
chính xác đi qua điểm (0, 1).

Hình 2.6: Nghiệm chính xác của

dy
= x2 + y 2 ; y(0) = 1
dx


17


dy
= x2 + y 2 cùng với
dx
đường cong nghiệm chính xác đi qua điểm (0, 1).Từ hình vẽ ta thấy đường cong
Hình (2.6) thể hiện miền chứa nghiệm của bài toán

có tiệm cận đứng ở gần x = 0.97. Mặc dù phương pháp Euler cho các giá trị
nghiệm gần x = 1, nhưng nghiệm chính xác lại không tồn tại trên cả đoạn [0, 1].
Hơn nữa, phương pháp Euler không thể theo kịp độ biến thiên nhanh của y(x)
khi x dần đến giá trị tiệm cận đứng.
Qua ví dụ 2.11 chứng tỏ vẫn có những cạm bẫy trong việc giải phương trình
vi phân bằng phương pháp Euler. Rõ ràng không thể tìm nghiệm xấp xỉ trên
một đoạn mà trên đoạn đó nghiệm không tồn tại (hoặc trên đoạn đó nghiệm
không duy nhất). Người ta không thể chấp nhận các kết quả áp dụng phương
pháp Euler với một số bước lặp cố định như trên là các kết quả chính xác.
Bên cạnh đó, sai số mắc phải của phương pháp Euler là khá lớn. Vì thế chúng
ta cần tìm cách để nâng độ chính xác lên thông qua các phương pháp khác.

2.6

Phát triển và so sánh phương pháp Euler với một số phương
pháp khác
Với những hạn chế về mặt sai số lớn, phương pháp Euler tuy có ưu điểm

là rất đơn giản, dễ lập trình nhưng chỉ dùng để tìm lời giải thô của bài toán
Cauchy. Từ phương pháp Euler ta có thể phát triển thành phương pháp Euler
cải tiến. Phương pháp nay sử dụng đơn giản và có thêm thuận lợi kiểm tra hệ
thống vốn có trong quá trình thu được để cải thiện sự ước lượng cho y.
Xét bài toán Cauchy:

dy
= f (x, y), y(x0 ) = y0 .
dx
Giả sử sau n lần lặp với bước h, chúng ta đã tính được giá trị xấp xỉ yn của
giá trị đúng y(xn ) của nghiệm, tại xn = xn +nh. Gọi un+1 (không phải y(xn+1 ))
là giá trị của nghiệm tại xn+1 = xn + (n + 1)h.


18

Khi đó:
un+1 = yn + hf (xn , yn ) = yn + hk1 . . .
ở x + xn đã được tính toán. Vậy tại sao ta không lấy giá trị trung bình của hai
độ dốc này để có được độ chính xác hơn. Ý tưởng này đã tạo nên phương pháp
Euler cải tiến với nội dung cơ bản như sau:
dy
Cho bài toán giá trị đầu:
= f (x, y), y(x0 ) = y0 .
dx
Phương pháp Euler cải tiến với bước h gồm các công thức truy hồi:
k1 = f (xn , yn ),

(2.9a)

un+1 = yn + hk1 ,

(2.9b)

k2 = f (xn+1 , un+1 ),
1

yn+1 = yn + h (k1 + k2 ).
2

(2.9c)
(2.9d)

Các công thức này dùng để tính các giá trị xấp xỉ y1 , y2 , y3 , . . . của nghiệm
chính xác y(x) tại các điểm x1 , x2 , x3 , . . ..
Công thức cuối ở (2.9d) có thể viết dưới dạng:
yn+1 = yn + hk với k = k1 + k2
Vậy phương pháp Euler cải tiến với bước h gồm việc sử dụng tiên đoán:
un+1 = yn + hf (xn , yn ).

(2.10)

1
yn+1 = yn + h [f (xn , yn ) + f (xn+1 , un+1 )],
2

(2.11)

Sau đó hiệu chỉnh:

tiếp tục phép lặp để tính các giá trị gần đúng y1 , y2 , y3 , . . . tới các giá trị
y(x1 ), y(x2 ), . . . , y(xn ) của nghiệm thực sự của bài toán ban đầu Cauchy.
Mỗi bước của phương pháp Euler cải tiến cần tính hai giá trị hàm f (x, y), trong
lúc đó phương pháp Euler thông thường chỉ cần tính một giá trị, vậy thì liệu
cải tiến phương pháp Euler có phức tạp và không hữu ích không ? Ta sẽ đi tìm
câu trả lời thông qua ví dụ 2.12 dưới đây.





21

Fortune 50, hầu hết 15 bộ chủ chốt của chính phủ Hoa Kỳ và 50 trường đại học
lớn nhất trên thế đều sử dụng Mathematica.
Tác giả của Mathematica là Stephen Wolfram. Ông sinh năm 1959 tại London. Ông bắt đầu phát triển Mathematica vào năm 1986. Version đầu tiên của
Mathematica được công bố ngày 23 tháng 6 năm 1988. Công trình này được
xem là thành tựu chính trong lĩnh vực khoa học tính toán cũng như là một
phần mềm toán học nổi tiếng vào bậc nhất hiện nay.

3.2

Ứng dụng phần mềm Mathematica cho phương pháp xấp xỉ
Euler

Việc lập trình vi tính để thực hiện một thuật số sẽ làm cho kích thước về
thuật toán của người lập thêm phần sắc sảo hơn. Tuy nhiên để giải một bài
toán của phương trình vi phân bằng phương pháp Euler thông qua lập trình
máy tính vẫn chưa được biết đến nhiều trong sinh viên các khối đại học. Vì
thế trong luận văn này, tôi nghiên cứu ứng dụng phần mềm Mathematica để
tìm nghiệm chính xác của phương trình vi phân thường và viết chương trình
tìm nghiệm gần đúng theo phương pháp xấp xỉ Euler, đồng thời mô tả nghiệm
chính xác và nghiệm xấp xỉ của phương trình vi phân thường bằng đồ thị thông
qua các gói câu lệnh đã được lập trình.
Quay trở lại với ví dụ 2.1. Để tìm nghiệm chính xác của bài toán
dy
1
= x + y; y(0) = −3,

dx
5
với cách giải bằng tay thủ công thông thường ta tìm được nghiệm chính xác
của bài toán đã cho là:

x

y(x) = 22e 5 − 5x − 25.

Nhưng với phần mềm Mathematica 4.2, ta chỉ mở một file mới và gõ câu
lệnh:
Clear[y, x];
1
DSolve [y [x] == x + y[x], y[0] == −3, y[x], x]
5
và nhấn tổ hợp phím shift và enter ta sẽ được kết quả như trong hình (3.1).


22

Hình 3.1: Tìm nghiệm chính xác bài toán ví dụ 2.1 với Mathematica 4.2

Đồng thời ta cũng có thể tìm nghiệm chính xác của hệ phương trình vi phân
trong ví dụ 2.9 như hình (3.2).

Hình 3.2: Tìm nghiệm chính xác bài toán ví dụ 2.9 với Mathematica 4.2

Thông qua phần mềm Mathematica ta cũng có thể vẽ đồ thị của hàm nghiệm
chính xác trong ví dụ 2.3 với hình (3.3).


Hình 3.3: Đồ thị nghiệm chính xác y(x) = 2 − ex

Khi thực hiện giải phương trình vi phân thường bằng phương pháp xấp xỉ
Euler ta có thể lập trình một thuật toán để thực hiện các bước lặp một cách
nhanh chóng trong ví dụ 2.1b như trong hình (3.4)


23

1
Hình 3.4: Lập trình Mathematica tìm nghiệm xấp xỉ bài toán y = x + y, y(0) = −3, h = 0.2 trên[0, 1] theo
5
phương pháp Euler

Bên cạnh đó việc giải hệ phương trình vi phân theo phương pháp Euler thông
qua phần mềm này cũng không quá phức tạp, ta có thể xem hình (3.5).

Hình 3.5: Lập trình Mathematica tìm nghiệm xấp xỉ của hệ phương trình vi phân trong ví dụ 2.9 theo phương
pháp Euler

Như vậy ngoài việc am hiểu về các cách giải nghiệm phương trình vi phân
thì trong thời đại công nghiệp hóa hiện nay, sinh viên nên tìm hiểu thêm các
phần mềm toán học hỗ trợ việc thực hiện tính toán một cách nhanh chóng và
dễ dàng hơn. Điển hình như phần mềm Mathematica mà tôi đã sử dụng trong
luận văn này.


24

KẾT LUẬN

Đề tài "Phương pháp xấp xỉ Euler trong phương trình vi phân thường" đã
đạt được những kết quả sau:
1. Đề tài đưa ra những kiến thức cơ bản về phương pháp Euler cũng như ứng
dụng từ đó đưa ra những hạn chế để khắc phục và phát triển phương pháp này.
2. Đề tài đã đưa ra một số các ví dụ cũng như bài tập để nêu bật lên ưu
khuyết điểm của phương pháp Euler.
3. Đề tài đã đưa ra một phần mềm ứng dụng mang tên Mathematica có ý
nghĩa hỗ trợ việc giải toán vi phân một cách nhanh chóng dễ dàng.
4. Đề tài có ý nghĩa thực tiễn là có thể làm tài liệu tham khảo cho sinh viên
các ngành Toán, sinh viên sư phạm, cử nhân Toán-Tin trong quá trình dạy và
học môn Phương trình vi phân và giải tích số.
Phương trình vi phân là một bộ môn học rất hay, phong phú, đa dạng với
nhiều phương pháp tính; do vậy đề tài có khả năng mở rộng nghiên cứu thêm các
phương pháp khác, đặc biệt là các phương pháp tính xấp xỉ: phương pháp xấp xỉ
một bước như phương pháp Euler cải tiến, phương pháp Runge-Kutta, . . . hay
các phương pháp đa bước như phương pháp Adams.
Do khả năng của bản thân còn hạn chế, mặc dù đã có nhiều cố gắng xong
luận văn không tránh khỏi những sai sót, tác giả rất mong nhận được những
ý kiến đóng góp quý báu của các thầy cô và các bạn để đề tài được phát triển
hơn.
Một lần nữa tôi xin cảm ơn chân thành thầy Lê Hải Trung đã tạo điều kiện
để tôi hoàn thành tốt đề tài này.



×