YOMEDIA
ADSENSE
Chương 6: Giải gần đúng phương trình vi phân
419
lượt xem 55
download
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.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Chương 6: Giải gần đúng phương trình vi phân
- 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.
- 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 .
- 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.
- 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
- 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.
- 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.
- - 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.
- - Đá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
- - Đá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
- 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)
- 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 );
- 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.
- 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.
- 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;
- 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
- 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 ).
- 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
- 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.
- 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:
- 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
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn