intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 6: Giải gần đúng phương trình vi phân

Chia sẻ: Le Van Truyen | Ngày: | Loại File: PPT | Số trang:20

419
lượt xem
55
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Chương 6: Giải gần đúng phương trình vi phân

  1. Chương 6 GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN I. 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. 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) 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 ụ 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.
  2. 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); x0 ≤ x ≤ X (1) y(x0) = η ; (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: y’ + p(x)y’ +q(x,y) = f(x); a ≤ x ≤ b (3) với điều kiện y(a) = α; y(b) = β (4) Trong nhiều trường hợp giải gần đúng .
  3. II. Giải bài toán Côsi. x0 ≤ x ≤ X 1. Phương pháp chuỗi Taylo. y’ = f(x, y); y(x0) = η ; Khai triển nghiệm y(x) tại x = x0: y ( k ) ( x0 ) y ' ( x0 ) y" ( x0 ) ( x − x0 ) 2 + ⋅ ⋅ ⋅ + ( x − x0 ) k + ⋅ ⋅ ⋅ ( 5 ) y ( x) = y ( x0 ) + ( x − x0 ) + 1! 2! k! y ' ( x0 ) = f ( x0 , y ( x0 )) = f ( x0 ,η ); (6) ∂f ∂f y" = ( y ' )' = f ( x, y ( x) ) ' = ( x, y ( x) ) + ( x, y ( x) ) ⋅ y ' ( x); ∂x ∂y ∂f ∂f y" ( x0 ) = ( x0 ,η ) + ( x0 ,η ) ⋅ f ( x0 ,η ); (7) ∂x ∂y Tương tự chuỗi ( 5 ). y’” y(3)(x0) Đã CM được rằng: Với x − x0 đủ bé, chuỗi ( 5 ) nghiệm của ( 1 ), ( 2 ) 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.
  4. Ví dụ 1. Tìm nghiệm xấp xỉ của: y y' = ; ( a ) với điều kiện ban đầu: y(1) = 2; (b) x+ y Sử dụng chuỗi Taylo; x0 = 1; y(x0) = η = 2. 2 2 y ' (1) = =; 1+ 2 3 ′  y  ( x + y ) y′ − y ( x + y )′ xy′ − yx y′′ =  x+ y = = ;  2 2 ( x + y) ( x + y)   2 1⋅ − 2 4 y′′(1) = 3 2 = − ; (1 + 2) 27 2 2 2 y ( x) = 2 + ( x − 1) − ( x − 1) + ( x − 1)3 + ⋅ ⋅ ⋅; 2 3 27 81 Tính y(x) tại x =1,1: 1,1 – 1 =0,1 b ỏ qua các s ố h ạng cu ối: 2 2 2 y (1,1) = 2 + ⋅ 0,1 − (0,1) + (0,1)3 ≈ 2,06584; 2 3 27 81
  5. Ví dụ 2. Tìm nghiệm gần đúng của phương trình vi phân: y’ = 2x – 1 + y2; (a) với điều kiện ban đầu: y(0) = 1. (b) - x0 = 0; y0 = 1; y’(0) = 2.0 – 1 + 12 = 0. - Đạo hàm ( a ): y′′ = 2 + 2 yy′; (c) y′′(0) = 2 + 2.1.0 = 2; y′′′ = 2 y′2 + 2 yy′′; - Đạo hàm ( c ): y′′′(0) = 2.0 + 2.1.2 = 4; y ( 4 ) = 6 y′y′′ + 2 yy′′′ = 6.0.2 + 2.1.4 = 8; - Tính tiếp: y ( k ) ( x0 ) y ' ( x0 ) y" ( x0 ) ( x − x0 ) 2 + ⋅ ⋅ ⋅ + ( x − x0 ) k + ⋅ ⋅ ⋅ ( 5 ) y ( x) = y ( x0 ) + ( x − x0 ) + 1! 2! 2 k! 14 y ( x) = 1 + x 2 + x 3 + x + ⋅ ⋅ ⋅; - 3 3 Nhận xét: - Phương pháp Taylo cho nghiệm xấp xỉ dưới dạng chuỗi.
  6. x0 ≤ x ≤ X y’ = f(x, y); 2. Phương pháp Ơ le. y(x0) = η ; - Là phương pháp số; - Xác định từng giá trị của y(x) theo giá trị cụ th ể của x bả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. ( X − x0 ) xi = x0 + ih; i = 0, 1, 2, . . ., n; h = ; n Lưới sai phân trên [x0, X] xi 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 x i, [ ] không phải tại mọi x ∈ x0 , X . 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.
  7. - Khai triển Taylo tại xi; h đủ nhỏ bỏ qua các số hạng cuối. y ( x) = y ( xi ) + y′( xi )( x − xi ); (8) y ( xi +1 ) = y ( xi ) + y′( xi )( xi +1 − xi ); ( xi +1 − xi ) = h; y′( xi ) = f ( xi , y ( xi ) ) ; y ( xi +1 ) = y ( xi ) + h. f ( xi , y ( xi ) ) ; (8 a) ui +1 = ui + h. f ( xi , ui ) ; - biết ui (9) - Điều kiện ban đầu u0 = η u1 = u0 + h. f ( x0 , u0 ) ; u2 = u1 + h. f ( x1 , u1 ) ; ................. ui +1 = ui + h. f ( xi , ui ) ; 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. - Đánh giá sai số: Sau khi tính được u tại xi với bước h: u(xi,h) nghiệm sai s ố : tính u(xi, h/2)  h  h u  xi ,  − y ( xi ) ≈ u ( xi , h) − u  xi , ; (10)  2  2 );Cho y’ = f(x, y x0 ≤ x ≤ X ; Các bước tính: y(x0) = η ; - Ấn định số khoảng chia n; - Tính h = (x – x0)/n ; - Đặt u0 = η - Tính xi = x0 + ih; - 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)  h  h u  xi ,  − y ( xi ) ≈ u ( xi , h) − u  xi , ; - Sai số:  2  2
  9. - Đánh giá sai số: Sau khi tính được u tại xi với bước h: u(xi,h) nghiệm sai s ố : tính u(xi, h/2)  h  h u xi ,  − y ( xi ) ≈ u ( xi , h) − u  xi , ; (10)  2  2 Quy ước viết 0(hk): Đại lượng φ(h) phụ thuộc h và 0 khi 0. Nếu tồn tại một hằng số dương M1 không phụ thuộc h ϕ (h) ≤ M 1h k ; k > 0 thì viết φ(h) = 0(hk) h sao cho φ(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). Các bước tính: );Cho y’ = f(x, y x0 ≤ x ≤ X ; 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ố:  h   h u  xi ,  − y ( xi ) ≈ u ( xi , h) − u  xi , ;  2  2
  10. 3. Phương pháp hình thang. Phương pháp Ơle có độ chính xác không cao. Thay (9) [ ] h ui +1 = ui + f ( xi , ui ) + f ( xi +1 , ui*+1 ) ; (11) 2 u*i+1 trong (11) được tính theo công thức Ơle: ui*+1 = ui + h. f ( xi , ui ) ; Đã chứng minh được phương pháp này có dộ chính xác cấp 2: ui − y ( xi ) ; = 0(h 2 ). Để tính nghiệm (11) chính xác hơn khi đã biết u i, có thể dùng phép lặp đơn: ui(+1 = ui + hf ( xi , ui ); 0) [ ] (12) h k− ui +1 = ui + f ( xi , ui ) + f ( xi +1 , ui(+1 1) ) ; (k ) 2 Quá trình lặp dừng lại ở bước k khi k− ui(+1 − ui(+1 1) ≤ ε ; k) ε – sai số cho phép. (13)
  11. 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 ); (14) 6 trong đó k1 = h. f ( xi , ui ); k 2 = h. f ( xi + 0,5h , ui + 0,5k1 ); (15) k3 = h. f ( xi + 0,5h , ui + 0,5k 2 ); k 4 = h. f ( xi + h , ui + k3 ). 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 có độ chính xác cấp 4: ui − y ( xi ) = 0(h 4 );
  12. Ví dụ. Tìm nghiệm của phương trình 2x trong khoảng 0 ≤ x ≤ 1 với y(0) = 1. y′ = y − 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 Nghiệm đúng Ơle Hình thang R-K 1, 1, 1, 0,0 1, 1,1832160 1,2 1,1832292 0,2 1,18667 1,3416407 1,37333 1,3416668 0,4 1,34832 1,4832397 1,53150 1,4832847 0,6 1,49372 1,6124516 1,68108 1,6124665 0,8 1,62888 1,7320508 1,82695 1,7320713 1,0 1,75438 Nhận xét.
  13. III. Bài toán Côsi đối với hệ phương trình vi phân cấp 1. Phát biểu bài toán: Cho khoảng [x0, X], tìm các hàm một biến y1(x), y2(x),…, yn(x) xác định trên khoảng [x0, X] và thoả mãn hệ phương trình: ′ y1 = f1 ( x, y1, y2 ,. . ., yn ) ′ y2 = f 2 ( x, y1 , y2 ,. . ., yn ) ( 16 ) ................. ′ yn = f n ( x, y1, y2 ,. . ., yn ) ′ ′ ′ y1 ( x0 ) = y1,0 ; y2 ( x0 ) = y2,0 ; . . ., yn ( x0 ) = yn,0 ; ( 17 ) với trong đó f1, f2, . . ., fn – các hàm đã biết. Để đơn giản, xét hệ hai phương trình: Cho khoảng [x0, X], tìm 2 hàm số y = y(x) và z = z(x) xác định trên [x0, X] và thoả mãn các phương trình: y’ = f(x,y,z); z’ = g(x, y, z); ( 18 ) y(x0) = η1 ; z(x0) = η2; ( 19 ) η1, η2 là những số thực cho trước; trong đó f(x, y, z) và g(x, y, z) là hai hàm số cho trước.
  14. 1. Phương pháp Taylo. Chuỗi Taylo của nghiệm: ( x − x0 ) 2 y ( x) = y ( x0 ) + y′( x0 )( x − x0 ) + y′′( x0 ) + ⋅⋅⋅ 22 ( 20 ) ( x − x0 ) z ( x) = z ( x0 ) + z ′( x0 )( x − x0 ) + z ′′( x0 ) + ⋅⋅⋅ 2 y ( x0 ) = η1; z ( x0 ) = η 2 ; với y′( x0 ) = f ( x0 , y ( x0 ), z ( x0 ) ) = f ( x0 ,η1,η 2 ) z ′( x0 ) = g ( x0 , y ( x0 ), z ( x0 ) ) = g ( x0 ,η1 ,η 2 ) Các đạo hàm từ cấp hai trở lên tại x0 của các hàm f(x) và g(x) được xác định 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;
  15. ui +1 = ui + h. f ( xi , ui , vi ) ( 21 ) vi +1 = vi + h.g ( xi , ui , vi ) ( 22 ) 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 tự ( 11 ) [ ] h ui +1 = ui + 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 u i, vi, dùng phương pháp lặp để tính ui+1, vi+1 tương tự như đã biết. ui(+1 = ui + hf ( xi , ui , vi ); 0) [ ] ( 23 ) h k− k− ui +1 = ui + f ( xi , ui , vi ) + f ( xi +1 , ui(+1 1) , vi(+1 1) ) ; (k ) 2
  16. k− ui(+1 − ui(+1 1) < ε ; k) Dừng quá trình tính khi ε - 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 ; ( 24 ) 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 ( 25 ) 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 ); k3 = h. f ( xi + 0,5h , ui + 0,5k 2 , vi + 0,5l2 ); ( 26 ) k 4 = h. f ( xi + h , ui + k3 , vi + l3 ).
  17. l1 = h.g ( xi , ui , vi ); và 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: y(n)(x) = f(x, y, y’, 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) y1(x0) = y1,0; y2(x0) = y2,0; . . ., y n(x0) = yn,0 với điều kiện
  18. 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: ( 29 ) ’)y” = f(x, y, y điều kiện ban đầu y(x0) = η0; y’(x0) = η1. ( 30 ) Đặt: y’ = z z’ = y” = f (x, y, y’) = f(x, y, z) hệ hai phương trình cấp 1: ( 29 ) z’ = f(x, y, z) ( 31 ) y’ = z với z(x0) = η1 ; y(x0) = η0 . Sau khi hạ cấp hệ phương trình vi phân c ấp 1 dùng một trong các phương pháp đã biết để giải.
  19. Ví dụ. Giải p/trình vi phân cấp 2 sau bằng p/pháp Ơle: y′ y′′ + + y = 0; 1 ≤ x ≤ 1,5 (a) x (b) y(1) = 0,77; y’(1) = - 0,44. với điều kiện Giải. Đặt y’ = z; y” = z’ ; z y ′ = z; z′ = − − y (c) (a) x y(1) = 0,77; z(1) = - 0,44. (d) (b) z f ( x, y , z ) = z ; g ( x, y , z ) = − − y x Dùng công thức Ơle, chọn h = 0,1. yi +1 = yi + hf ( xi , yi , zi ) = yi + ∆yi ; ∆yi = hzi ; z  zi +1 = zi + hg ( xi , yi , zi ) = zi + ∆zi ; ∆zi = −h + y ; x  Lập bảng tính:
  20. zi gi = − − yi yi zi i xi Δzi=h.gi Δyi = h.zi xi -0,044 -0,033 0 -0,44 -0,33 0,77 1,0 1 -0,047 -0,030 0,726 -0,473 1,1 -0,296 2 0,679 1,2 -0,503 -0,050 -0,260 -0,026 -0,529 -0,053 -0,222 0,629 3 -0,022 1,3 4 0,576 1,4 -0,551 -0,055 5 1,5 0,521
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2