PHUONG TRINH VI
7 PHÂN
Phương trình vi phân là một nhánh quan trọng của Toán học, có nhiều ứng
dụng trong khoa học, công nghệ và kinh tế Phương trình vi phân được coi là cầu nối giữa lý thuyết và ứng dụng Tuy nhiên, hầu hết các phương trình vi phân, đặc biệt là các phương trình vi phân phi tuyến, rất khó xác định là có nghiệm hay không Nếu có nghiệm thì nghiệm đó có biểu diễn tường minh như thế nào Trong hoàn cảnh đó, các phương pháp số ra đời để tìm nghiệm gần đúng là điều tất yếu
Trọng tài liệu này ta chỉ khảo sát một vài phương pháp số tìm nghiệm gần
đúng của phương trình vi phân Cauchy:
Ựˆ = ƒ(%,0),x € |a;b]
{ y() <i, (7-1)
Dé tìm nghiệm gần đúng của phương trình vi phân (7.1) thì yêu cầu đầu
tiên là phương trình (7.1) phải có nghiệm duy nhất Kết quả sau đây của
Picard cho ta một diều kiện để phương trình vi phân (7.1) có nghiệm duy nhất Định lý 7.1 (Định lú Picard) Giả sử hàm ƒ(x,ụ) thỏa mãn các điều kiện sau day: e Liên tục trén mién D = {(x,y):a <x <b, yo —C <y < yo $C} e |f (x, yo)| < K,Vx € [a;b]
e Ton tai L > 0 sao cho |f (x,y) — f (x-y2)| < Ll ~ wa| tới mọi
Trang 2200 Phuong trinh vi phan
thì phương trình oi phân (7.1) cé duy nhat nghiém € Coal Hon nua, ly(x) — yo| < C ới mọi x € [a; b] Clutng minh Xét day ham {y,} dugc xac dinh boi: © yo (Xx) = Yo, e yn (x) = yot [fm (s)) đs với n > 1
Ta sẽ chứng tỏ hai kết quả sau bằng phương pháp qui nạp:
© Yn (x) € [Yo — Cryo + C],Vx € [a;b],Vn > 1, K [L(x —a)]" L n! [re S, yo) ,Vx € [a;b],Vn > 1 lif © Yn (xX) — Yn- 1(x)| < VỚI — 1 ta có L(x —a)) \yi (x) — Yo (x)| = T Mà eee < FL(b ~0) < EP EO Ol _ E feso-n a] <C
Trang 3201 Hơn nữa, k+1 Kk th (x — ay} ve Œ) —weG)| <3 lp (4) =ia 6) sky Eom Ti 7=: 1 K © [L (x —a)]! — KT r(x-a) = Loe ñ TT Ỉ ~ 1] K F 1(b~a) < T le — 1| < Cc Vậy hai kết quả của ta cũng đúng khi ¡ = k + 1 Do đó, theo nguyên lý qui nạp, chúng đúng với mọi # > 1 Tiếp theo, ta chứng tỏ phương trình (7.1) tồn tại nghiệm 1 € Chân: -E©o Ta thấy chuỗi hàm ` [ự„ (x) — w„-+ (x)] có dis] K [L(x —a)]" - K [L (b — a)}" — E [Yor (x) —Yn-1 (x)| < T nl ai = My Mà chuối đương 3) Ay CÓ hi 1-00 gu = Ky {00 [E(b—a))" K [zre=» _ 1 < +00, — „\ỊH ot LS ml L } HW + Co tasuy ra )" a, hdi tu Do do, theo tiéu chudn Weierstrass ([1]) day tổng „1 riêng i Yn (x) = DO [yi (x) — yi-a (x)] + yo i=]
Trang 57.1 Phuong phap Euler 203 Định lý Picard cũng giúp ta biết được cách tìm nghiệm đúng (x) của phương trình vi phân (7.1) thông qua cách xác định đãy hàm {Yn} Tuy nhiên, trong hầu hết trường hợp, việc biểu diễn tường minh các hàm 1„(x)
là không thể Từ đó dẫn đến việc không thể xác định chính xác (+) Trong
phân còn lại của chương, chúng ta sẽ tìm hiểu các phương pháp số để tìm nghiệm gần đúng của phương trình (7.1) Để tiện trình bày, nếu không có chú thích gì thêm, thì hàm ƒ(x, 1) sẽ thỏa các điều kiện trong Định lý
Picard; doan [a;b] duoc chia thanh n doan bang nhau bởi các mốc chia
X¿ = #xụ +ih,ỉ = 0,n voi xy = ah = Pia Công việc của ta là với mỗi
i = 0,n, ta sé xap xi (x¡) bởi giá trị yi (uu y là y(xo) = yo) va danh gia sai so |y(xi) — | 7.1 Phương pháp Euler (2) |a;b]” Giả sử € C theo công thức khai triển Taylor ta được h2 V(Xi:1) = ¥ (24) + hư (xì) + Sy" (Gi) VỚI ? = Ú,m — 1 Vì (x) là nghiệm đúng của phương trình vi phân (7.1) nên ¥! (xi) = f (xiy (x) Ta suy ra ` h2 —_
V{*¡.1) = W(%¡) + hƒ (xi (x¡)) + sy" (ỗi),í =0,n — 1 (7.5) Trong đẳng thức (7.5), nếu bỏ đi phần dư ey! (¢i) và thay y(x;) bang y;
thì ta được
Wi+i = ị T HỆ (Xi, Wị),Í = Ơn — T1 (7.6)
Công thức (7.6) được gọi là công thức Euler Ví dụ 7.1 Giải phương trình vi phân Cauchy
{your Mts [0; 0, 5]
y(0)=1
Trang 6204 Phuong trinh vi phan Giải Từ giả thiết đề bài ta có h = 0,1 và ƒ(x,U) =U—x+ 1 Khi đó, các
mốc chia được xác định bởi xo = 0;x¡ = xọ + = 0,101 = 1,5 Sử dụng
công thức Euler ta được
{ Yo " dy
yin = Yi thf (xi yi) = vit h (yj — x¡ị + 1),1 = 0,4
Phương trình vi phân ban đầu có nghiệm đúng là hàm y(x) = e* +x Bang giá trị sau đây so sánh giữa các giá trị chính xác và giá trị gần dúng được tính bằng công thức Euler [ xi | Yi | y(xi) [ 1yŒi) — vil_| 0 1 1 0 0,1 11, 200000000 | 1, 205170918 | 0,0051 70918 0,2 |1, 410000000 | 1,421402758 0,011402758 0,3 |1, 631000000 | 1,649858808 0,018858808 0,4 |1, 864100000 | 1,891824698 0,027724698 0,512, 110510000 | 2,148721271 0,038211271 © Hinh 7.1
Hinh 7.1 thể hiện đồ thị của nghiệm đúng (đường liền) và nghiệm xấp xỉ
bằng phương pháp Euler (hình thoi)
Phương pháp Euler tuy đơn giản nhưng vì sai số lớn nên ít được sử
dụng trong thực tê Sau đây, ta sẽ trình bày một phương án cải tiến cho
Trang 77.2 Phuong phap Euler cai tién 205
7.2 Phuong phap Euler cai tién
Sử dụng công thức hình thang ta được h Jy (x+s)ds = 5 |/'(x)+'(x+h)] +O (0) 0 Ta suy ra h y(x+h) = y(x)+ | y/ (x +s) ds =y(x)+3 [y' (x) +y! (x +h)] +0 (i) 0
Thay x = x;,i = 0,n — 1 vao dang thức trên ta được
vi) =5) +5 Ứ uy) + ƒ Ore Gia) +O (09) Ø2)
Trong (7.7), nều ta lược bỏ Ó (ñŠ) va thay y(x;) bang y; thì đẳng thức (7.7)
trở thành 1
fl
Yinr = Mir 5 Ƒ (Xui) + ƒ (Xi Yar) (7.8)
Công thức (7.8) cho ta nghiệm xấp xỉ chính xác hơn công thức (7.6) Tuy nhiên, vì về phải của (7.8) có chứa ¡¡; nên để tính được Yii1, ta phai giải phương trình (7.8) Việc này rất khó khăn nếu ham f(x,y) phic tạp Để
giải quyết vấn đề này, ta thay 1;, ở về phải của (7.8) bằng biểu thức i+i = 0í + hf (x, yi) Do đó, công thức (7.8) có thể viết lại như sau: h ee Yin = Vit 5 Uf (xii) + f (41,5 + Af (xi,yi))],i=0,n—T (7.9)
Trang 8206 Phuong trinh vi phan
Ví dụ 7.2 Giải phương trinh vi phan Cauchy
ự' = x(x?+cV+2),V+x € |0,5;0,7] (0,5) =1
bằng phương pháp Euler cải tiến với h = 0,1, mỗi giá trị cải tiền ba lần Giải Dựa vào giả thiết đề bài ta được
h = 0,1; f (x,y) = x (x? + ef +2); x0 = 0,5,%1 = 0,6,%2 = 0,7; Yo = 1
+ Tính 1, ta có
vì” = yo + hf (xo, Yo) = yo + hxo (x6 + eo + 2) = 1,248414 Sử dụng công thức (7.10) cho ¡ = 0 và cải tiến lần k + 1 ta được y* My yo + Ễ If (xo, Yo) + f (xv) | = — 21 Yo 22 aye? ; =Yyot 5 xọ (xã + e9 +2) +xi (xi te +2)| Ta tinh duoc ựỆ = 1,299551 ự‡!? = 1,305037 yO) = 1,305642 Vay yi = (`) = 1,305642 + Tinh y2, ta cd
yo? = yn HAF (x1, y1) = yi + hex, (x7 +e” +2) = 1, 668645
Trang 97.2 Phương pháp Euler cải tiễn 207
Ví dụ 7.3 Giải phương trình vi phân Cauchy { yi =y-~—x+1,x € |0;0,5]
(0) = 1
bằng phương pháp Euler cải tiến với h = 0,1, mỗi giá trị cải tiến ba lần Giải Từ giả thiết để bài ta có
h =0,1;ƒ(3,) =0 —x + 1;x¡ = 0,1 = 0,5;o = 1
+ Tinh yj, ta cd
ys ) = yo thf (x0, yo) = o + h (0o — xo + 1) = 1,2
Sử dụng công thức (7.10) cho ï = 0 va cai tién lan k + 1 ta được
yi" eh Yo + h lf (Xo, Yo) + f (74?) |
= Yor = 5 [(yo — Xp +1) + (ui ) — #1 + 1)] Ta tinh duge {` = 1,205000000 y = 1, 205250000 y\?) = 1,205262500 Vậy ¡ = | `` = 1,205262500 + Tương tự, ta cũng tính được a = uŸ) = 1,421605194 y3 = y® = 1,650194411 4 = VỆ) = 1,892319250 ys = yS) = 2,149404504
Nhu đã biết, phương trình vi phân ban đầu có nghiệm đúng là hàm /(x) =
* +x Bảng giá trị sau đây so sánh giữa các giá trị chính xác và giá trị gần đúng được tính bằng công thức Euler cải tiến
Trang 10208 Phuong trinh vi phan
Từ bảng giá trị trên ta thấy các giá trị gần đúng được tính bằng công thức Euler cai tiền có sai số tốt hơn so với công thức Euler m
7.3 Phuong phap Runge-Kutta
Nội dung cơ bản của phương pháp Runge-Kutta là để tăng độ chính xác của 1⁄¡¡ ¡ thì ta cần thêm các điểm trung gian giữa x¡ và x;¡, ¡ Phần lý thuyết của phương pháp này rất phức tạp, bạn đọc có thể xem trong [4] hoặc [5] Ở đây, chúng ta chỉ đi vào cách sử dụng công thức Runge-Kutta để giải các phương trình vi phân Cauchy Có nhiều công thức Runge-Kutta được khám phá Tuy nhiên, ta chỉ tìm hiểu công thre Runge-Kutta bac bon
$ Cong thie Runge-Kutta bac bốn kị) = hƒ (Xi,Wi), Ki) =hf (x; 4+ 5h, yi t+ 1, , NT = hƒ (x¡ + 4h, yj + 4ks? = Hƒ |Xr+h; "mì yar = í + š (KẾ) + 2P? + 2k) + kỳ”), i=0,n—1 Vi du 7.4 Giai phuong trinh vi phan Cauchy yl = y (x +1) + 2x7, x € |0,5;0,7) (0,5) =1
bằng phương pháp Runge-Kutta bậc bốn với = 0, 1
Giải Dựa vào giả thiết đề bài ta được
Trang 117.3 Phuong phap Runge-Kutta 209 Khi đó, ị = yo + § (ky) + 2K) + 2) + kỹ”) = 1,233025 + Tinh y2, ta cd Ki?) = hf (x1,y1) = 0, 269284 (2) _ Ke _ Saf | Se-+ 5,1 +- + = 0,310165 Ki?) 7) — hf (x4 + by = 0,313538 ky = hƒ (xi + huyi + Qo ’) = 0,360916
Khi d6, yo = yr + 8 (ky? + 2K?) + 2K?) + ky’) = 1,545959 m
Ví dụ 7.5 Cho hàm số 1 = 1/ (x) là nghiệm của phương trình vi phân
ụ = xự (x2 + 1),Vx € |0,5; 1] y (0,5) =1
Dùng phương pháp Runge-Kutta bac bốn tính ự (0,7) với h = 0,1
Trang 12210 Phuong trinh vi phan
Vi du 7.6 Giai phuong trinh vi phan Cauchy y’ =y—x+1,x € [0;0,5]
y(0)=1
bang phuong phap Runge-Kutta bac bin véi h = 0,1 Giải Từ giả thiết đề bài ta có Wt = Ö,1) Ƒ(X,f} = 1ý = &£ r1) #y = 0, Ll = 0,576 = 1 + Tính 1, ta có KY = hf (xo, yo) = 0, 200000000 (1) kK) = hf (xo +4, yo + 4- ) = 0,205000000 pO) SY) = nf (xo + 4, yo +) h DA — = 0,205250000 KỊP = hf (x0 + hyo + KS?) = 0,210525000 Khi d6, v1 = yo + ¿ (Ki) + 2k{” + 2449 + Kf”) = 1, 205170833 + Bằng cách tương tự ta tính được yo = 1,421402571 y3 = 1,649858497 ya = 1,891824240 ys = 2, 148720639 i
Nhu da biét, phương trình vi phân ban đầu có nghiệm đúng là hàm 1(x) =
c* -+- x Bảng giá trị sau dây so sánh giữa các giá trị chính xác và giá trị gần
Trang 137.3 Phuong phap Runge-Kutta 211
c
Pot € ' c
Hinh 7.2
Hinh 7.2 cho ta thay giá trị của log(y(x x;) — yi|) trong phương pháp Euler (hinh thoi), phương pháp Euler cải tiền (dấu sao) và phương pháp Runge-Kutta bậc bốn (hình tròn) Rõ ràng phương pháp Runge-Kutta bậc
bồn cho nghiệm gần đúng với sai số tốt nhất Kĩ
Bài tập chương 7
Bài tập 7.1 Dùng phương pháp Euler giải gần đúng và so sánh với nghiệm
chính xác của các phương trình vi phân Cauchy sau đây:
1
Go
yf = ye — 20;0 < x < 0,05;(0) = 0 với = 0,01 Nghiệm chính
xác của "¬ trình vi phân là /(x) = šxe}*Y — se + de T2, / =1+(x—)?2< x < 2,04;U/(2) = 1 với = 0,01 Nghiệm
chính xác của phương trình vi phân là (x) =x— vi
= 1+ yl<x < 1,03;y(1) = 2 voi h = 0,01 Nghiệm chính xác cua nhượng trinh vi phan la y(x) = x In x + 2x
y’ = cos2x + sin3x;0 < x < 0,1;y(0) = 1 véih = 0,025 ee
Trang 14212 Phuong trinh vi phan
5 y =e ¥;0< x < 0,1; y(0) = 1 với h = 0,05 Nghiệm chính xác của
phương trình vi phân là /(x) = ln(e* + e — 1)
6 = ‘ied <x <1,2;y(1) = 2 voi h = 0,05 Nghiém chinh xac ctia
phương trình vi phân là y(x) = Vx? +2x+6—1
7 yf = -y + xy?;2 <x < 2,2;y(2) = 2 voi h = 0,05 Nghiệm chính
vA2
xác của phương trình vi phan 1a y(x) = (x 24 V⁄2e1 )
Bài tập 7.2 Dùng phương pháp Euler cải tiễn (cải tiến ba bước) giải gần đúng và so sánh với nghiệm chính xác của các phương trình vi phân
Cauchy trong Bài tập 7.1
Bài tập 7.3 Dùng phương pháp Runge - Kutta bậc bốn giải gần đúng và
So sánh với nghiệm chính xác của các phương trình vi phân Cauchy sau
đây:
ly XƑ” = u ¬ V 5 1 < x< 1,2;/(1) = 1 với h = 0,05 Nghiệm chính xác -
của phương trình vi phan la y(x) = —+— 14 Inx
2 y = 1444431 < x< 1,2;y(1) = 0 với h = 0,05 Nghiệm chính
xác của phương trình vi phân là /(x) = x tan(In x)
3 ˆ = —-5ự + 5x2+2x;0 < x < 0,04;y(0) = 3 với h = 0,02 Nghiệm chính xác của phương trình vi phân là y(x) = x? + še ”*,
Bài tập 7.4 Dùng phương pháp Runge - Kutta bậc bốn giải gần đúng và
so sánh với nghiệm chính xác của các phương trình vi phân Cauchy trong
Bài tập 7.1
Bài tập 7.5 Cho phương trình vi phân
1ˆ = 2x + cos „x € [0,02;0,04]
(0,02) =1
Tính (0,03) bằng công thức Euler cải tiến (cải tiến 3 bước) với h = 0,01
Bài tập 7.6 Cho phương trình vi phân
{ ự = xự+x+?,x € |0;0,08]
y(0)=1
Trang 15[1] [2] [4] [5] [7] [8] [9] [10] [11] [12] Tỏi liệu tham khỏo Lê Văn Lai, Giáo trình Toán cao cấp A1,NXB Đại học Công Nghiệp TP HCM, 2017 Nguyễn Minh Chương, Giải tích só, Nhà xuất bản Giáo dục Việt Nam, 2009
Lê Thái Thanh, Lê Ngọc Lăng, Nguyễn Quốc Lân; 2003, Giáo trình
Phương Pháp Tính, NXB Đại học Quốc Gia TP HCM, 2007
Trần Văn Trản, Phương pháp sô thực hành, Tap 1, NXB Đại học Quốc Gia Hà Nội, 2007 Endre Suli, David Mayers, An Introduction Numerical Analysis, Cam- bridge University, 2003 Hildebrand, Introduction To Numterical Analysis (2nd Edition), Dover Publication, 1987
Doron Levy, Numerical Analysis, Lecture, 2005
Trang 16214 TAI LIEU THAM KHAO [13] James Stewart, Calculus Early Transcendentals, 6e, Thomson Brooks/ Cole, 2008 [14] Dương Minh Đức, Giải Tích Hàm, NXB Đại học Quốc Gia TP HCM, 2005
[15] Phan Quốc Khánh, Phép tinh vi tich phan, Tap 1, NXB Giao Duc, 1998