CHƯƠNG I TONG QUAN TỪ PHƯƠNG PHÁP SAI PHAN DON DEN SAI PHAN NHIEU BUOC 1. SAI PHAN VA PHUONG PHAP TAYLOR BAC CAO L1. Phwong phap sai phan Trong luận văn này, chúng ta sẽ dùng thuật ngữ phương pháp sai phân để nói về các phương pháp sử dụng mô hình sai phân để xấp xi đạo hàm trên một lưới điểm rời rạc. Mô hình sai phân đơn giản nhất là phương pháp Euler tiến và Euler lùi.
Ngoài ra còn có các phương pháp sai phân bậc cao hơn như là phương pháp sai phân điểm gitta (midpoint method), phuong phap hinh binh hanh (trapezoidal method), ho phuong phap Runge-Kutta,. Mô hình sai phân Giả sử f là một hàm số khả vi liên tục trên đoạn [a,b]. Chúng ta chia đoạn [a,b] thành N phần bằng nhau, mỗi đoạn có độ dài h=Ax= bra : Xg=a, X,=ath, ., xy=b hay là một vector xX=[x, hon. Khi đó giá trị của f trên đoạn [a,b] duoc biểu diễn rời rạc dưới dạng một vector y=ly,l-sw với y,=f(x,).
Chúng ta muốn biểu diễn đạo hàm của f bằng một vector [y']=Dy=[f'(x,)] cdc gid tri x4p xi đạo hàm của f trên lưới điểm [x,]. Cách đơn giản nhất là phương pháp Euler, có thể tìm được từ phân tích chuỗi Taylor của f : f(x tAx)=£ (x) +£'(x)Ax+O((Ax)’) hay f(x, 4,) =f (x,) +h£'(x,)+O(h’) > nghĩa là P(x)= E1 “*+oln) (.) Phương pháp Euler vì vậy là một phương pháp sai phân cấp mét (FDI — finite difference of order 1). Ngoài ra nếu chúng ta phân tích chuỗi Taylorcủa f tạiđiểm x,_, , ttre là: £(x,_,)=£(x,) —hf'(x,)+O(h’) khi đó chúng ta có phương pháp Euler lùi £x)=“=“=Hroln) (1.2) Tương tự như vậy, chúng ta cũng có thê xấp xi đạo hàm bậc 2 của f bằng mô hình sai phân đạo hàm bậc 2 cap 2 (FD2 — finite difference order 2): — Yar 2V TW ¡ 7" +O(h2) (1. Sai số và bậc của phương pháp sai phân Khi sử dụng phương pháp số để giải phương trình vi phân, chúng ta luôn muốn biết độ chính xác của nghiệm số (nghiệm xấp xi).
Vậy điều mà ta quan tâm ở đây là sự sai khác giữa nghiệm chính xác và nghiệm xấp xi. Nhưng làm thế nào có thể xác định được chính xác sai số đó trong khi nghiệm chính xác không phải lúc nào cũng tìm được. Nếu không tính được chính xác sai số, chúng ta có thể ước lượng chúng như thế nào? Trong luận văn này ta sẽ xét hai loại sai số: sai số địa phương và sai số toàn cục. Xét bài toán giá trị đầu fíÍt,y) vi)" .4) [a , b] ml —_ Sai số địa phwong (local truncation errors — LTE) Dinh nghia: Sai sé dia phuong con duge goi 1a sai s6 1 bước.
Sai số địa phương là sự sai khác giữa giá trị của lời giải trên đoạn [t,,t,,,]} và nghiệm chính xác của “bài toán giá trị đầu 1 bước” (t, y) = (1.6) Trong đó, z(t,,,) là nghiệm chính xác của bài toán giá trị đầu I bước (1.5) tại t=t (41 > Wj, langhiém xap xitai t=t,,, Y nghia: Sai số địa phương là sai số xảy ra chi trong 1 bude, lấy nghiệm xấp xỉ w, ở bước trước làm điểm bắt đầu. —_ Sai số toàn cục (global truncation errors) Định nghĩa: Sai số toàn cục là sự sai khác giữa lời giải xấp xi ODE (ví dụ như phương pháp Euler) và nghiệm chính xác của bai toan giá trị đầu. Công thức: 8i=lWi—yi (1.6) Ý nghĩa: Sai số toàn cục là sai số tích lũy từ những bước ¡ đầu tiên. Ở mỗi bước, sai số toàn cục mới là sự kết hợp của sai số toàn cục ở bước trước và sai số địa phương mới.
Nhưng sai số toàn cục không đơn giản là tổng của các sai số địa phương.1 biéu diễn sai số trong một bước của phương pháp Euler khi giải bài toán giá trị đầu (1. 3¡ +1 ft; fied Hình 1. Một bước của một lời giải ODE.1, đường mũi tên chỉ phương pháp Euler từ điểm hiện tại (t,,w,) đến điểm tiếp theo (t,,,, w,,,). Đường cong ở trên là nghiệm chính xác của phương trình vi phân.
Định lý Giả sử f(t,y) có hằng số Lipschitz là L đối với biến y và giá trị y, là nghiệm của bài toán giá trị đầu tại t, , nó được xấp xibởi w, từ lời giải ODE một bước với sai số địa phương e,< ChŸ*!, với C là hằng số và k>0. Khi đó với mỗi a<t,<b , lời giải có sai số toàn cục là gi=|wi-yl< => (e' "= 1) (1.7) — Bậc của phương pháp sai phân Nếu một lời giải ODE thỏa mãn (1.7) khi h >0, ta nói lời giải đó có bậc k.1: Tìm sai số địa phương và bậc của phương pháp Euler Giả sử y" liên tục. Theo định lí Taylor, nghiệm chính xác tạ t,,,=t,+h là 2 y (tay (i+ h)=y(t) thy "(t+ y "!e) với cthỏa t,<c<t,,,. Mh? 2 Nếu M là chặn trên của y" trên [a, b], thì sai số địa phương thỏa e,< Do đó, bậc của phương pháp Euler là 1.
Dạng ma trận của phương pháp sai phân Các mô hình đạo hàm sai phân có thể viết dưới dạng ma trận: [y']=Ay trong đó ma trận A gọi là ma trận đạo hàm sai phan (differentiation matrix). Dang ma trận giúp biểu diễn các bài toán vi phân thuận tiện hơn. Việc sử dụng các mô hình sai phân khác nhau phần lớn sẽ chỉ khác nhau ở ma trận A, mà không ảnh hưởng đến mô hình bài toán. Do đó chúng ta có thể linh hoạt hơn trong việc chọn các phương pháp sai phân khác nhau.
Ví dụ trong mô hình sai phân đạo hàm bậc 2 cấp 2, khi áp dụng cho bài toán điều kiện biên: f£ liêntụctrên [a,b]}, yạ=f(a)=œ, yy=f(b)=B , f khả vi liên tục cấp 2trong (a,b) , có thé viết dưới dạng ma trận bằng cách chọn y =lYyl-in-¡ VÀ: a 1/1 -2 1 0: 1| 0 y"=[f'(xv)]=rs KH HH T5 .8) 01 —2 1 llYy; 0 00 1 -2jy B N-1 -2 1 0 0 a 1 1 -2 1 0 1|0 Đặt A=-; ca. | SOE h h 0 1 -2 1 0 0 oO 1 -2 B Khi đó: y"=Ayt+e, .2 Phương pháp Taylor bậc cao Xét phương trình bậc nhất: y'=f(t,y) (1.11) trong đó: h:=A(t) Phương pháp Taylor bậc 1 là phương pháp Euler được rút ra từ (1.11) như sau: Ya+i=y„+hf (t„,y„)+ O(hŸ) (1.12) Taylor bac cao: v[t+h)=y[t)+hy'(Je3 y"(tJesry"(J+O[BP) (11.13) Đối với phương pháp Taylor bậc 1 ta thấy y' đã được cho bởi (1. Còn đối với phương pháp Taylor bậc cao, các đạo hàm cấp cao y", y'",. chưa có nên vấn đề ở đây là ta cần tính các đạo hàm cấp cao này của y.10) ta có thể tính các đạo hàm của y chính xác không sai số như sau: dy df of, of nidy_df_ of of |, 1.14 yo ae dt ot oy” (11.14) Of Of of of of .15 at ôyôt” Stay ayn) dy” ( Thay (1.15) ta được: Of, Of Of, 2, Of Of ,af\ mmo my TC ' — —— ' 1.16 BE ayat) oy!) tay att lay) Y ( ) Taylor bac 2: Phuong phap Taylor bac 2 có thể được rút ra từ (1.14) như sau: _ h of h of 3 Vua =ya+h[ Tay +f(t,sy,) +57 By )FO(h ) (1.17) Taylor bac 3: Tir (1.16) ta rút ra được phương pháp Taylor bậc 3 như sau: v„u=yeth[ftoyy)[L+2t-Etẩnl22 ay ta 5-ftry,)# (St) aw tin TẾ SE soln’) Vi du 1.2: Xét phương trình vi phân: y'=f(t,y)=2t y(0) = yo Phương trình trên có nghiệm là: y = yott” Chia t = [0, L] thanh N phan bang nhau, h=L/N, t,=nh.
Ta có nghiệm chính xác của bài toán như sau: Yn=Yo+(t,) =Yo+(nh)’ =y_+(h’).nỶ Suy Ta: Yuai=yo+h(n+1} (1.19) Tìm nghiệm của bài toán theo hai phương phap Euler 1 va Euler 2. Theo phương pháp Euler l ta có: Yn+i=Y,Th.2t, Y„¡=y,+2hÐ, ft, i=0 Yar =Yot2h » ih i=0 ¥ ni =Yot2h? Dy i i=0 Ynui=Yoth'(n’+n) (1.20) Theo phương pháp Euler 2 ta có: h of h of You =Yat hla; By t Flt noYa)(1+ a at )] (1.21) Tinh cac dao ham riéng: of of a =2 a= ot , oy Thay vào (1.21) ta được: Ynii= y„th[Ö.22) Sai số của Euler 1: Lấy (1.19) ta được sai số của phương pháp Euler 1 như sau: e, = h°(—n—1) = O(h) Sai số của Euler 2: Lấy (1.19) ta được sai số của phương pháp Euler 2là e, = 0 Nhìn vào sai số của hai phương pháp ta thấy phương pháp Euler 2 cho ta nghiệm chính xác hơn phương pháp Euler 1. Để nhìn một cách trực quan hơn ta hãy xem đồ thị sau đây. Giải bài toán ở ví dụ 1.2 bằng Matlab với L=1,N=20, yạ=l.
Đồ thị của hai phương pháp Euler | va Euler 2 và nghiệm chính xác được thể hiện ở hình vẽ sau. Euler 1 18Ƒ Euler 2 Exact xr 1.2: Do thi theo phwong phdp Euler 1 va Euler 2 trong vi du 1. Đồ thị trên thể hiện nghiệm chính xác của bài toán và nghiệm của bài toán theo hai phương pháp Euler 1 và Euler 2. Nhưng vì sai số của phương pháp Euler 2 ( e; ) bằng 0 nên đường biểu diễn nghiệm chính xác và nghiệm theo phương pháp Euler 2 trùng nhau.
Do đó trong hình vẽ ta chỉ thấy 2 đường biểu diễn cho ba loại nghiệm.2 là một ví dụ đơn giản cho ta nghiệm theo phương pháp Euler 2 trùng với nghiệm chính xác của bài toán. Tuy nhiên không phải lúc nào cũng vậy. Đề thấy được sự chính xác hơn của phương pháp Taylor bậc cao, ta xét thêm một ví dụ sau.3: Xét bài toán y'=f(t,y)==2y y(0)=yạ=1 t=[0,1] chia làm 20 phần bằng nhau Nghiệm của bài toán là: y(t) = yo-exp(—2t) Ta tinh cac dao ham riéng: of of =0 =— ôt , oy Phuong phap Euler 1: Yaui=Yat hf (t,,y,)+O(h’) ¥nv1=Yn—2hy, +O(h”) Phuong phap Euler 2: v„.i=y,thÍ TS Y„:i=ya(1—2h+2h”)+O(hŸ) Đồ thị của hai phương pháp Euler | va Euler 2 và nghiệm chính xác được thể hiện ở hình vẽ sau.3: Đồ thị theo phương pháp Euler 1 và Euler 2 trong vi du 1. Qua đồ thị ta thấy nghiệm theo phương pháp Euler 2 gần trùng với nghiệm chính xác hơn.
Điều này chứng tỏ phương pháp Taylor bậc cao chính xác hơn. Hai ví dụ trên là hai ví dụ đơn giản giúp ta so sánh độ chính xác nghiệm của phương phap Taylor bac l và phương pháp Taylor bậc 2 (Taylor bac cao) voi nghiệm chính xác. Tuy nhiên, trong thực tế ta thường gặp không phải là những phương trình tuyến tính dễ dàng tìm ra nghiệm chính xác. Có rất nhiều phương trình rất khó để tìm ra được nghiệm chính xác.
Tuy nhiên, ta có thể xấp xỉ nghiệm của bài toán qua các phương pháp số. Có nhiều phương pháp dé đưa ra nghiệm xấp xỉ cho bài toán, nhưng ta luôn hướng tới biện pháp tối ưu nhất. Ví dụ sau đây cho ta thấy được ta có thê tìm được nghiệm xấp xỉ của bài toán thông qua phương pháp số mặc đù không biết được nghiệm chính xác của nó.