Đang tải... (xem toàn văn)
Bài giảng Phương Pháp Tính
Chương 6GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂNI. Mở đầu. Các bài toán thường gặp có thể 2 loại:* Bài toán Côsi : là bài toán dạng phương trình vi phân với điều kiện bổ sung (điều kiện ban đầu) đã cho tại không quá một điểm.C - hằng số tích phân, phụ thuộc điều kiện ban đầu- Mỗi giá trị của C 1 nghiệm xác định.- Xác định C cần biết thêm 1 điều kiện ban đầu, ví dụVí dụ: Cho phương trình vi phân cấp 1: y’ = 2x + 1; (a)- Nghiệm tổng quát : y = x2 + x + C; (b)y(x=1) = 2; (c) (b) C = 0;Nghiệm của (a) là y = x2 + x thoả mãn (a) và (c).Bài toán tìm hàm số y(x) thoả mãn p/t vi phân (a) và điều kiện ban đầu (c) bài toán Côsi. Bài toán Côsi đối với phương trình vi phân cấp 1:- Cho khoảng [x0, X]- Tìm hàm số y = y(x) xác định trên [x0, X] thoả mãn:y’ = f(x,y); Xxx≤≤0y(x0) = η ;( 1 )( 2 )Trong đó f(x, y) – hàm đã biết; η - số thực cho trước( 2 ) - điều kiện Côsi hay điều kiện ban đầu.* Bài toán biên.Bài toán giải phương trình vi phân với điều kiện bổ sung được cho tại nhiều hơn 1 điểm.- Cho khoảng [a, b];- Tìm hàm y = y(x) trên [a, b] thoả mãn:Trong nhiều trường hợp giải gần đúng .y’ + p(x)y’ +q(x,y) = f(x); bxa≤≤( 3 )với điều kiện y(a) = α; y(b) = β( 4 ) II. Giải bài toán Côsi.1. Phương pháp chuỗi Taylo.y’ = f(x, y);Xxx ≤≤0y(x0) = η ;Khai triển nghiệm y(x) tại x = x0:⋅⋅⋅+−+⋅⋅⋅+−+−+=kkxxkxyxxxyxxxyxyxy )(!)()(!2)(")(!1)(')()(00)(200000( 5 ));,())(,()('0000ηxfxyxfxy ==( 6 )( ) ( ) ( ));(')(,)(,')(,)''(" xyxyxyfxyxxfxyxfyy ⋅∂∂+∂∂===Tương tự y’” y(3)(x0) chuỗi ( 5 ).Đã CM được rằng:tổng Sn(x) của n số hạng đầu của ( 5 ) nghiệm xấp xỉ của ( 1 ) , ( 2 ); n càng lớn độ chính xác càng cao.0xx − đủ bé, chuỗi ( 5 ) nghiệm của ( 1 ), ( 2 )Với( ) ( ));,(,,)("0000ηηηxfxyfxxfxy ⋅∂∂+∂∂=( 7 ) Ví dụ 1. Tìm nghiệm xấp xỉ của:;'yxyy+=( a ) với điều kiện ban đầu: y(1) = 2; ( b )Sử dụng chuỗi Taylo; x0 = 1; y(x0) = η = 2.;32212)1(' =+=y;)()()()(22yxyxyxyxyxyyyxyxyy+−′=+′+−′+=′+=′′;274)21(2321)1(2−=+−⋅=′′y;)1(812)1(272)1(322)(32⋅⋅⋅+−+−−−+= xxxxyTính y(x) tại x =1,1: 1,1 – 1 =0,1 bỏ qua các số hạng cuối: ;06584,2)1,0(812)1,0(2721,0322)1,1(32≈+−⋅+=y Ví dụ 2. Tìm nghiệm gần đúng của phương trình vi phân:- x0 = 0; y0 = 1; y’(0) = 2.0 – 1 + 12 = 0.y’ = 2x – 1 + y2; ( a )với điều kiện ban đầu: y(0) = 1.( b )- Đạo hàm ( a ):;20.1.22)0(=+=′′y;22 yyy′+=′′( c )- Đạo hàm ( c ):;222yyyy′′+′=′′′;42.1.20.2)0(=+=′′′y- Tính tiếp:;84.1.22.0.626)4(=+=′′′+′′′=yyyyy-;31321)(432⋅⋅⋅++++=xxxxyNhận xét: - Phương pháp Taylo cho nghiệm xấp xỉ dưới dạng chuỗi.⋅⋅⋅+−+⋅⋅⋅+−+−+=kkxxkxyxxxyxxxyxyxy )(!)()(!2)(")(!1)(')()(00)(200000( 5 ) 2. Phương pháp Ơ le.- Là phương pháp số;- Xác định từng giá trị của y(x) theo giá trị cụ thể của xbảng các giá trị x và y(x) tương ứng.Nội dung: - Chia [x0, X] n đoạn bằng các nút xi cách đều.xi = x0 + ih; i = 0, 1, 2, . . ., n;;)(0nxXh−=xiLưới sai phân trên [x0, X]xi – nút của lưới; h - bước của lưới: h = const; - y(x) nghiệm đúng của (1), (2)- Mục đích: tìm giá trị gần đúng của y(x) chỉ tại các nút xi, không phải tại mọi[ ].,0Xxx∈Thành lập công thức tính:- y(xi) – giá trị đúng của y(x) tại xi;- ui – giá trị gần đúng tính được của y(xi);- Giả sử đã biết ui, cần tính ui+1 tại xi+1.y’ = f(x, y);Xxx ≤≤0y(x0) = η ; - Khai triển Taylo tại xi; h đủ nhỏ bỏ qua các số hạng cuối.);)(()()(11 iiiiixxxyxyxy −′+=++;)(1hxxii=−+( );)(,)(iiixyxfxy =′( );)(,.)()(1 iiiixyxfhxyxy +=+- Điều kiện ban đầu u0 = η( );,.0001uxfhuu +=( );,.1112uxfhuu+=. . . . . . . . . . . . . . . . . ( );,.1 iiiiuxfhuu +=+);)(()()(iiixxxyxyxy −′+=( 8 )biết ui-( );,.1 iiiiuxfhuu +=+( 9 )Nhận xét:- Đơn giản, không phải giải p/trình nào, thuận tiện lập trình giải trên máy tính - Độ chính xác không cao.(8 a) - Đánh giá sai số: Sau khi tính được u tại xi với bước h: u(xi,h)tính u(xi, h/2) nghiệm sai số :Các bước tính: Cho;(y’ = f(x, y ;0Xxx ≤≤y(x0) = η ;- Ấn định số khoảng chia n;- Tính h = (x – x0)/n ;- Tính xi = x0 + ih;- Đặt u0 = η- Tính ui+1 = ui + h.f(xi,ui) với i = 0, 1, 2, . . ., n ;- Đặt u(xi, h) = ui; thay h = h/2 tính lại;- Đặt u(xi,h/2) = ui; u(xi, h/2) ~ y(xi)- Sai số:;2,),()(2,−≈−hxuhxuxyhxuiiii;2,),()(2,−≈−hxuhxuxyhxuiiii(10) - Đánh giá sai số: Sau khi tính được u tại xi với bước h: u(xi,h)tính u(xi, h/2) nghiệm sai số :Các bước tính: Cho;(y’ = f(x, y ;0Xxx ≤≤y(x0) = η ;- Ấn định số khoảng chia n;- Tính h = (x – x0)/n ;- Tính xi = x0 + ih;- Đặt u0 = η- Tính ui+1 = ui + h.f(xi,ui) với i = 0, 1, 2, . . ., n ;- Đặt u(xi, h) = ui; thay h = h/2 tính lại;- Đặt u(xi,h/2) = ui; u(xi, h/2) ~ y(xi)- Sai số:;2,),()(2,−≈−hxuhxuxyhxuiiii;2,),()(2,−≈−hxuhxuxyhxuiiii(10)Quy ước viết 0(hk): Đại lượng φ(h) phụ thuộc h và 0 khih 0. Nếu tồn tại một hằng số dương M1 không phụ thuộc h sao cho0;)(1>≤khMhkϕthì viết φ(h) = 0(hk) φ(h) là một vô cùng bé cỡ 0(hk).viết sai số của công thức Ơle: ei = ui – y(xi) = 0(h). 3. Phương pháp hình thang.Phương pháp Ơle có độ chính xác không cao.Thay (9)[ ];),(),(2*111 +++++=iiiiiiuxfuxfhuu(11)u*i+1 trong (11) được tính theo công thức Ơle:Đã chứng minh được phương pháp này có dộ chính xác cấp 2:;)1(1)(1ε≤−−++kikiuuĐể tính nghiệm (11) chính xác hơn khi đã biết ui, có thể dùng phép lặp đơn:Quá trình lặp dừng lại ở bước k khiε – sai số cho phép.).(0;)(2hxyuii=−);,()0(1iiiiuxhfuu +=+[ ];),(),(2)1(11)(1−+++++=kiiiiikiuxfuxfhuu(12)(13)( );,.*1 iiiiuxfhuu +=+ [...]... f ( xi , ui , vi ) + f ( xi +1 , ui*+1 , vi* +1 ) ; 2 h vi +1 = vi + g ( xi , ui , vi ) + g ( xi +1 , ui*+1 , vi* +1 ) ; 2 ] ui*+1 = ui + h f ( xi , ui , vi ) ; vi* +1 = vi + h.g ( xi , ui , vi ); Để nâng cao độ chính xác của nghiệm, khi đã biết ui, vi, dùng phương pháp lặp để tính ui+1, vi+ 1 tương tự như đã biết 0) ui(+1 = ui + hf ( xi , ui , vi ); h (k ) k− k− ui +1 = ui + f ( xi , ui , vi ) + f ( xi... ui(+1 1) , vi( +1 1) ) ; 2 [ ] ( 23 ) Dừng quá trình tính khi k) k− ui(+1 − ui(+1 1) < ε ; ε - sai số cho phép Đối với vi+ 1 cũng tính tương tự 4 Phương pháp Runge-Kutta Đặt u0 = η1 ; v0 = η2 ; Biết ui, tính ui+1; biết vi, tính vi+ 1 theo công thức: 1 ui +1 = ui + (k1 + 2k 2 + 2k3 + k 4 ); 6 1 vi +1 = vi + (l1 + 2l2 + 2l3 + l4 ); 6 với k1 = h f ( xi , ui , vi ); k 2 = h f ( xi + 0,5h , ui + 0,5k1 , vi + 0,5l1... - 0,44 z g ( x, y , z ) = − − y x (d) Dùng công thức Ơle, chọn h = 0,1 yi +1 = yi + hf ( xi , yi , zi ) = yi + ∆yi ; zi +1 = zi + hg ( xi , yi , zi ) = zi + ∆zi ; Lập bảng tính: ∆yi = hzi ; z ∆zi = −h + y ; x zi Δyi = h.zi zi gi = − − yi xi Δzi=h.gi -0 ,33 -0 ,296 -0 ,260 -0 ,222 -0 ,033 -0 ,030 -0 ,026 -0 ,022 i xi yi 0 1 2 3 4 5 1,0 1,1 1,2 1,3 1,4 1,5 0,77 0,726 0,679 0,629 -0 ,44 -0 ,473 -0 ,503 -0 ,529...4 Phương pháp Runge-Kutta Xét phương pháp Runge – Kutta cấp 4 Đặt u0 = η; 1 ui +1 = ui + (k1 + 2k 2 + 2k3 + k 4 ); 6 trong đó k1 = h f ( xi , ui ); k 2 = h f ( xi + 0,5h , ui + 0,5k1 ); k3 = h f ( xi + 0,5h , ui + 0,5k 2 ); k 4 = h f ( xi + h , ui + k3 ) (14) (15) Nhận xét: - Không cần giải phương trình; - Thuận lợi để lập trình trên máy tính; - Độ chính xác cao hơn Đã chứng minh được phương pháp R-K... 0,5k 2 , vi + 0,5l2 ); k 4 = h f ( xi + h , ui + k3 , vi + l3 ) ( 24 ) ( 25 ) ( 26 ) l1 = h.g ( xi , ui , vi ); l2 = h.g ( xi + 0,5h , ui + 0,5k1 , vi + 0,5l1 ); l3 = h.g ( xi + 0,5h , ui + 0,5k 2 , vi + 0,5l2 ); l4 = h.g ( xi + h , ui + k3 , vi + l3 ) IV Bài toán Côsi với phương trình vi phân cấp cao Bài toán Cho khoảng [x0, X], tìm hàm số y = y(x) xác định trên [x0, X] và thoả mãn phương trình vi phân:... bằng cách đạo hàm hệ phương trình ( 18 ) 2 Phương pháp Ơle Chia khoảng [x0, X] thành n đoạn con đều nhau bởi các nút X − x0 xi = x0 + ih; h = ; n Ký hiệu giá trị gần đúng của y(x) là u; Ký hiệu giá trị gần đúng của z(x) là v; ui +1 = ui + h f ( xi , ui , vi ) vi +1 = vi + h.g ( xi , ui , vi ) ( 21 ) u0 = η1; v0 = η2 Biết u0, v0, tính được u1, v1, biết ui, vi, ui+1, vi+ 1 3 Phương pháp hình thang Tương... ( xi ) = 0(h 4 ); Ví dụ Tìm nghiệm của phương trình 2x y′ = y − trong khoảng 0 ≤ x ≤ 1 với y(0) = 1 y ( x0 = 0; X = 1 ) - ể so sánh, giải với ph /pháp Ơle, ph/ pháp hình thang, R-K và tính nghiệm đúng - Nghiệm đúng của phương trình trên là: y = 2 x + 1 - Tính với h = 0,2 xi 0,0 0,2 0,4 0,6 0,8 1,0 Ơle 1, 1,2 1,37333 1,53150 1,68108 1,82695 Nhận xét Hình thang R-K Nghiệm đúng 1, 1,18667 1,34832 1,49372... z’ = y” = f (x, y, y’) = f(x, y, z) hệ hai phương trình cấp 1: z’ = f(x, y, z) y’ = z z(x0) = η1 ; y(x0) = η0 Sau khi hạ cấp hệ phương trình vi phân cấp 1 một trong các phương pháp đã biết để giải ( 31 ) dùng Ví dụ Giải p/trình vi phân cấp 2 sau bằng p /pháp Ơle: với điều kiện Giải y′ y′′ + + y = 0; x y(1) = 0,77; Đặt y’ = z; (a) (b) 1 ≤ x ≤ 1,5 (a) y’(1) = - 0,44 (b) y” = z’ ; z z′ = − − y x y ′ =... , y(n-1)) ( 27 ) với điều kiện y(x0) = y1,0; y’(x0) = y2,0; , y(n-1)(x0) = yn,0 ( 28 ) Cách giải Đưa về hệ p/t vi phân cấp 1 bằng cách đặt: y1 = y, y2 = y’, , yn = y(n-1) y’1 = y2 y’2 = y3 hệ ph/trình: y’n-1 = yn y’n = f(x, y1, y2, , yn) và với điều kiện y1(x0) = y1,0; y2(x0) = y2,0; , y n(x0) = yn,0 Xét phương trình vi phân cấp 2: Tìm hàm y = y(x) xác định trên [x0, X] thoả mãn phương trình:... h.zi zi gi = − − yi xi Δzi=h.gi -0 ,33 -0 ,296 -0 ,260 -0 ,222 -0 ,033 -0 ,030 -0 ,026 -0 ,022 i xi yi 0 1 2 3 4 5 1,0 1,1 1,2 1,3 1,4 1,5 0,77 0,726 0,679 0,629 -0 ,44 -0 ,473 -0 ,503 -0 ,529 -0 ,044 -0 ,047 -0 ,050 -0 ,053 0,576 0,521 -0 ,551 -0 ,055 . h.ziiiiiyxzg−−=Δzi=h.gi0123451,01,11,21,31,41,50,770,7260,6790,6290,57 6-0 ,4 4-0 ,47 3-0 ,50 3-0 ,52 9-0 ,04 4-0 ,04 7-0 ,05 0-0 ,05 3-0 ,3 3-0 ,29 6-0 ,26 0-0 ,03 3-0 ,03 0-0 ,026 . = η ;- Ấn định số khoảng chia n ;- Tính h = (x – x0)/n ;- Tính xi = x0 + ih ;- Đặt u0 = - Tính ui+1 = ui + h.f(xi,ui) với i = 0, 1, 2, . . ., n ;- Đặt