, University of Le Quy Don Technical
Published on
Luận văn thạc sĩ Toán học Mô tả cách giải phương trình vi phân, hệ phương trình vi phân bằng phương pháp số. Có ứng dụng MATLAB để giải
1. ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC VŨ HUY BÌNH PHƯƠNG PHÁP RUNGE-KUTTA GIẢI GẦN ĐÚNG HỆ PHƯƠNG TRÌNH VI PHÂN ĐẠI SỐ LUẬN VĂN THẠC SĨ TOÁN HỌC Chuyên ngành : TOÁN ỨNG DỤNG Mã số : 60 .46 .01 .12 NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN MINH THÁI NGUYÊN – 2012 1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2. Công trình được hoàn thành tại Trường Đại học Khoa học – Đại học Thái Nguyên Người hướng dẫn khoa học: TS. Nguyễn Văn Minh Phản biên 1: TS. Nguyễn Anh Tuấn Phản biên 2: TS. Nguyễn Thị Thu Thủy Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn họp tại: Trường Đại học Khoa học – Đại học Thái Nguyên Ngày 18 tháng 11 năm 2012 Có thể tìm hiểu luận văn tại Thư viện Đại học Thái Nguyên 2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
4. 2 2.2.2 Công thức lấy vi ngược (BDF) cho các hệ phương trình vi phân đại số . . . . . . . . . . . . . . . . . . 25 2.3 Phương pháp Runge-Kutta cho hệ phương trình vi phân đại số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.1 Phương pháp Runge-Kutta cơ bản . . . . . . . . . . 26 2.3.2 Các phương pháp Runge-Kutta ẩn ([8],[9]) . . . . . . 28 2.3.3 Tóm tắt các kết quả hội tụ . . . . . . . . . . . . . . 29 2.3.4 Các phương pháp nhiễu đơn . . . . . . . . . . . . . 31 2.3.5 Các phương pháp bán tường minh . . . . . . . . . . 34 2.4 Sự hội tụ đối với các bài toán chỉ số 1 . . . . . . . . . . . . 35 2.4.1 Giải phương trình vi phân thường tương đương . . . 35 2.4.2 Phương pháp tiếp cận trực tiếp . . . . . . . . . . . . 36 2.4.3 Sự hội tụ . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4.4 Khai triển tiệm cận của sai số toàn cục . . . . . . . 38 2.5 Phương pháp Runge-Kutta cho hệ phương trình vi phân đại số một cách tiếp cận mới . . . . . . . . . . . . . . . . . . . 40 2.5.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . 40 2.5.2 Cách tiếp cận mới . . . . . . . . . . . . . . . . . . 43 2.5.3 Sự hội tụ đối với các hệ phương trình vi phân đại số có thể chuyển sang hệ số hằng . . . . . . . . . . . . 48 2.5.4 Sự co . . . . . . . . . . . . . . . . . . . . . . . . . 51 3 ỨNG DỤNG PHƯƠNG PHÁP RUNGE – KUTTA GIẢI GẦN ĐÚNG HỆ PHƯƠNG TRÌNH VI PHÂN ĐẠI SỐ 52 3.1 Ví dụ giải gần đúng phương trình vi phân thường (ODE) . 52 3.2 Ví dụ giải gần đúng hệ phương trình vi phân đại số (DAE) cài đặt bằng Matlab . . . . . . . . . . . . . . . . . . . . . . 55 Kết luận 57 Tài liệu tham khảo 58 4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
5. 3 MỞ ĐẦU Hệ phương trình vi phân đại số là lớp phương trình có ý nghĩa ứng dụng thực tế cao, xuất hiện trong lý thuyết điều khiển, mô phỏng mạch điện, phản ứng hóa học những vấn đề trong điều khiển đòi hỏi chúng ta phải quan tâm giải quyết những hệ phương trình dạng: A(t)x + B(t)x + f(t) = 0 trong đó A, B là những ma trận hằng hoặc ma trận hàm liên tục cấp n, detA(t) = 0, gọi là hệ phương trình vi phân đại số (chú ý rằng nếu det A(t) = 0 thì đưa về dạng: x = −A−1 B(x) là phương trình vi phân thường). Lý thuyết phương trình vi phân thường đã được Newton-Leibnitz xây dựng vào cuối thế kỷ 17 đã được nghiên cứu, phát triển mở rộng theo nhiều hướng và thu được nhiều kết quả hoàn chỉnh. Hệ phương trình vi phân đại số đóng vai trò rất quan trọng trong các lĩnh vực như: Toán hoc, kĩ thuật, vật lí, kinh tế và một số ngành khác. Nội dung của luận văn nhằm giải quyết hai vấn đề chính: Vấn đề 1: Những khái niệm cơ bản của hệ phương trình vi phân đại số. Vấn đề 2: Đưa ra phương pháp Runge-Kutta giải gần đúng phương trình vi phân đại số và ứng dụng của phương pháp này giải bài toán cụ thể. Luận văn này được chia làm ba chương. Chương 1: Các khái niệm cơ bản về hệ phương trình vi phân đại số. Nội dung chương 1 trình bày tóm tắt một số kết quả đã biết của phương trình vi phân thường, một số khái niệm về hệ phương trình vi phân đại số: Chỉ số, nghiệm, phân loại, bài toán cơ bản dẫn đến hệ phương trình vi phân đại số. Chương 2: Phương pháp Runge-Kutta giải gần đúng hệ phương trình vi phân đại số. Nội dung chương 2 nhắc lại phương pháp số để giải gần đúng phương trình vi phân thường, phương pháp số cho hệ phương trình vi phân đại số trong đó có phương pháp Runge-Kutta cho hệ phương trình vi phân đại số, cách tiếp cận mới của phương pháp Runge-Kutta cho hệ phương trình vi phân đại số. 5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
6. 4 Chương 3: Thực hiện với ví dụ cụ thể. Luận văn này được hoàn thành dưới sự hướng dẫn khoa học của TS Nguyễn Văn Minh. Tác giả xin được tỏ lòng cảm ơn chân thành nhất tới thầy về sự giúp đỡ nhiệt tình từ khi xây dựng đề cương, viết và hoàn thành luận văn. Tác giả cũng xin chân thành cảm ơn các thầy cô giáo phản biện đã đọc và góp ý để tác giả hoàn thiện luận văn của mình. Tác giả xin trân trọng cảm ơn tới Ban Giám hiệu, các thầy cô giáo trường Đại học Khoa học- Đại hoc Thái Nguyên. Những thầy cô đã tận tình dạy bảo cho tác giả trong suốt thời gian học. Đã trang bị cho tác giả và tập thể lớp những kiến thức và tạo mọi điều kiện cho lớp học tập tại trường. Dù đã rất cố gắng, nhưng chắc chắn nội dung được trình bày trong luận văn không tránh khỏi thiếu sót nhất định, tác giả rất mong nhận được sự góp ý của các thầy cô giáo và các bạn. Thái Nguyên, ngày 20 tháng 09 năm 2012 Tác giả Vũ Huy Bình 6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
7. 5 Chương 1 CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ PHƯƠNG TRÌNH VI PHÂN ĐẠI SỐ 1.1 Một số khái niệm về phương trình vi phân thường cấp 1 1.1.1 Vài mô hình đơn giản Sự rơi tự do: Xét một vật có khối lượng m được thả rơi tự do trong khí quyển gần mặt đất. Theo định luật II Newton, chuyển động của vật thể đó có thể mô tả bởi phương trình F = ma (1.1.1) Trong đó F là hợp lực tác động lên vật và a là gia tốc chuyển động. Hợp lực F có thể giả thiết chỉ bao gồm lực hấp dẫn (tỷ lệ với khối lượng của vật và hướng xuống) và lực cản (tỷ lệ với vận tốc chuyển động và hướng lên trên). Ngoài ra do gia tốc chuyển động a = dv dt nên (1.1.1) có thể viết dưới dạng m dv dt = mg − αv. (1.1.2) Trong đó g ≈ 9, 8m s2 là gia tốc trọng trường, còn α là hệ số cản. Vậy vận tốc v của vật rơi tự do thỏa mãn phương trình (1.1.2) với sự xuất hiện của đạo hàm của v. Những phương trình như vậy gọi là phương trình vi phân. 7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
8. 6 Dung dịch hóa học: Giả sử tại thời điểm ban đầu t = t0 một thùng chứa x0 kg muối hòa tan trong 1000 lít nước. Ta cho chảy vào thùng một loại nước muối nồng độ a (kg/lít) với lưu lượng r (lít/phút) và khuấy đều. Đồng thời cho hốn hợp đó chảy ra khỏi thùng cũng với tốc độ như trên. Gọi x = x(t) là lượng muối trong thùng tại thời điểm bất kỳ. Rõ ràng tỷ lệ thay đổi lượng muối trong thùng dx dt bằng hiệu của tỷ lệ muối chảy vào (kg/phút) trừ đi tỷ lệ muối chảy ra tại thời điểm đang xét rx 1000 . (kg/phút). Vậy ta có phương trình vi phân dx dt = ar − rx 1000 (1.1.3) với dữ kiện ban đầu x(t0) = x0 1.1.2 Một số khái niệm Phương trình vi phân là phương trình có dạng F(x, y, y , y , …, y(n) ) = 0. (1.1.4) Trong đó y = y(x) là ẩn hàm cần tìm và nhất thiết phải có sự tham gia của đạo hàm (đến cấp nào đó) của ẩn. Trong trường hợp ẩn hàm cần tìm là hàm nhiều biến (xuất hiện các đạo hàm riêng) thì phương trình vi phân còn gọi là phương trình đạo hàm riêng. Để phân biệt người ta thường gọi phương trình với ẩn hàm là hàm một biến là phương trình vi phân thường là đối tượng chính được nói trong mục này. Thông thường ta xét các phương trình với ẩn hàm là hàm số một biến thực y = y(x) xác định trên khoảng mở I ⊂ R, khi đó hàm F trong đẳng thức trên xác định trong một tập mở G của R × Rn+1 . Trong trường hợp ẩn hàm cần tìm là véc tơ hàm (hàm với giá trị véc tơ) y(x) = (y1(x), …, ym(x))T ∈ Rm , F là một ánh xạ nhận giá trị trong Rm và (1.1.4) được hiểu là hệ phương trình vi phân. Ta nói một phương trình vi phân có cấp n nếu n là cấp lớn nhất của đạo hàm ẩn xuất hiện trong phương trình. Phương trình vi phân thường cấp I có dạng tổng quát F(x, y, y ) = 0 trong đó F(x, y, y ) được giả thiết là liên tục với các đạo hàm riêng của nó trên miền G ⊂ R3 . Với một số giả thiết thích hợp, phương trình vi phân 8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
9. 7 thường cấp I có thể viết được dưới dạng sau (gọi là dạng giải ra đối với đạo hàm) y = f(x, y) (1.1.5) với f liên tục trong một miền D ⊂ R2 . Ví dụ: Các phương trình ey + ey cosx = 1 (y )2 − 2xy = ln x ∂2 u ∂x2 + ∂2 u ∂y2 = 0 lần lượt là các phương trình vi phân thường cấp I, cấp III và phương trình đạo hàm riêng cấp II. 1.1.3 Bài toán Cauchy Nghiệm của một phương trình vi phân nói chung phụ thuộc vào một hay nhiều hằng số tùy ý nào đó. Để xác định một nghiệm cụ thể, ta cần thêm một hay vài dữ kiện nào đó về nghiệm (tùy theo cấp của phương trình vi phân). Chẳng hạn, y = x3 3 + C là nghiệm tổng quát của phương trình y = x2 . Dễ thấy y = x3 3 + 1 là nghiệm (duy nhất) thỏa mãn y(0) = 1. Ta xét bài toán sau đây đặt ra đối với phương trình F(x, y, y ) = 0, gọi là bài toán Cauchy (hay bài toán giá trị ban đầu): Bài toán y(x) thỏa y = f(x, y) y(x0) = y0 (1.1.6) trong đó (x0, y0) ∈ D được gọi là điều kiện ban đầu. Chú ý: Không phải lúc nào bài toán Cauchy cũng có nghiệm, và khi có nghiệm cũng không nhất thiết có duy nhất nghiệm. Chẳng hạn phương trình y = x2 , y(0) = 0 có duy nhất một nghiệm là y = x3 3 phương trình xy = y, y(0) = 1 không có nghiệm nào, phương trình y = y1/3 , y(0) = 0 có ít nhất hai nghiệm là y ≡ 0 và y2 = 8 27 x3 . 9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
13. 11 của C cho bởi (1.1.7) khi (x0, y0) chạy khắp D Khi đó hệ thức ϕ(x, y) = C được gọi là tích phân tổng quát của phương trình y = f(x, y). Định nghĩa 1.1.4. Nghiệm của phương trình (1.1.5) mà tại mỗi điểm (x0, y0) của nó tính duy nhất nghiệm của bài toán Cauchy được thỏa mãn được gọi là nghiệm riêng. Ngược lại nghiệm của phương trình (1.1.5) mà tại mỗi điểm của nó tính chất duy nhất nghiệm của bài toán Cauchy bị vi phạm được gọi là nghiệm kỳ dị. Nhận xét: Từ định nghĩa nghiệm tổng quát, ta suy ra rằng với mỗi điều kiện ban đầu (x0, y0) ∈ D, ta luôn tìm được C0 = ϕ(x0, y0) là nghiệm của bài toán Cauchy tương ứng. Nói cách khác, bằng cách chọn các giá trị thích hợp cho hằng số, ta có thể thu được các nghiệm riêng tùy ý của phương trình, không kể các nghiệm kỳ dị. Giải (hay còn gọi là tích phân) một phương trình vi phân là tìm tất cả các nghiệm (biểu thức nghiệm tổng quát) của phương trình đó hoặc nghiệm của bài toán Cauchy với điều kiện ban đầu cho trước. 1.2 Một số khái niệm về hệ phương trình vi phân đại số Định nghĩa 1.2.1. Hệ phương trình vi phân tuyến tính: A(t)x (t) + B(t)x(t) = q(t) (1.2.8) trong đó: A, B ∈ C(I, L(Rn )), q liên tục trên I, detA(t) = 0 hay A(t) suy biến (không khả nghịch) với mọi t ∈ I, là hệ phương trình vi phân đại số. Chú ý rằng nếu A(t) không suy biến thì (1.2.8) là phương trình vi phân thường x (t) = −A−1 (t)B(t)x + A−1 f(t), t ∈ I Ví dụ 1.2.2. Về hệ phương trình vi phân đại số Trong số nhiều phương pháp khác nhau, phương pháp mô hình hóa với các phương trình vi phân đại số đóng một vai trò quan trọng đối với các hệ cơ học có ràng buộc, các mạch điện và phản ứng hóa học. Trong phần này, chúng ta sẽ đưa ra ví dụ về mô hình hóa phương trình vi phân đại số đối với hệ cơ học có ràng buộc để thấy được các phương trình vi phân 13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
14. 12 đại số nảy sinh từ lĩnh vực này như thế nào. Chúng ta sẽ chỉ ra các đặc điểm quan trọng của phương trình vi phân đại số, phân biệt chúng với các phương trình vi phân thường. Xét con lắc toán học trong hình 1.1. Đặt m là khối lượng của con lắc Hình 1.1: Con lắc toán học được gắn vào một thanh chiều dài l. Để mô tả con lắc trong hệ tọa độ Descarter, chúng ta viết ra thế năng U(x, y) = mgh = mgl − mgy (1.2.9) Ở đây (x(t), y(t)) là vị trí của quả nặng tại thời điểm t. Gia tốc trọng trường của trái đất là g, chiều cao của con lắc là h. Nếu chúng ta kí hiệu đạo hàm của x và y là ˙x và ˙y thì động năng là T( ˙x, ˙y) = 1 2 m( ˙x2 + ˙y2 ) (1.2.10) Số hạng ˙x2 + ˙y2 mô tả vận tốc của con lắc. Ràng buộc sẽ là 0 = g(x, y) = x2 + y2 − l2 (1.2.11) (1.2.9) (1.2.11) được sử dụng để tạo thành hàm Lagrange L(q, ˙q) = T( ˙x, ˙y) − U(x, y) − λg(x, y) Ở đây q kí hiệu cho vector q = (x, y, λ) Lưu ý rằng λ đóng vai trò như một nhân tử Lagrange. Bây giờ, các phương trình chuyển động được cho bởi phương trình Euler d dt ( ∂L ∂ ˙qk ) − ∂L ∂qk = 0, k = 1, 2, 3 Chúng ta được hệ m¨x + 2λx = 0, m¨y − mg + 2λy = 0, g(x, y) = 0 (1.2.12) 14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
15. 13 Bằng cách đưa vào các biến bổ sung u = ˙x và v = ˙y, chúng ta thấy rằng (1.2.12) là một hệ phương trình vi phân đại số. Khi giải(1.2.12) như một bài toán giá trị ban đầu, chúng ta thấy rằng mỗi giá trị ban đầu (x(t0), y(t0)) = (x0, y0) phải thỏa mãn các ràng buộc (1.2.11) (khởi tạo phù hợp). Không có điều kiện ban đầu nào có thể được đặt ra cho λ, khi λ được ngầm xác định bởi (1.2.12). Tất nhiên, con lắc có thể được mô hình hóa bởi phương trình vi phân thường bậc hai ¨ϕ = − g l sin ϕ Khi góc ϕ được sử dụng như biến phụ thuộc. Tuy nhiên đối với các bài toán thực tế, phát biểu theo hệ phương trình vi phân thường không rõ ràng, nhiều khi là không thể. Ví dụ 1.2.3. Hệ x1 − ˙x1 + 1 = 0 ˙x1x2 + 2 = 0 (1.2.13) là một hệ phương trình vi phân đại số để thấy được điều này chúng ta xác định Jacobian ∂F ∂ ˙x của F (t, x, ˙x) = x1 − ˙x1 + 1 = 0 ˙x1x2 + 2 = 0 với ˙x = ˙x1 ˙x2 sao cho ∂F ∂ ˙x = ∂F1 ∂ ˙x1 ∂F1 ∂ ˙x2 ∂F2 ∂ ˙x1 ∂F2 ∂ ˙x2 = −1 0 x2 0 chúng ta thấy rằng det ∂F ∂ ˙x = 0 Vậy Jacobian là ma trận suy biến bất kể giá trị của x2 Nhận xét: Trong ví dụ này đạo hàm ˙x2 không xuất hiện chúng ta tìm ˙x1 từ phương trình thứ nhất x1 − ˙x1 + 1 = 0 thu được kết quả ˙x1 = x1 + 1 thay ˙x1 vào phương trình thứ hai ˙x1x2 + 2 = 0 để viết ra một hệ phương trình vi phân đại số ˙x1 = x1 + 1 (x1 + 1) x2 + 2 = 0 Trong hệ phương trình vi phân đại số này: Phương trình ˙x1 = x1 + 1 là phương trình vi phân. Phương trình (x1 + 1) x2 + 2 = 0 là phương trình đại số. 15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
16. 14 1.3 Phân loại hệ phương trình vi phân đại số ([4]) Thông thường các hệ phương trình vi phân đại số có cấu trúc toán học nó tùy thuộc vào phạm vi ứng dụng nhất định do đó chúng ta có các hệ phương trình vi phân đại số phi tuyến, hệ phương trình vi phân đại số tuyến tính…Thực sự kiến thức về cấu trúc toán học của phương trình vi phân đại số giúp chúng ta dễ dàng chọn lựa một giải thuật cụ thể cho từng mô hình với phần mềm thích hợp. 1.3.1 Các hệ phương trình vi phân đại số phi tuyến Trong hệ phương trình vi phân đại số F(t, x(t), x (t)) = 0 nếu hàm F là phi tuyến so với bất kỳ một trong các biến t, x hoặc x thì nó được gọi là một hệ phương trình vi phân đại số phi tuyến. 1.3.2 Các hệ phương trình vi phân đại số tuyến tính Một hệ phương trình vi phân đại số có dạng A(t)x (t) + B(t)x(t) = q(t) Ở đây A(t) và B(t) là ma trận n×n tuyến tính nếu A(t) ≡ A và B(t) ≡ B thì chúng ta có hệ phương trình vi phân đại số tuyến tính. 1.3.3 Các hệ phương trình vi phân đại số bán tường minh Một hệ phương trình vi phân đại số có dạng: x = f(t, x, z) 0 = g(t, x, z) Chú ý rằng đạo hàm của biến z không xuất hiện trong hệ phương trình vi phân đại số, biến z như thế được gọi là biến đại số trong khi đó biến x được gọi là biến vi phân. Phương trình 0 = g(t, x, z) được gọi là phương trình đại số hoặc một ràng buộc. 1.3.4 Hệ phương trình vi phân đại số ẩn hoàn toàn Hệ phương trình vi phân đại số F(t, x, x ) = 0 thuộc dạng ẩn hoàn toàn F(t, x, x ) = Ax + Bx + b(t) là hệ phương trình vi phân đại số ẩn hoàn toàn. Phương trình x1 − x1 + 1 = 0 x1x2 + 2 = 0 16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
17. 15 Là hệ phương trình vi phân đại số ẩn hoàn toàn. Bất kỳ một hệ phương trình vi phân đại số ẩn hoàn toàn nào cũng có thể được chuyển thành hệ phương trình vi phân đại số bán tường minh. 1.3.5 Ví dụ Chuyển đổi hệ phương trình vi phân đại số ẩn hoàn toàn thành hệ phương trình vi phân đại số bán tường minh. Bài giải. Xét hệ phương trình vi phân đại số tuyến tính không biến đổi theo thời gian tuyến tính Ax + Bx + B(t) = 0 có λA + B không suy biến đối với λ vô hướng nào đó thế thì sẽ có các ma trận n × n không suy biến G và H sao cho. GAH = Im 0 0 N và GBH = J 0 0 In−m Ở đây Im là ma trận đơn vị m hàng n cột m ≤ n lũy linh. N là một ma trận (n − m) × (n − m) tức là có một số nguyên dương p sao cho Np = 0, J ∈ Rm×m và In−m là ma trận đơn vị. Bây giờ chúng ta có thể viết Ax + Bx + b(t) = 0 đối với công thức (GAH)(H−1 )x + (GBH)(H−1 )x + Gb(t) = 0 Dùng phân tích khối để viết Im 0 0 N (H−1 )x + J 0 0 In−m (H−1 )x + Gb(t) = 0 Dùng phép đổi biến u(t) = H−1 x(t) để viết Im 0 0 N u + J 0 0 In−m u + Gb(t) = 0 Phân tích véc tơ u(t) như là u(t) = u1(t) u2(t) với u1(t) ∈ Rn và u2(t) ∈ Rn−m và một cách tương ứng Gb(t) = b1(t) b2(t) sao cho: u1(t) + Ju1(t) + b1(t) = 0 Nu1(t) + u2(t) + b2(t) = 0 Sử dụng tính chất lũy linh của ma trận N tức là nhân tập hợp phương trình thứ 2 với Np−1 để nhận được u1(t) + Ju1(t) + b1(t) = 0 Np u1(t) + Np−1 u2(t) + Np−1 b2(t) = 0 Từ đây suy ra rằng Np u1(t) = 0 u1(t) = −Ju1(t) − b1(t) 17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
18. 16 0 = Np−1 u2(t) − Np−1 b2(t) Do đó chúng ta đã chuyển hệ phương trình vi phân đại số ẩn hoàn toàn Ax + Bx + b(t) = 0 thành dạng bán tường minh. Tương tự dùng một số phép biến đổi toán học bất kỳ hệ phương trình vi phân đại số ẩn hoàn toàn phi tuyến nào cũng có thể chuyển được thành hệ bán tường minh. 1.4 Chỉ số của hệ phương trình vi phân đại số ([2],[11]) Người ta có thể phân lớp các hệ phương trình vi phân đại số nhờ khái niệm chỉ số của hệ phương trình vi phân loại này nói cách khác thì chỉ số là số đo độ lệch giữa phương trình vi phân đại số và phương trình vi phân thường đo độ phức tạp của phương trình vi phân đại số khái niệm chỉ số được đưa ra để nghiên cứu phương trình vi phân đại số. Ta đề cập đến khái niệm chỉ số của hệ phương trình vi phân đại số. Xét hệ phương trình vi phân dạng: F(t, x(t), x (t)) = 0 (1.4.14) trong đó: x : I −→ Rn , I = (a; +∞) ⊂ D, F : I × D × R → Rn (t, x, y) → F(t, x, y) D là tập mở trong Rn, F ∈ C(I × D × Rn, Rn), F , F y ∈ C(I × D × Rn, L(Rn)) KerF x (t, x, x ) = 0 với mọi (t, x, x ) ∈ I × D × R Giả thiết KerFx(t, x, x ) không phụ thuộc vào x và x tức là: KerF x (t, x, x ) = N(t) với mọi (t, x, x ) ∈ I × D × Rn . Định nghĩa 1.4.1. Không gian hạch N(t) được gọi là trơn trên I nếu có ma trận khả vi liên tục Q ∈ C1 (I, L(Rn )) sao cho (Q(t))2 = Q(t), ImQ(t) = N(t) với mọi t ∈ I Khi đó Q(t) là phép chiếu lên N(t). Đặt P(t) = In − Q(t) suy ra P ∈ C1 (I, L(Rn )) 18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
21. 19 Định nghĩa 1.4.4. Hệ phương trình vi phân đại số f(t, x(t), x (t)) = 0 Có chỉ số là µ nếu µ là số lần lấy vi phân tối thiểu f(t, x(t), x (t)) = 0, df(t, x(t), x (t)) dt = 0, …, dµ f(t, x(t), x (t)) dtµ = 0 Sao cho các phương trình trên cho phép rút ra một hệ phương trình vi phân thường x (t) = ϕ(x(t), t). Định nghĩa 1.4.5. Số bước lấy vi phân tối thiểu cần thiết để chuyển phương trình vi phân đại số thành một phương trình vi phân thường được gọi là chỉ số vi phân của phương trình vi phân đại số. Ví dụ 1.4.6. Xét hệ phương trình vi phân đại số y = f(y, z) 0 = g(y, z) gz(đạo hàm riêng ∂g ∂z ) là khả nghịch bị chặn trong lân cận của nghiệm (1.4.17) Lấy vi phân g(y, z) = 0 ta có 0 = dg(y, z) dt = gy(y, z)y + gz(y, z)z Nếu gz(y, z) không suy biến trong lân cận của nghiệm thì hệ phương trình đã cho được chuyển thành y = f(y, z) z = −gz(y, z)−1 gy(y, z)y = −gz(y, z)−1 gy(y, z)f(y, z) Vậy chỉ 1 bước vi phân là cần thiết để mô tả z vậy hệ đã cho có chỉ số 1. Ví dụ 1.4.7. Xét hệ phương trình vi phân đại số ˙x1 = x1 + 1 (x1 + 1) x2 + 2 = 0 Lấy vi phân g(x1, x2) = 0 ta có dg(x1, x2) dt = d dt [0] suy ra d dt [(x1 + 1)x2 + 2] = 0 suy ra ˙x1x2 + (x1 + 1) ˙x2 = 0 suy ra ˙x2 = − ˙x1x2 (x1 + 1) = − (x1 + 1)x2 (x1 + 1) = −x2. Chỉ một bước vi phân là cần thiết để mô tả ˙x2 vậy hệ đã cho có chỉ số 1. 21Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
22. 20 Ví dụ 1.4.8. Xét hệ y = f(y, z) 0 = g(y) gyfz là khả nghịch bị chặn trong lân cận của nghiệm (1.4.18) Được nghiên cứu bằng cách tương tự 0 = g(y) cho ta 0 = dg(y) dt = gy(y)y = gy(y)f(y, z) = h(y, z) So sánh với ví dụ (1.4.6) chúng ta thấy rằng y = f(y, z) 0 = h(y, z) Là hệ chỉ số 1 nếu hz(y, z) vẫn không suy biến trong một lân cận của nghiệm nếu điều kiện này đúng thì hệ y = f(y, z) 0 = g(y, z) Là chỉ số 2 vì hai lần lấy vi phân tạo ra: y = f(y, z) z = −hz(y, z)−1 hy(y, z)f(y, z) = −(gy(y)fz(y, z))−1 (gy(y)(f(y, z), f(y, z))+(gy(y)(f(y, z)f(y, z)). 22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
23. 21 Chương 2 PHƯƠNG PHÁP RUNGE-KUTTA GIẢI GẦN ĐÚNG HỆ PHƯƠNG TRÌNH VI PHÂN ĐẠI SỐ 2.1 Phương pháp số giải gần đúng phương trình vi phân thường ([1]) 2.1.1 Phương pháp Runge – Kutta Bài toán Cauchy hay còn gọi là bài toán giá trị ban đầu: Tìm y(x) thỏa mãn điều kiện: y = f(x, y) x0 ≤ x ≤ ¯x y(x0) = y0 (2.1.1) Đặt y1 = y0 + ∆y0, trong đó ∆y0 = pr1k1(h) + … + prrkr(h) ki(h) = hf(ξi, ζi); ξi = x0 + αih; α1 = 0 ; i = 1, 2, …, r ζi = y0 + βi1k1(h) + … + βi,i−1ki−1(h) Gọi ϕr(h) := y(x0 + h) − y1 = y(x0 + h) − y(x0) − ∆y0 Nếu ϕ (s+1) r (0) = 0 thì ϕr(h) = r i=0 ϕi r(0) i! hi + O(hs+1 ) Runge-Kutta chọn các hệ số αi, βij, prj từ điều kiện ϕi r(0) = 0 i = 0, 1, …, s; ϕ (s+1) r (0) = 0 với s càng lớn càng tốt. Như vậy ϕi r(0) = y (i) 0 − pr1k (i) 1 (0) + … + prrk (i) r (0) = 0(i = 0, 1, …, s), hay ta có hệ phương trình phi tuyến để xác định các hệ số αi, βij, prj ta cần giải hệ phương trình phi tuyến 23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
24. 22 pr1k (i) 1 (0) + pr1k (i) 1 (0) + … + prrk (i) r (0) = y (i) 0 i = 0, 1, …, s (2.1.2) 2.1.2 Phương pháp Euler Ta xét trường hợp riêng của phương pháp Runge-Kutta khi r = 1. Ta có ∆y0 = p11k1(h); k1(h) = hf(x0, y0) y1 = y0 + ∆y0 = y0 + p11k1(h) = y0 + p11hf(x0, y0) mà ϕ1(h) := y(x0 + h) − y1 nên ϕ1(h) := y(x0 + h) − y0 − p11hf(x0, y0); ϕ1(0) = 0; ϕ1(0) = y0 − p11f(x0, y0) = f(x0, y0) − p11f(x0, y0) = (1 − p11)f(x0, y0). Để ϕ1(0) = 0 với mọi hàm f, ta phải có p11 = 1. Nói chung ϕ1 (0) = y0 = 0 vậy ∆y0 = p11k1(h) = hf(x0, y0) Ta nhận được công thức Euler: y1 = y0 + hf(x0, y0) (2.1.3) Nói chung yn+1 = yn + hf(xn, yn), xn = x0 + nh Sai số địa phương: Xét sai số mắc phải trên một bước với giả thiết bước trước đó tính đúng. Tại bước thứ i ta xét hàm ¯y(x) là nghiệm của bài toán ¯y = f(x, ¯y(x)) ¯y(xi)=yi Nghiệm đúng của bài toán này ¯y(xi+1) = ¯y(xi) + hf(xi, ¯y(xi)) 1! + o(h2 ) Bởi ¯y(xi) = yi và yi+1 = yi + hf(xi, yi) nên ¯y(xi+1) = yi + hf(xi, yi) + o(h2 ) = yi+1 + o(h2 ) Từ đó suy ra ¯y(xi+1) − yi+1 = o(h2 ) 2.1.3 Phương pháp Euler cải tiến Trong phương pháp Runge -Kutta (RK), ta xét trường hợp r = 2 ∆y0 = p21k1(h) + p22k2(h) Phương trình ( 2.1.2) trong trường hợp này có dạng: y (l) 0 = p21k (l) 1 (0) + p22k (l) 2 (0) (l = 1, 2 ) (2.1.4) 24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
25. 23 Vì k1(h) = hf(x0, y0) nên k1(0) = 0; k1(0) = f(x0, y0) và k1 (0) = 0 tiếp theo k2(h) = hf(ξ2, ζ2) trong đó ξ2 = x0 + α2h; ζ2 = y0 + β21k1(h) ta có k2(h) = h f(ξ2, ζ2)+h ∂f ∂x α2 + ∂f ∂y β21k1(h) ≡ f(ξ2, ζ2)+h ∂f ∂x α2 + ∂f ∂y β21k1(h) Dế thấy k2(0) = 0; k2(0) = f(x0, y0). Tiếp theo k2 (h) = ∂f ∂x α2 + ∂f ∂y β21k1(h) + ∂f ∂x α2 + ∂f ∂y β21k1(h) +h ∂f ∂x α2 + ∂f ∂y β21k1(h) nên k2 (0) = 2 ∂f ∂x α2 + ∂f ∂y β21k1(h) h=0 = 2(α2 ∂f0 ∂x + β21f0 ∂f0 ∂y ). Ở đây chúng ta dùng ký hiệu f0 := f(x0, y0); ∂f0 ∂x , ∂f0 ∂y là đạo hàm ∂f ∂x , ∂f ∂y tương ứng tính tại điểm (x0, y0). Từ hệ thức (2.1.4) ta suy ra y0 = f0 = p21f0 + p22f0 y0 = p21k1 (0) + p22k2 (0) = 2p22(α2 ∂f0 ∂x + β21f0 ∂f0 ∂y ) (2.1.5) Từ phương trình đầu của (2.1.5) suy ra p21 + p22 = 1. Biến đổi phương trình thứ hai của hệ (2.1.5)ta được (1 − 2α2p22) ∂f0 ∂x + (1 − 2p22β21)f0 ∂f0 ∂y = 0 (2.1.6) Vì công thức RK2 (ứng với r = 2) đúng cho mọi hàm f nên để (2.1.6) nghiệm đúng, cần 1 − 2α2p22 = 1 − 2p22β21 = 0. Như vậy α2 = β21 = 1; p21 = p22 = 1 2 và ∆y0 = 1 2h {f(x0, y0) + f(x0 + h, y0 + hf(x0, y0))} Ta nhận được công thức RK2, còn gọi là công thức Euler cải tiến. ¯y0 := y0 + hf(x0, y0) y1 = y0 + 1 2h [f(x0, y0) + f(x1, ¯y0)] (2.1.7) 2.1.4 Công thức RK4 Khi r = 4, ϕ4(h) = y(x0 + h) − y(x0) − 4 i=1 p4iki(h). Dễ thấy ϕ4(0) = 0; ϕ4(0) = y0 − 4 i=1 p4iki(0) = (1 − 4 i=1 p4i)f0 = 0. 25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
26. 24 Từ đây suy ra 4 i=1 p4i = 1 Ngoài ra ta còn đòi hỏi ϕ4 (0) = ϕ4 (0) = ϕ (4) 4 (0) = 0 Kết quả là có 11 phương trình đối với 13 ẩn α2, α3, α4, β21, β31, β32, β41, β42, β43, p4i (i = 1, 4). Như vậy sẽ có một họ các công thức RK4. Công thức thông dụng nhất có dạng: ∆y0 = 1 6(k1 + 2k2 + 2k3 + k4) k1 = hf(x0, y0) k2 = hf(x0 + h/2, y0 + k1/2) k3 = hf(x0 + h/2, y0 + k2/2) k4 = hf(x0 + h, y0 + k3) (2.1.8) 2.2 Phương pháp số cho các hệ phương trình vi phân đại số 2.2.1 Nhận xét Các hệ phương trình vi phân đại số thường rất phức tạp và khó giải về mặt giải tích vì khi giải các hệ phương trình vi phân đại số cần phải chú ý đến hai vấn đề quan trọng. 1. Nghiệm của các hệ phương trình vi phân đại số chỉ số thấp sẽ không là nghiệm của hệ phương trình vi phân đại số ban đầu. 2. Tìm các điều kiện ban đầu thỏa mãn cả phần vi phân và phần đại số của một hệ phương trình vi phân đại số là một công việc khó khăn, được gọi là sự phù hợp của điều kiện ban đầu. Nên hệ phương trình vi phân đại số thường được giải bằng phương pháp số. Ý tưởng: Cố gắng chuyển hệ phương trình vi phân đại số thành một phương trình vi phân thường điều này có thể đạt được qua việc lấy đạo hàm lặp đi lặp lại các phương trình đại số g(t, x, z) = 0 theo thời gian t. Dùng các nguyên tắc toán học và phép đổi biến các hệ phương trình vi phân đại số ẩn hoàn toàn có thể được chuyển thành hệ phương trình vi phân đại số bán tường minh chú ý rằng trong các hệ phương trình vi phân đại số bán tường minh nếu ma trận Jacobian ∂g ∂z suy biến không khả nghịch thì hệ phương trình vi phân đại số là chỉ số cao, bởi vì nhiều ứng dụng có các mô hình là các hệ phương trình vi phân đại số bán tường minh. 26Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
27. 25 Trong hệ phương trình vi phân đại số ở trên nếu cả f và g không phụ thuộc tường minh vào thời gian t tức là f(t, x, z) = f(x, z) và g(t, x, z) = g(x, z) thì mô hình là một hệ phương trình vi phân đại số tự quản. Các phương pháp BDF (Backward Differentiation Formula) và phương pháp kết hợp là hai phương pháp được sử dụng phổ biến nhất để tìm nghiệm số của hệ phương trình vi phân đại số. 2.2.2 Công thức lấy vi ngược (BDF) cho các hệ phương trình vi phân đại số Xét hệ phương trình vi phân đại sô giá trị ban đầu ˙x = f(t, x, z) x(t0) = x0 0 = g(t, x, z) (2.2.9) Ý tưởng của BDF: Chọn bước thời gian h sao cho ti+1 = ti+h, i = 0, 1, 2… cho trước xi = x(ti) và zi = z(ti) xác định giá trị xi+1 = x(ti+1) bằng cách dùng các giá trị hoặc ngoại suy các giá trị xi, xi−1,…,xi−m+1 của các trường hợp ở thời điểm hiện tại hoặc thời điểm trước đó của x(t). Đồng thời tính toán zi+1 = z(ti+1). Có một đa thức bậc m duy nhất P nội suy m + 1 điểm (ti+1, xi+1), (ti, xi), (ti−1, xi−1), …, (ti+1−m, xi+1−m). Đa thức nội suy này có thể được viết là P(t) = m j=0 xi+1−jLj(t). Với đa thức Lagrange Lj(t) = m l=0,l=j t − ti+1−l ti+1−j − ti+1−l , j=0,1,…,m. Chúng ta thấy rằng P(ti+1−j) = xi+1−j , j = 0, 1…, m. Đặc biệt P(ti+1) = xi+1 vì thế ˙xi+1 = ˙P(ti+1) để thu được ˙P(ti+1) = f(ti+1, xi+1) (2.2.10) nhưng ˙P(ti+1) = m j=0 xi+1−jLj(ti+1) = xi+1L0(ti+1) + m j=1 xi+1−jLj(t) đặt biểu thức này vào (2.2.10) chúng ta thu được: xi+1 = − m j=1 xi+1−j Lj(ti+1) L0(ti+1) + 1 L0(ti+1) f(ti+1, xi+1). 27Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
29. 27 yn+1 tại xn+1 = xn + h thông qua công thức yn+1 = yn + h s i=1 biY ni (2.3.13) Ở đây Y ni được định nghĩa là Y ni = f (Yni) với các giai đoạn bên trong Yni là Yni = yn + h s j=1 aijY nj với i = 1,…,s (2.3.14) Ở đây aij, bi là các hệ số xác định phương pháp với s là số giai đoạn nếu aij = 0 khi i ≤ j thì chúng ta có thể tính các giai đoạn bên trong Yn1, …, Yns lần lượt cái này theo cái kia từ công thức (2.3.14) qua việc đánh giá các hàm tường minh các phương pháp như thế được gọi là phương pháp tường minh. Ngược lại (2.3.14) hình thành nên một hệ phi tuyến đối với các giai đoạn bên trong và phương pháp được gọi là ẩn ví dụ về các phương pháp Runge-Kutta chẳng hạn như Euler thuận và ngược, các phương pháp hình thang, các phương pháp bậc 4 cổ điển của Kutta có thể tìm thấy trong bất kỳ tài liệu nào về giải tích số. Mở rộng cho các bài toán vi phân đại số. Chúng ta thấy rằng công thức Y ni = f (Yni) ở trên có dạng tương tự như chính phương trình vi phân y = f(y) trong khi đó hệ thức (2.3.13) và (2.3.14) phụ thuộc vào các hệ số của phương pháp và kích thước bước h nhưng không phụ thuộc vào dạng đặc biệt của phương trình vi phân điều này có nghĩa là chúng ta có thể mở rộng phương pháp Runge-Kutta cho các phương trình vi phân đại số F(y , y) = 0 Bằng cách định nghĩa yn+1 như một hàm của hệ (2.3.13) và (2.3.14) và F(Y ni, Yni) = 0. (2.3.15) Sẽ nảy sinh một số câu hỏi chẳng hạn như hệ các phương trình (2.3.13),(2.3.14), (2.3.15) có nghiệm duy nhất hay không việc tính toán nó thì sẽ như thế nào nó bị ảnh hưởng như thế nào do nhiễu loạn. Các phương pháp Runge-Kutta tường minh không thích hợp trực tiếp cho cách tiếp cận (2.3.13),(2.3.14),(2.3.15) bởi vì đối với các phương trình vi phân đại số một số thành phần của Y ni phải được xác định từ hệ thức (2.3.14) chẳng hạn như xét hệ y = z, 0 = y đòi hỏi ma trận hệ số A = (aij) 29Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
30. 28 khả nghịch tuy nhiên dùng một phương pháp mở rộng khác có thể áp dụng các phương pháp Runge-Kutta tường minh cho các hệ chỉ số 1 và chỉ số 2 bán tường minh có dạng (1.4.17) và (1.4.18). 2.3.2 Các phương pháp Runge-Kutta ẩn ([8],[9]) Để mô tả phương pháp thì chúng ta phải đưa về công thức ci = s j=1 aij (i = 1, …, s) (2.3.16) và các điều kiện B(p) : s i=1 bick−1 i = 1 k với k=1,…,p (2.3.17) C(q) : s j=1 aijck−1 j = ck i k với k=1,…,q và với mọi i (2.3.18) D(r) : s i=1 bick−1 i aij = ck i k với k=1,…,r và với mọi j (2.3.19) Điều kiện B(p) có nghĩa là công thức cầu phương với các trọng số b1, …, bs và các nút c1, …, cs lấy tích phân đa thức chính xác đến bậc p − 1 trên khoảng [0, 1] và điều kiện C(q) có nghĩa là đa thức ít nhất là đến bậc q −1 được lấy tích phân chính xác trên khoảng [0, ci] với mọi i qua công thức cầu phương với các trọng số ai1, …, ais. Chúng ta sẽ xét các phương pháp cổ điển tiếp theo dựa trên cầu phương Gauss, Radau và Lobatto các hệ số của chúng được xây dựng duy nhất qua các điều kiện được liệt kê như sau Gauss: B(2s), C(s), D(s) Radau IA: B(2s − 1), C(s − 1), D(s), c1 = 0 Radau IIA: B(2s − 1), C(s), D(s − 1), cs = 1 Lobatto IIIA: B(2s − 2), C(s), D(s − 2), c1 = 0, cs = 1, Lobatto IIIC: B(2s−2), C(s−1), D(s−1), c1 = 0, cs = 1, bi = asi. Điều kiện bi = asi đối với mọi i có nghĩa là yn+1 = Yns và đây là một tính chất có lợi đối với phương pháp Lobatto IIIA (đáng chú ý là phương pháp hình thang). Hàng thứ nhất của ma trận A = (aij) đều bằng 0 vì vậy A không khả 30Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
32. 30 Bảng 2.1: Phương pháp Radau IIA bậc 1 và 3 Bảng 2.2: Phương pháp Radau IIA bậc 5 32Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
33. 31 Bảng 2.3: Bậc hội tụ (2.3) các đầu vào đối với bài toán chỉ số 1 được xác nhận trong phần (2.4) cần chú ý rằng bậc hội tụ cao thu được trong những bảng này cho thấy sự phức tạp trong tính toán đối với các bài toán chỉ số cao chẳng hạn như sự hội tụ của phép lặp Newton đối với hệ phi tuyến (2.3.13) đến (2.3.15). Chúng ta nhớ là bậc hội tụ là p nếu sai số tức là sự chênh lệch giữa nghiệm chính xác và nghiệm số bị chặn bởi một hằng số nhân hp đồng đều trên các khoảng có cận đối với kích thước bước đủ nhỏ h bảng (2.3) cho thấy rằng bậc hội tụ có thể khác nhau đối với các thành phần khác nhau của hệ. Bậc của thành phần y đối với bài toán chỉ số 1 (1.4.17) giống hệt như bậc đối với các phương trình vi phân thường (chỉ số 0). Bởi vì các phương pháp Runge-kutta bất biến dưới phép biến đổi của bài toán B(y)y = a(y) trong (1.4.18) bậc hội tụ đối với thành phần y của bài toán chỉ số 2 (1.4.18) cũng có thể thu được đối với nghiệm số của B(y)y = a(y) trong điều kiện B = S I 0 0 0 T. 2.3.4 Các phương pháp nhiễu đơn Một loạt các hệ phương trình vi phân đại số có chỉ số cao tùy ý nảy sinh trong các hệ nhiễu loạn suy biến: y = f(y, z) εz = g(y, z), 0 < ε 1 (2.3.22) 33Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
35. 33 Bảng 2.4: Độ lớn sai số đối với bài toán nhiễu loạn đơn đối với ε ≤ h đối với ε ≤ h yn − y(xn) = [∆y0]n + ε[∆y1]n + O(ε2 hq ) (2.3.30) zn − z(xn) = [∆z0]n + ε[∆z1]n + O(ε2 hq−1 ). (2.3.31) Ở đây [∆y0]n, [∆z0]n, [∆y1]n, [∆z1]n là các sai số toàn cục của phương pháp Runge-Kutta được áp dụng cho hệ vi phân đại số (2.3.26) đã ước lượng đúng một cách đồng đều đối với h ≤ h0 và xn = nh ≤ const Các sai số [∆y0]n, [∆z0]n thực sự là các sai số toàn cục của phương pháp Runge-Kutta áp dụng cho hệ chỉ số 1 (2.3.25) bởi vì hệ này không phụ thuộc vào y1 và z1 do đó bậc của sai số trong các thành phần y0, z0, y1, z1 tương ứng chính xác với 4 cột trong bảng (2.3) theo cùng một thứ tự Kết hợp định lý (2.3.1) và bảng (2.3) chúng ta thu được kết quả của bảng (2.4) Đối với bài toán nhiễu loạn đơn kỳ dị M(y)y = f(y, y ) − 1 ε2 (∂U ∂y )T (y) chúng ta có thể thu được khai triển ε2 của sai số trong thành phần y và z = y dưới dạng yn − y(xn) = [∆y0]n + O(ε2 hq−2 ) (2.3.32) zn − z(xn) = [∆z0]n + O(ε2 hq−2 ) (2.3.33) Ở đây [∆y0]n, [∆z0]n là các sai số của phương pháp Runge-Kutta áp dụng cho hệ chỉ số 3 y = z0 M(y0)z0 = f(y0, z0) − gT y (y0)λ0 0 = g(y0) 35Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
36. 34 ở đây k tuyến tính theo u. 2.3.5 Các phương pháp bán tường minh Các bài toán có dạng y = f(y, z) 0 = g(y, z) (2.3.34) Phương pháp Runge-Kutta tường minh có thể áp dụng như sau: Yni = yn + h i−1 j=1 aijf(Ynj, Znj), i = 1, …, s (2.3.35) 0 = g(Yni, Zni), i = 1, …, s (2.3.36) yn+1 = yn + h s i=1 bif(Yni, Zni), (2.3.37) 0 = g(yn+1, zn+1) (2.3.38) Chúng ta xét trường hợp hệ có chỉ số 1 (1.4.17) ở đây gz khả nghịch bắt đầu từ Yn1 = yn giá trị Zn1 có thể được tính từ (2.3.36) thế Zn1 vào (2.3.35) thì chúng ta sẽ tính được Yn2 trong một bước tường minh thế thì điều này sẽ cho chúng ta Zn2 từ công thức (2.3.36). Trong trường hợp này bậc hội tụ đối với cả hai thành phần giống nhau đối với các phương trình vi phân thường điều này được giải thích ở (2.4) Trong trường hợp hệ có chỉ số 2 (1.4.18) ở đây g không phụ thuộc vào z và gyfz khả nghịch các công thức ở trên vẫn còn có thể áp dụng được một lần nữa chúng ta bắt đầu với Yn1 = yn thế công thức (2.3.35) với i = 2 vào (2.3.36) cho phép tính toán Zn1 do đó Yn2 thu được từ bước tường minh (2.3.35) theo cách này chúng ta tiếp tục đến Zns và yn+1 nhưng chúng ta không thể xác định zn+1 để thu được một gần đúng của z(xn+1) thì việc xét các phương pháp với cs = 1 và chọn zn+1 = Zns (2.3.39) là điều hợp lý tuy nhiên đối với cả hai thành phần nói chung bậc nhỏ hơn nhiều đối với các phương trình vi phân thường một ngoại lệ được cho bởi sự mở rộng của phương pháp ngoại suy h2 tổng quát đối với phương pháp này bậc đầy đủ được giữ nguyên nếu f tuyến tính theo z. 36Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
37. 35 2.4 Sự hội tụ đối với các bài toán chỉ số 1 Chúng ta xét hệ phương trình vi phân đại số y = f(y, z) 0 = g(y, z). (2.4.40) Ở đây f và g là khả vi đầy đủ (2.4.40) là bài toán chỉ số 1 chúng ta giả sử rằng (gz(y, z))−1 ≤ M. (2.4.41) Trong lân cận không chính xác gz(y, z) ký hiệu đạo hàm của g theo z khi đó chúng ta giả sử rằng các giá trị ban đầu .y0, z0 phù hợp với (2.4.40) tức là g(y0, z0) = 0. 2.4.1 Giải phương trình vi phân thường tương đương Chú ý rằng phương trình (2.4.41) cho chúng ta biết rằng trong lân cận của nghiệm phương trình thứ 2 trong (2.4.40) về mặt hình thức có thể được chuyển thành z = G(y) qua định lý hàm ẩn vì thế (2.4.40) trở thành công thức y = f(y, G(y)) (2.4.42) Có thể áp dụng phương pháp Runge-Kutta (tường minh hoặc ẩn) cho (2.4.42) và xác định thành phần z qua công thức zn = G(yn) điều này tương đương với công thức yn+1 = yn + h s i=1 biY ni Yni = yn + h s i=1 aijY nj (2.4.43) ở đây Yni = f(Yni, Zni) 0 = g(Yni, Zni) (2.4.44) và zn+1 là 0 = g(yn+1, zn+1). (2.4.45) Trong trường hợp này tất cả các kết quả về bậc, sự hội tụ và tiệm cận mở rộng của phương pháp Runge-Kutta là đúng. 37Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
38. 36 2.4.2 Phương pháp tiếp cận trực tiếp Ta có (2.4.43) và (2.4.44) đúng nhưng ở đây (2.4.45) được thay thế bằng công thức zn+1 = zn + h s i=1 biZni Zni = zn + h s i=1 aijZnj (2.4.46) Hệ thức thứ 2 của (2.4.46) định nghĩa Zni duy nhất nếu ma trận Runge- Kutta A = (aij) khả nghịch và điều đó được giả sử kể từ bây giờ. Nếu các trọng số của phương pháp Runge-Kutta thỏa mãn công thức bi = asi với i=1,…,s (2.4.47) Thì zn+1 = Zns và (2.4.45) đúng vì thế hai cách tiếp cận là tương đương. Vậy xem xét phương pháp trực tiếp Phương pháp Runge-Kutta áp dụng cho bài toán nhiễu loạn suy biến y = f(y, z) εz = g(y, z) (2.4.48) mang lại một nghiệm số phụ thuộc vào ε trong đó ε → 0 trở thành một nghiệm số được cho bởi phương pháp tiếp cận trực tiếp. Hệ có dạng Bu = a(u) với B = S I 0 0 0 T (2.4.49) Ở đây S và T là các ma trận hằng khả nghich có thể được chuyển thành (2.4.40) bằng cách nhân với S−1 và dùng pháp biến đối Tu = (y, z)T cách áp dụng trực tiếp áp dụng cho hệ được chuyển đổi tương đương với việc áp dụng phương pháp Runge-Kutta cho (2.4.49) theo công thức (2.3.13) và (2.3.14): un+1 = un + h s i=1 biUni Uni = un + h s j=1 aijUnj và BUni = a(Uni). Việc phân tích B và đổi biến không cần được tính rõ ràng trong trường hợp này. 38Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
40. 38 z(xn+1) = z(xn) + h s i=1 biz (xn + cih) + O(hp+1 ) (2.4.53) z(xn + cih) = z(xn) + h s j=1 aijz (xn + cjh) + O(hq+1 ). (2.4.54) Tính z (xn + cih) từ (2.4.54) và thế nó vào trong (2.4.53) được. z(xn+1) = R(∞)z(xn) + bT A−1 ˆZn + O(hq+1 ) + O(hp+1 ) (2.4.55) ở đây ˆZn = (z(xn + c1h), …, z(xn + csh))T Dùng ký hiệu ∆zn = zn − z(xn), ∆Zn = Zn − ˆZn và trừ (2.4.55) cho (2.4.52) thu được ∆zn+1 = R(∞)∆zn + bT A−1 ∆Zn + O(hq+1 ) + O(hp+1 ). (2.4.56) Giá trị y trong (2.4.43), (2.4.44), (2.4.46) và các giá trị y của phương pháp Runge-Kutta áp dụng trong (2.4.42) là giống nhau vì thế chúng ta đã có Yni −y(xn +cih) = O(hq+1 )+O(hp ). Chúng ta có thể rút ra Zni từ (2.4.44) để thu được Zni = G(Yni) = G(y(xn + cih)) + O(hq+1 ) + O(hp ) = z(xn + cih) + O(hq+1 ) + O(hp ). (2.4.57) Bởi vì p ≥ q + 1 với ρ = R(∞) ( 3.14) bây giờ có dạng ∆zn+1 = ρ∆zn + δn+1; δn+1 = O(hq+1 ) (2.4.58) Lặp lại phép thế công thức này cho chúng ta ∆zn = ρn ∆z0 + n i=1 ρn−i δi (2.4.59) Bây giờ các phát biểu của định lý được suy ra đối với ρ = −1 bởi vì ∆z0 = 0 kết quả đối với ρ = −1 thu được bằng cách xét khai triển tiệm cận của sai số toàn cục xem định lý (2.4.2) bên dưới. 2.4.4 Khai triển tiệm cận của sai số toàn cục Bởi vì thành phần y của nghiệm số chỉ là kết quả số đối với (2.4.42) các kết quả cổ điển đối với các phương trình vi phân thường cho ta sự tồn tại 40Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
42. 40 hd(x1) + … + hd(xn) = xn 0 d(x)dx + he1(xn) + … + hN eN (xn) + O(hN+1 ) (2.4.61) với d(x) = dm(x) của (2.4.60) ta xét trường hợp R(∞) = −1 một lần nữa quay lại (2.4.59), (2.4.60) và đối với d(x) = dm(x) chúng ta nhóm lại các số hạng là công thức Dn = (d(xn) − d(xn−1)) + (d(xn−2) − d(xn−3)) + … + (d(x2) − d(x1)) Đối với n chẵn và Dn = (d(xn)−d(xn−1))+(d(xn−2)−d(xn−3))+…+(d(x3)−d(x2))+d(x1) Đối với n lẻ chúng ta khai triển mỗi số hạng d(xi)−d(xi−1) trong Dn thành chuỗi Taylor cộng và sử dụng hệ thức loại (2.4.61) chúng ta thu được một khai triển Dn = 1 2(d(xn)−(−1)n d(x0))+h(c1(xn)−(−1)n (c1(x0))+…+hN (cN (xN )− (−1)n (cN (x0)) + O(hN+1 ) Nhóm lại các số hạng có lũy thừa h giống nhau chúng ta thu được kết quả. 2.5 Phương pháp Runge-Kutta cho hệ phương trình vi phân đại số một cách tiếp cận mới 2.5.1 Giới thiệu Chúng ta xét các hệ có hệ số biến đổi A(t)x (t) + B(t)x(t) = f(t) (2.5.62) Với A(t) suy biến. Nếu chúng ta ký hiệu Ani = A(tn+cih), Bni = B(tn+cih) và fni = f(tn+cih) việc tìm nghiệm của (2.5.62) bằng cách sử dụng phương pháp Runge-Kutta ẩn được đề xuất trong [13] là xn+1 = xn + h s i=1 biXni (2.5.63) 42Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
45. 43 2.5.2 Cách tiếp cận mới Để đưa ra cách tiếp cận mới cho các hệ phương trình vi phân đại số, chúng ta nhớ lại rằng nguồn gốc của công thức Runge-Kutta là công thức cầu phương chúng ta xét các giá trị c = cj đối với [i = j, ci ∈ [0, 1] và các công thức cầu phương 1 0 ϕ(t)dt ≈ s i=1 biϕ(ci), 1 0 ϕ(t)dt ≈ s j=1 aijϕ(cj) (2.5.68) Chúng ta có thể lấy tích phân y (t) = f(t, y(t)) trong khoảng [tn, tn + h] và [tn, tn + cih] sử dụng (2.5.68) và thay thế y(tn + h),y(tn) và y(tn + cih) bằng yn+1, yn và Yni một cách tương ứng, để thu được phương pháp Runge- Kutta thông thường. Chúng ta sẽ thực hiện theo phương pháp cầu phương được sử dụng để rút ra các phương pháp Runge-Kutta cho các phương trình vi phân thường để nhận được các phương pháp số mới cho các hệ phương trình vi phân đại số. Vì vậy chúng ta lấy tích phân hệ phương trình vi phân đại số (2.5.62) trong khoảng [tn, tn + h] và [tn, tn + cih] chúng ta lấy tích phân từng phần, và sử dụng công thức cầu phương (2.5.68) do đó phương pháp được đưa ra An+1xn+1 − Anxn + h s i=1 bi(Bni − Ani)Xni = h s i=1 bifni (2.5.69) với Xni là nghiệm của AniXni − Anxn + h s j=1 aij(Bnj − Anj)Xnj = h s i=1 aijfnj, i = 1, …, s (2.5.70) Biểu thức An+1xn+1 là giá trị gần đúng của A(tn+1)x(tn+1) tùy thuộc vào hệ phương trình vi phân đại số và phương pháp, giá trị này thực sự nằm trong ImA(tn+1). Nếu chúng ta ký hiệu DA = diag(An1, …, Ans) tương tự DB−A , X = (Xt n1 , …, Xt ns) và F(Tn) = (f(tn1)t , …, f(tns)t )t dưới ma trận hệ (2.5.70) có thể được viết là [DA + h(A ⊗ I)DB − A ]X = e ⊗ Anxn + h(A ⊗ I)F(Tn) (2.5.71) Định lý 2.5.2. Nếu ma trận A không suy biến và chùm (A, B −A ) chính quy thì tồn tại một h0 sao cho khi h ≤ h0 hệ (2.5.71) có một nghiệm duy nhất 45Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
46. 44 Chứng minh. Chúng ta phải chứng minh tính chính quy của ma trận DA +h(A⊗I)DB−A có thể được viết là Is ⊗An +h(A⊗(Bn −An))+v(h) Từ tính chính quy của chùm (A, B − A ) và ma trận hệ số A, chúng ta có thể thu được tính chính quy của Is ⊗ An + h(A ⊗ (Bn − An)) và do đó đạt được kết quả mong muốn. Trong phần sau đây chúng ta sẽ giả sử rằng A không suy biến và chùm (A, B −A ) chính quy chúng ta thấy rằng đối với phương pháp tiếp cận cổ điển chúng ta cần sự chính quy của chùm(A, B) trong khi đó đối với cách tiếp cận mới chúng ta cần sự chính quy của chùm (A, B − A ) hai ví dụ đơn giản cho chúng ta thấy rằng chúng ta có thể có các hệ phương trình vi phân đại số trong đó chỉ có thể áp dụng một phương pháp và không thể áp dụng phương pháp kia. Ví dụ 1: Trong hệ phương trình vi phân đại số: 0 0 1 −t x (t) + 1 −t 0 0 x(t) = f(t) . Chùm (A, B) suy biến (nhớ rằng hệ phương trình vi phân đại số này có nghiệm duy nhất mặc dù chùm suy biến) nhưng chùm (A, B − A ) chính quy. Ví dụ 2: Trong hệ phương trình vi phân đại số: 0 1 1 t x (t) + 1 0 t 1 x(t) = f(t) . Chùm (A, B − A ) chính quy nhưng chùm (A, B) suy biến. Chúng ta biết rằng tính dễ xử lý với chỉ số 2 của chùm (A, B), đàm bảo sự tồn tại và tính duy nhất của nghiệm với các điều kiện ban đầu phù hợp, tương đương với tính chính quy với chỉ số 2 của chùm cục bộ hiệu chỉnh (A, B−AP ) nhưng không tính đến tính chính quy của chùm (A, B) Trường hợp trên không xảy ra cho chỉ số 1, Qua[9] chùm (A, B) chính quy với chỉ số 1 nếu và chỉ nếu chùm (A, B − AP ) chính quy với chỉ số 1 một tính toán đơn giản thiết lập mối liên hệ giữa chùm này với chùm (A, B−A ). Định lý 2.5.3. Chùm (A, B − A ) chính quy với chỉ số 1 nếu và chỉ nếu chùm (A, B − AP ) chính quy với chỉ số 1. 46Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
48. 46 và nghiệm có thể được viết là x(t) = Ps(t)x(t) + Qs(t)x(t) = [A(t) + B(t)Qs(t)]−1 A(t)x(t) + Qs(t)[A(t) + B(t)Qs(t)]−1 f(t) Điều này có nghĩa là Ps(t)x(t) có thể được tính từ A(t)x(t) và Qs(t)x(t) có thể được tính từ số hạng không thuần nhất. Vì thế đối với nghiệm số chúng ta có thể tính ¯xn+1 = un+1 + vn+1 (2.5.72) với un+1 ∈ S(t) từ An+1xn+1 là un+1 = (An+1 + Bn+1Qs,n+1)−1 An+1xn+1 (2.5.73) và vn+1 ∈ Ker(A(tn+1)) là vn+1 = Qs(tn+1)[A(tn+1) + B(tn+1)Qs(tn+1)]−1 f(tn+1) (2.5.74) Nếu phương pháp chính xác cứng mà chúng ta chọn giai đoạn bện trong thứ s là gần đúng tại tn+1, ¯xn+1 = Xs một phần của nghiệm giống như (2.5.72)-(2.5.74). Định lý 2.5.6. Đối với các phương pháp chính xác cứng un+1 trong (2.5.73) trùng với Ps,n+1Xs Chứng minh. Đối với các phương pháp chính xác cứng, thực sự An+1xn+1 = An+1xs vì thế un+1 = (An+1 + Bn+1Qs,n+1)−1 An+1xn+1 = (An+1 + Bn+1Qs,n+1)−1 An+1Xs = Ps,n+1Xs Đối với một hệ phương trình vi phân đại số chỉ số 1, Qs,n+1Xs và vn+1 trong (2.5.74) cũng trùng nhau. Định lý 2.5.7. Đối với phương pháp chính xác cứng và các hệ phương trình vi phân đại số chỉ số 1 với A hằng số thì phép chiếu (2.5.73) và (2.5.74) và ¯xn+1 = Xs, cho cùng một gần đúng. Chứng minh. Vì A là hằng số chúng ta có thể viết (2.5.71) là DBX = 1 hDA(A−1 ⊗ I)(e ⊗ xn − X) + F(Tn) hoặc nếu chúng ta ký hiệu A1 = (A + BQs) DQs X = −DA−1 1 BPs X = 1 hDA−1 1 A(A−1 ⊗ I)(e ⊗ xn − X) + DA−1 1 F(Tn) Chúng ta nhân với DQs và sử dụng A−1 1 A = Ps, Qs A−1 1 A = Qs để thu được DQs X = DQs A−1 1 F(Tn) đặc biệt đối với giai đoạn cuối cùng điều đó muốn nói đến (2.5.74). 48Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
49. 47 Nếu A không phải là hằng số đối với một hệ phương trình vi phân đại số thuần nhất, thì phép chiếu và ¯xn+1 = Xs vẫn cho cùng một giá trị gần đúng. Định lý 2.5.8. Đối với phương pháp chính xác cứng và các hệ phương trình vi phân đại số thuần nhất nếu Img(A(t)) = R không phụ thuộc t và A (t)P(t) = 0 thì Xs ∈ S(tn+1). Chứng minh. Thực sự (2.5.71) cho ta DB−A X = 1 h(A ⊗ I)−1 (e ⊗ Anxn − DAX) Hoặc nếu chúng ta dùng A (t) = A (t)P(t) + A (t)Q(t) = A (t)P(t) − A (t)Q(t) và A (t)P(t) = 0 DBX = −DAQ X + 1 h(A ⊗ I)−1 (e ⊗ Anxn − DAX) ∈ R và đặc biệt đối với giai đoạn bên trong cuối cùng Bn+1Xs ∈ R và do đó Xs ∈ S(tn+1). Hệ quả 2.5.9. Đối với phương pháp chính xác cứng và các hệ phương trình vi phân đại số thuần nhất nếu Img(A(t)) = R không phụ thuộc vào t và A (t)P(t) = 0 thì phép chiếu và ¯xn+1 = Xs cho cùng một giá trị gần đúng. Chứng minh. Từ định lý trên Xs ∈ S(tn+1) vì vậy Qs,n+1Xs = 0 Từ hệ quả (2.5.5) và công thức (2.4.53) đối với các phương pháp chính xác cứng, nếu ma trận A là hằng số, phương pháp tiếp cận mới .¯xn+1 = Xs hoặc phép chiếu (2.5.73) và (2.5.74) và phương pháp tiếp cận cũ cho cùng một giá trị gần đúng. Đối với phương pháp chính xác không cứng, ngay cả khi A là hằng số, phương pháp cổ điển và phương pháp tiếp cận mới cho kết quả khác nhau. Nếu chúng ta sử dụng (2.5.72) và (2.5.73) để thu được cách tiếp cận mới, dưới dạng A˜xn+1 = Axn+1 chúng ta thu được Ps(tn+1)xn+1 = Ps(tn+1)˜xn+1 một phần trong S(tn+1) giống nhau trong cả hai cách tiếp cận. Tuy nhiên, nói chung. Qs(tn+1)xn+1 = Qs(tn+1)˜xn+1 = Qs(tn+1)[A + B(tn+1)Qs(tn+1)]−1 f(tn+1) Hãy xét ví dụ, trường hợp hệ số hằng chỉ số 1 bán tường minh. Cách tiếp cận mới chỉ đơn giản là tiếp cận gián tiếp cho các hệ phương trình vi phân đại số chỉ số 1 bán tường minh[8, p. 404]. Cách tiếp cận cổ điển tương ứng với phương pháp tiếp cận trực tiếp. Chú ý: Đối với các phương pháp Lobatto IIIA, ma trận A suy biến nhưng 49Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
50. 48 ma trận con A = (aij)i,j≥2 khả nghịch và phương pháp chính xác cứng. Phương pháp mới này cũng có thể được áp dụng giống như được thực hiện cho các hệ phương trình vi phân đại số [10] bằng cách định nghĩa Xn1 = xnvà tính Xn+1 = Xns Đối với phương pháp tiếp cận mới, đối với giai đoạn bên trong thứ nhất, chúng ta có AnXn1 − Anxn = 0 Nếu An suy biến, có vô số vectơ thỏa mãn hệ thức này và có hai khả năng để tìm Xn1 chúng ta có thể chọn Xn1 = xn hoặc chúng ta có thể chiếu. Bởi vì phương pháp chính xác cứng, để thu được ¯xn+1 chúng ta có thể chọn ¯xn+1 = Xns hoặc chúng ta có thể chiếu. Vì vậy, chúng ta có bốn khả năng: (1) Xn1 = xn và ¯xn+1 = Xns. (2) Xn1 = xn và ¯xn+1 được chiếu. (3) Xn1 được chiếu và ¯xn+1 = Xns. (4) Xn1 được chiếu và ¯xn+1 được chiếu. Các tùy chọn (1) và (3) áp dụng cho các quy tắc hình thang (phương pháp gần đúng hình thang). Nếu A là một ma trận hằng, chọn lựa Xn1 = xn dẫn đến sơ đồ quy tắc hình thang được đưa ra trong [9] 2.5.3 Sự hội tụ đối với các hệ phương trình vi phân đại số có thể chuyển sang hệ số hằng Đối với một phương pháp BDF k bước nhất định j=0k αkjxn−j = hfn các phương pháp k bước cải biên được định nghĩa cho các hệ phương trình vi phân đại số hệ số biến đổi tuyến tính (2.5.62) là [αk,0An + h(Bn − An)] xn + k j=1 αkjAn−jxn−j = hfn và do đó, phương pháp được đề xuất cho phương pháp Euler ẩn (BDF1) trùng hợp với cách tiếp cận mới cho các phương pháp Runge-Kutta với ¯xn+1 = Xs. Sự hội tụ được nghiên cứu cho các hệ phương trình vi phân đại số có thể chuyển sang hệ số hằng, tức là đối với các hệ phương trình vi phân đại số tồn tại một L(t) khả vi không suy biến sao cho phép biến đổi x = L(t)y chuyển (2.5.62) sang một hệ có hệ số hằng có thể giải được. Các hệ như thế được đặc trưng bởi định lý sau đây. Định lý 2.5.10. Hệ (2.5.62) có thể biến đổi sang các hệ số hằng khi và chỉ khi (1) sA + B − A khả nghịch trên I đối với s nào đó, và (2) 50Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
51. 49 A(sA + B − A )−1 không đổi trên I. Nếu (1) và (2) đúng, chúng ta có thể chọn L(t) = (sA + B − A )−1 để thu được hệ Cy (t)+(I −sC)y(t) = f(t) trong đó C = AL. Vì vậy, nếu chúng ta kí hiệu yn = L−1 n xn, Yni = L−1 ni Xni và tính đến B − A = (I − sC)L−1 cho các hệ có thể chuyển được (2.5.69) và (2.5.70) là Cyn+1 − Cyn + h s i=1 bi(I − sC)Yni = h s i=1 bifni (2.5.75) với Yni là nghiệm của Cyni − Cyn + h s i=1 aij(I − sC)Yni = h s j=1 aijfnj, i = 1, …, s (2.5.76) Tương ứng với việc lấy tích phân của hệ phương trình vi phân đại số hệ số hằng tuyến tính Cy (t)+(I −sC)y(t) = f(t) với phương pháp mới. Trong trường hợp này, chúng ta thấy rằng nghiệm thu được trong (2.5.75) phù hợp với (2.5.76). Đối với trường hợp chỉ số 1, các hệ phương trình vi phân đại số hệ số hằng được chuyển đổi cũng có chỉ số 1. Nếu chúng ta tìm gần đúng số (nghiệm gần đúng bằng phương pháp số) ¯xn+1 qua (2.5.73) và (2.5.74) quả thực x(tn+1) − ¯xn+1 = (An+1 + Bn+1Qs,n+1)−1 [An+1x(tn+1) − An+1xn+1] = (An+1 + Bn+1Qs,n+1)−1 [Cy(tn+1) − Cyn+1]. (2.5.77) Đối với bất kỳ hệ phương trình vi phân đại số nào, nếu phương pháp này chính xác cứng và chúng ta tìm được gần đúng số qua ¯xn+1 = Xs chúng ta có x(tn+1) − ¯xn+1 = L(tn+1) [y(tn+1) − Ys] (2.5.78) Chúng ta nghiên cứu bậc hội tụ cho các phương pháp mới áp dụng cho các hệ phương trình vi phân đại số có thể chuyển sang hệ số hằng. Đối với chùm (A, B) chỉ số v dạng chuẩn tắc Kronecker là PAQ = diag(I, N),PBQ = diag(C, I) trong đó P và Q là các ma trận chính quy, và N là lũy linh với bậc lũy linh là v. Nếu chúng ta nhân với P và thực hiện phép đổi biến x = Q(yt , zt )t chúng ta tách hệ phương trình vi phân đại số tuyến tính hệ số hằng. Dạng chuẩn tắc Kronecker cho phép chúng ta tách (2.5.69) và (2.5.70) để thu được yn là nghiệm số cho phương trình vi phân thường y(t) + Cy(t) = f(t) Vì vậy, nếu phương pháp có bậc p đối với các phương 51Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
52. 50 trình vi phân thường, chúng ta có yn − y(tn) = v(hp ). Nếu hệ phương trình vi phân đại số có chỉ số 1 và có thể chuyển sang hệ số hằng, hệ phương trình vi phân đại số mới cũng có chỉ số 1. Trong các định lý sau, chúng ta đưa ra bậc sai số Cy(tn) − Cyn trong (2.5.77). Định lý 2.5.11. Xét một hệ phương trình vi phân đại số hệ số hằng tuyến tính với chỉ số v = 1 Nếu phương pháp Runge-Kutta có bậc Kd đối các phương trình vi phân thường thì nghiệm số thu được với phương pháp mới thỏa mãn Ax(tn) − A¯xn = v(hkd ). Chứng minh. Đối với bài toán chỉ số 1, chúng ta có, đối với ma trận chính quy P cho chúng ta dạng chuẩn tắc Kronecker Ax(tn+1) − Axn+1 = P I 0 y(tn+1) − yn+1 z(tn+1) − zn+1 = P y(tn+1)−yn+1 0 = v(hp) Từ định lý này và công thức (2.5.77), chúng ta phát biểu định lý sau đây. Định lý 2.5.12. Hãy xét một hệ phương trình vi phân đại số chỉ số 1 tuyến tính có thể chuyển sang hệ số hằng. Nếu phương pháp Runge-Kutta có bậc Kd đối với các phương trình vi phân thường, thì nghiệm số thu được với phương pháp mới qua phép chiếu (2.5.74) và (2.5.73) thỏa mãn x(tn) − ¯xn = v(hkd ). Đối với các hệ phương trình vi phân đại số chỉ số cao có thể chuyển sang hệ số hằng, chúng ta có kết quả sau. Định lý 2.5.13. Chúng ta xét một hệ phương trình vi phân đại số (2.5.62) có thể chuyển sang hệ phương trình vi phân đại số hệ số hằng. Nếu phương pháp Runge-Kutta chính xác cứng và có bậc Kd đối với các phương trình vi phân thường, thì giá trị gần đúng tính bằng phương pháp số mới ¯xn+1 = Xs cho thấy rằng x(tn+1) − Xs = v(hkv ) với Kv = min 2≤i≤v (p, Ka,i − i + 2) và Ka,l số nguyên lớn nhất sao cho bt A−i e = bt A−l cl−i (l − i)! , i = 1, 2, …, l − 1 bt A−i ci = i(i − 1)…(i − l + 2), i = l, l + 1, …, kal . Chứng minh. Hệ quả (2.5.5) phát biểu rằng phương pháp tiếp cận mới với ¯xn+1 = Xs và phương pháp tiếp cận cổ điển cho cùng một gần đúng. Do đó x(tn+1)−Xs = v(hkv ) với Kv là bậc của phương pháp Runge-Kutta cho một hệ phương trình vi phân đại số hệ số hằng tuyến tính với chỉ số v [6] Chúng ta thấy rằng Ka,l = ∞ đối với các phương pháp chính xác cứng. 52Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
53. 51 2.5.4 Sự co Mục tiêu của chúng ta là đưa ra những phương pháp tiếp cận mới để duy trì tính chất co của nghiệm số, và tương tự đối với nghiệm chính xác. Với cách tiếp cận mới được đưa ra, điều đó có thể được chứng minh dễ dàng. Định lý 2.5.14. Chúng ta xét hệ phương trình vi phân đại số thuần nhất (2.5.62) và giá trị gần đúng An+1xn+1 thu được qua (2.5.69) và (2.5.70). Nếu phương pháp Runge-Kutta ổn định đại số , và xni ∈ Vni là một không gian con sao cho µV [Ani, Bni − Ani] ≤ 0 Thì An+1xn+1 ≤ AnXn . Chứng minh. Nếu chúng ta kí hiệu Wni = h(Bni − Ani)Xni,M = BA + At B − bbt , mi,j là các yếu tố (i, j) của M, và theo [8] ta nhận được An+1xn+1 2 = Anxn 2 + 2 Anxn, s i=1 biWni + s k=1 bkWnk, s i=1 biWni = Anxn 2 − s i,j=1 mij Wni, Wnj + 2h s i=1 bi AniXni, −(Bni − Ani)Xni ≤ Anxn 2 − s i,j=1 mij Wni, Wnj + 2h s i=1 biµVi [Ani, Bni − Ani] Anixni 2 ≤ Anxn . Đối với trường hợp chỉ số 1, nếu Img(A(t)) là hằng số và A P = 0, thì theo hệ quả (2.5.9), các giai đoạn bên trong Xni và nghiệm chính xác tại điểm tni nằm trong cùng một không gian con S(tni). Vì thế, chúng ta có thể chọn Vni = S(tni) 53Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
54. 52 Chương 3 ỨNG DỤNG PHƯƠNG PHÁP RUNGE – KUTTA GIẢI GẦN ĐÚNG HỆ PHƯƠNG TRÌNH VI PHÂN ĐẠI SỐ 3.1 Ví dụ giải gần đúng phương trình vi phân thường (ODE) Ví dụ Dùng công thức Runge-Kutta tìm nghiệm gần đúng của bài toán Cauchy y = y − x2 + 1, 0 ≤ x ≤ 1 y(0) = 0.5 Với n = 5 Tính sai số biết nghiệm chính xác là : y(x) = (x + 1)2 −0.5ex Bai giải. Ta có h = 0.2 x0= 0,x1= 0.2,x2= 0.4,x3= 0.6,x4= 0.8,x5= 1 Công thức Runge-Kutta bậc 4 yk+1 = yk + (k1 + 2k2 + 2k3 + k4)/6 k1 = hf(xk, yk) k2 = hf(xk + h 2 , yk + k1 2 ) k3 = hf(xk + h 2 , yk + k2 2 ) k4 = hf(xk + h, yk + k3) (3.1.1) Áp dụng công thức Runge-Kutta bậc 4 ta có k1 = hf(xk, yk) = 0.2(yk − x2 k + 1) 54Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
55. 53 k2 = hf(xk + h 2 , yk + k1 2 ) = 0.2 yk + 0.1(yk − x2 k + 1) − (xk + 0.1)2 + 1 = 0.2(1.1yk − 1.1×2 k − 0.2xk + 1.09) k3 = hf(xk + h 2 , yk + k2 2 ) = 0.2 yk + 0.1(1.1yk − 1.1×2 k − 0.2xk + 1.09) − (xk + 0.1)2 + 1 = 0.2(1.11yk − 1.11×2 k − 0.22xk + 1.099) k4 = hf(xk + h, yk + k3) = 0.2 yk + 0.2(1.11yk − 1.11×2 k − 0.22xk + 1.099) − (xk + 0.2)2 + 1 = 0.2(1.222yk − 1.222×2 k − 0.444xk + 1.1798) Xây dựng hàm rk4 trong matlab để giải phương trình vi phân theo phương pháp trên. function[x, y] = rk4(f, x0, x1, y0, h) if nargin < 4, error( Vuilongnhapdudoiso!! ), end; if nargin < 5, m = input( Nhapsodoanchian = ); , h = (x1 − x0)/m; end; x = []; x(1) = [x0]; n = (x1 − x0)/h; for i = 1 : n, x(i + 1) = x(i) + h; end; y = []; y(1) = [y0]; for i = 1 : n K1 = h ∗ f(x(i), y(i)); K2 = h ∗ f(x(i) + h/2, y(i) + K1/2); K3 = h ∗ f(x(i) + h/2, y(i) + K2/2); K4 = h ∗ f(x(i) + h, y(i) + K3); y(i + 1) = y(i) + (K1 + 2 ∗ K2 + 2 ∗ K3 + K4)/6; end; 55Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn